[Question] Hỏi Về Chiếm Hữu Phiên Làm Việc |
13/01/2009 11:38:41 (+0700) | #1 | 166270 |
|
phstiger
Member
|
0 |
|
|
Joined: 23/01/2007 17:47:26
Messages: 261
Offline
|
|
Các bạn cho mình hỏi. Đọc tài liện luận văn tốt nghiệp "Nghiên Cứu Một Số Vấn Đề Về Bảo Mật Ứng Dụng Web Trên Internet" của sinh viên trương ĐH Khoa Học Tự Nhiên nói về Chương 7
Chương 7: Chiếm hữu phiên làm việc (Session Management)…………………………
I. TỔNG QUAN VỀ SESSION ID……………………………………………………..
II. ẤN ĐỊNH PHIÊN LÀM VIỆC……………………………………………………...
II.1. Tấn công Session ID trên tham số URL…………………………………………
II.2. Tấn công Session ID trong biến ẩn form………………………………………...
II.3. Tấn công Session ID trong cookie……………………………………………….
II.4. Cách phòng chống……………………………………………………………….
III. ĐÁNH CẮP PHIÊN LÀM VIỆC…………………………………………………..
III.1. Tấn công kiểu dự đoán phiên làm việc (Prediction sessionID)…………………
III.2. Tấn công kiểu vét cạn phiên làm việc (Brute force ID)………………………...
III.3. Tấn công kiểu dùng đoạn mã để đánh cấp phiên làm việc……………………...
III.4. Cách phòng chống……………………………………………………………….
III.5. Sự khác biệt giữa đánh cắp phiên làm việc (session hijacking) và ấn định phiên
làm việc (session fixation)……………………………………………………………...
Cho mình hỏi là nếu phân chia ra như vậy thì có hợp lý và thiếu sót phần nào nữa ko?
Ví dụ CSRFcó thể được thêm vào đây hay ko?
Về Ấn Định Phiên Làm Việc mình có thắc mắc là trong thực tế có website nào thiết kế kiểu như vậy ko?
Nghĩa là: Hacker send 1 url chứa session được ấn định sẵn cho victim. Victim chạy URL đó và đăng nhập vào hệ thống.
Hacker sẽ vào được phiên làm việc đó với sesssion đã được ấn định.
Thanks |
|
|
|
|
[Question] Hỏi Về Chiếm Hữu Phiên Làm Việc |
13/01/2009 17:57:15 (+0700) | #2 | 166322 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
phstiger wrote:
Các bạn cho mình hỏi. Đọc tài liện luận văn tốt nghiệp "Nghiên Cứu Một Số Vấn Đề Về Bảo Mật Ứng Dụng Web Trên Internet" của sinh viên trương ĐH Khoa Học Tự Nhiên nói về Chương 7
Chương 7: Chiếm hữu phiên làm việc (Session Management)…………………………
I. TỔNG QUAN VỀ SESSION ID……………………………………………………..
II. ẤN ĐỊNH PHIÊN LÀM VIỆC……………………………………………………...
II.1. Tấn công Session ID trên tham số URL…………………………………………
II.2. Tấn công Session ID trong biến ẩn form………………………………………...
II.3. Tấn công Session ID trong cookie……………………………………………….
II.4. Cách phòng chống……………………………………………………………….
III. ĐÁNH CẮP PHIÊN LÀM VIỆC…………………………………………………..
III.1. Tấn công kiểu dự đoán phiên làm việc (Prediction sessionID)…………………
III.2. Tấn công kiểu vét cạn phiên làm việc (Brute force ID)………………………...
III.3. Tấn công kiểu dùng đoạn mã để đánh cấp phiên làm việc……………………...
III.4. Cách phòng chống……………………………………………………………….
III.5. Sự khác biệt giữa đánh cắp phiên làm việc (session hijacking) và ấn định phiên
làm việc (session fixation)……………………………………………………………...
Cho mình hỏi là nếu phân chia ra như vậy thì có hợp lý và thiếu sót phần nào nữa ko?
Câu trên khá mơ hồ. Thế nào là hợp lý và đầy đủ? Cái này tùy theo mức độ chuyên sâu và tùy độc giả nữa. Không thể tự "đẻ" ra một tiêu chuẩn nào đó rồi đánh giá nó hợp lý hay không hợp lý, đầy đủ hay thiếu sót được.
phstiger wrote:
Ví dụ CSRFcó thể được thêm vào đây hay ko?
Thử suy nghĩ xem CSRF có những liên quan gì đến SESSION?
phstiger wrote:
Về Ấn Định Phiên Làm Việc mình có thắc mắc là trong thực tế có website nào thiết kế kiểu như vậy ko?
Nghĩa là: Hacker send 1 url chứa session được ấn định sẵn cho victim. Victim chạy URL đó và đăng nhập vào hệ thống.
Hacker sẽ vào được phiên làm việc đó với sesssion đã được ấn định.
Thanks
Không đơn giản như thế và không thể tổng quát hóa như thế được. |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
13/01/2009 19:13:41 (+0700) | #3 | 166323 |
boom_jt
Member
|
0 |
|
|
Joined: 02/08/2007 23:51:10
Messages: 125
Offline
|
|
Vấn đề cần phải phân biệt :
SessionID là 1 chuỗi NGẪU NHIÊN được sinh ra bởi WEBSERVER chứ không phải là 1 giá trị nào đó mà ứng dụng web có thể quyết định. Vì vậy, mỗi lần user đăng nhập (hoặc bắt đầu từ 1 hành động nào đó khiến cho ứng dụng web sử dụng tới session), user được cấp 1 SessionID ngẫu nhiên, KHÔNG THỂ ĐOÁN TRƯỚC bởi ứng dụng web cũng như người dùng web.
Câu trả lời cho câu hỏi cuối là "không" |
|
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
14/01/2009 00:21:43 (+0700) | #4 | 166352 |
|
phstiger
Member
|
0 |
|
|
Joined: 23/01/2007 17:47:26
Messages: 261
Offline
|
|
CSRF có lẽ không thể thêm vào đây được. EM thấy trong forum dịch là "Mượn Đao giết người" và nó không liên quan đến SESSION.
Nhưng em vẫn chưa rõ phần
Về Ấn Định Phiên Làm Việc mình có thắc mắc là trong thực tế có website nào thiết kế kiểu như vậy ko?
Nghĩa là: Hacker send 1 url chứa session được ấn định sẵn cho victim. Victim chạy URL đó và đăng nhập vào hệ thống.
Hacker sẽ vào được phiên làm việc đó với sesssion đã được ấn định.
Trong báo cáo của họ nói có mô hình " Mô tả chi tiết quá trình thực hiện tấn công người dùng
bằng kĩ thuật ấn định phiên làm việc." như sau
http://img248.imageshack.us/my.php?image=demonp9.jpg
Và em thắc mắc về phần Tấn công Session ID trên tham số URL
http://img134.imageshack.us/my.php?image=demo1lq4.jpg
Sao em thấy nó không hề thực tế tí nào. Vì thường em thấy chỉ lúc chứng thực thành công mới tạo session mà thôi. Còn đằng này lại ấn định trước thì chưa hề thấy bào giờ. Vậy thực tế có trường hợp nào như trường hợp này không vậy, hay chỉ là trên lý thuyết mà thôi.
Bác conmale nói không đơn giản và không tổng quát hóa như thế được thì phải chi tiết chút như thế nào nhỉ. Có thể gơi ý thêm tý nữa không?
Còn đây là toàn bộ tài liệu:
http://www.ebook.edu.vn/?page=1.1&view=3966
Thanks
|
|
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
14/01/2009 18:06:19 (+0700) | #5 | 166464 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
phstiger wrote:
CSRF có lẽ không thể thêm vào đây được. EM thấy trong forum dịch là "Mượn Đao giết người" và nó không liên quan đến SESSION.
Nhưng em vẫn chưa rõ phần
Về Ấn Định Phiên Làm Việc mình có thắc mắc là trong thực tế có website nào thiết kế kiểu như vậy ko?
Nghĩa là: Hacker send 1 url chứa session được ấn định sẵn cho victim. Victim chạy URL đó và đăng nhập vào hệ thống.
Hacker sẽ vào được phiên làm việc đó với sesssion đã được ấn định.
Trong báo cáo của họ nói có mô hình " Mô tả chi tiết quá trình thực hiện tấn công người dùng
bằng kĩ thuật ấn định phiên làm việc." như sau
http://img248.imageshack.us/my.php?image=demonp9.jpg
Và em thắc mắc về phần Tấn công Session ID trên tham số URL
http://img134.imageshack.us/my.php?image=demo1lq4.jpg
Sao em thấy nó không hề thực tế tí nào. Vì thường em thấy chỉ lúc chứng thực thành công mới tạo session mà thôi. Còn đằng này lại ấn định trước thì chưa hề thấy bào giờ. Vậy thực tế có trường hợp nào như trường hợp này không vậy, hay chỉ là trên lý thuyết mà thôi.
Bác conmale nói không đơn giản và không tổng quát hóa như thế được thì phải chi tiết chút như thế nào nhỉ. Có thể gơi ý thêm tý nữa không?
Còn đây là toàn bộ tài liệu:
http://www.ebook.edu.vn/?page=1.1&view=3966
Thanks
Bồ đọc xong hết tài liệu ấy chưa? |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
14/01/2009 22:37:05 (+0700) | #6 | 166472 |
Sao em thấy nó không hề thực tế tí nào. Vì thường em thấy chỉ lúc chứng thực thành công mới tạo session mà thôi. Còn đằng này lại ấn định trước thì chưa hề thấy bào giờ. Vậy thực tế có trường hợp nào như trường hợp này không vậy, hay chỉ là trên lý thuyết mà thôi.
===> phần này mình xin nói là hoàn toàn khả thi và đã thử thành công, đây là một lỗi phổ biến.
Mình nói về php, trong php.ini có 1 biến session.use_only_cookies =, theo mặt định là 0, có nghĩa là php sẽ cho phép lấy session theo 2 cách là cookies và url, lợi dụng điểm này, hacker sẽ login vào để có 1 session cho mình, sau đó dựa vào bug xss hoặc gửi trực tiếp cho victim url login chứa session đã định sẵn của hacker:
http://www.site.com/login.php?sessionid=1234
khi victim click chuột vào url này thì đồng nghĩa khai báo với webserver là vitcim có sessionid là 1234, trùng với hacker, nếu victim login bằng sessionid đó thì hacker chỉ viêc refesh lại trình duyệt là đã có phiên làm việc của victim. cách fix cho trường hợp này là set session.use_only_cookies =1 ( không cho set session bằng url). Vài lời theo hiểu biết của em, hy vọng giúp được anh. |
|
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
14/01/2009 22:37:40 (+0700) | #7 | 166473 |
thaydoi
Member
|
0 |
|
|
Joined: 06/01/2009 21:14:12
Messages: 1
Offline
|
|
This post is set hidden by a moderator because it may be violating forum's guideline or it needs modification before setting visible to members. |
|
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
18/01/2009 07:31:55 (+0700) | #8 | 166876 |
flier_vn
Member
|
0 |
|
|
Joined: 15/07/2008 01:13:39
Messages: 28
Offline
|
|
em vẫn chưa hiểu rõ lắm về ý của anh hackerbinhphuoc, có phải ý anh là nếu set session.use_only_cookies=0 thì có thể thực hiện tấn công thế này :
Mình login vào thì webserv sẽ tạo cho mình 1 sessionID, sau đó mình coppy link sessionID của mình rồi send cho admin ( đã login ), nếu admin click vào thì dính chưởng ?
Em có 1 site, em là Admin, vậy anh gửi cho em cái link session của anh rồi để em click vào thử xem anh có thành admin ko nhé
bạn phstiger tham khảo bài viết này thử nhé :
Tóm tắt quá trình hack athena.com.vn
(Local attack)
Bỏ qua mấy giai đoạn lặt vặt bây giờ làm việc với trường hợp đã có sẵn con webshell //http://12a6dh.info/forum/cache/skin_cache/cacheid_2/skin_public.php
Chạy con backdoor trên kết nối vào mysql của 12a6 sau đó tiến hành lấy sources của athena. Trong trường hợp này xác định link của trang quản trị là /admin nên chỉ chú trọng vào việc lấy code của các file liên quan đến cái này thui (khi nào có con backdoor trên host của nó rùi lấy tiếp). Lấy code bằng mấy câu query sau:
CREATE TABLE test(text LONGTEXT);
load data local infile 'path/file' into table test FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\'' LINES TERMINATED BY '\n';
Có code rùi thì ngồi đọc nó, trước hết là thằng index.php
session_start(); // quản lý bằng session chứ ko phải bằng cookie, có nghĩa là khi ta vào link admin nó sẽ tạo cho ta một phiên làm việc, phiên làm việc này sẽ được server tạo ra và lưu vào file sess_...... (VD: sess_2d193503319fefd5a48b208d48b69d36) nằm trên server, mặc định của phiên làm việc này là ko hợp lệ nhưng nếu ta đăng nhập thành công thì server sẽ chỉnh sửa file sess_ kia thành hợp lệ (hack được athena phải cảm ơn thằng này nhiều ). Tiếp tục nào case 'login' : include "_login.php"; break; thằng index sơ sơ như vậy là được rùi bây giờ chuyển sang thằng _login.php
if (isset($_POST['txtUsername'])) $admin_user=$_POST['txtUsername']; else $admin_user='';
if (isset($_POST['txtPassword'])) $admin_pass=$_POST['txtPassword']; else $admin_pass='';
if (isset($_POST['txtPassSec'])) $admin_sec=$_POST['txtPassSec']; else $admin_sec='';
hô hô user, pass1, pass2.
$admin_sec = md5(base64_encode($admin_sec));
if ($admin_sec == "53f8797e875fb1b667c86e4ae15cee24") {
if ( (!empty($admin_user)) && (!empty($admin_pass)) )
{
$admin_pass = md5($admin_pass);
$query = "select * from admin WHERE username='$admin_user' AND password='$admin_pass'";
ặc ặc cái pass2 của nó vừa base64_encode vừa md5, nó mà đặt pass dài xíu là ngồi decode đù người luôn mà chưa chắc gì có kết quả, còn cái pass1 cũng bị md5 luôn.
Có 2 cách giải quyết được đặt ra, thứ nhất là dò 2 cái pass của nó, thứ 2 là fake cookie. Cách thứ nhất ko chơi, ngu gì mà ngồi dò pass trong khi cách thứ 2 có vẻ dễ ăn hơn và khả năng thành công cũng cao hơn. Hồi nãy coi file index thấy nó quản lý phiên làm việc bằng session coi bộ ngon ăn. Vậy là quyết định chọn cách 2.
Có 2 hướng giải quyết cho cách 2:
+ Thứ nhất là khi ta mở trang index.php ra nó sẽ tạo cho ta một session trên server, công việc của ta là tìm cách edit cái phiên làm việc sao cho nó trở thành hợp lệ. Coi cái phpinfo() của nó xem nào session.save_path=/tmp. Ok rùi mở cái thư mục /tmp coi thử có gì trong đó. Ặc ặc …. bị access denied rùi coi bộ hướng đi này ko ổn, chuyển hướng đi thui.
+ Thứ hai nếu ta edit cái file session ko được thì tại sao ta ko tạo ra một cái file session mới hợp lệ với cái source đã có kia rùi fake cookie của web browser với cái session mới đó. Vậy là đã xác định được chính xác hướng đi và những cái cần phải làm, công việc tiếp theo là up sources của athena lên host 12a6, edit lại cái pass2 trong file _login.php, edit cái pass1 trong db của nó, xong rùi login nào … vừng ơi mở ra…. bùm vào được admin control panel rùi (cái này là đồ giả nằm trên host của 12a6) vào phần quản lý cookie của web browsers (opera) coi thử cái session của nó là gì nào, copy nó lại bây giờ chuyển qua thằng athena fake bằng cái session đó, refresh lại nào …. bùm …. he he heeeeee vào được admin control panel của athena rùi (hàng thật chất lượng cao ), tìm chỗ up con shell…..
GAME OVER
Author: longnhi(HCE)
|
|
MerChant.Vn - Website học hỏi, trao đổi thảo luận về kinh doanh.
DànhChoBé.VN - Chuyên bán đồ chơi chất lượng, thương hiệu Fisher price, Disney, Thomas & Friends |
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
18/01/2009 12:04:33 (+0700) | #9 | 166896 |
|
gamma95
Researcher
|
Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa">
Offline
|
|
@phitiger: ấn định phiên làm việc có phải là "session fixation" ko nhi? Bồ google keyword đó thử coi đúng yêu cầu ko. Bồ cho tui cái list tất cả các chương của luận án tốt nghiệp đó thử (ngày xưa tui cũng học trường này và cũng làm về đề tài này ) |
|
Cánh chym không mỏi
lol |
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
19/01/2009 02:40:59 (+0700) | #10 | 166942 |
@flier_vn: cái mình nói là về "session fixation" bồ ạ, mình hiểu sao nói vậy thôi, còn bạn ko hiểu hay mình nói sai thì mong bạn nói rõ nhé, cám ơn.
còn cái trên chỉ là ví dụ, còn việc thành công 100% thì chẳng dám chắc vì mình chưa biết site bạn thế nào, bạn là admin sao bạn ko thử nhỉ ? |
|
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
22/01/2009 03:25:09 (+0700) | #11 | 167255 |
|
phstiger
Member
|
0 |
|
|
Joined: 23/01/2007 17:47:26
Messages: 261
Offline
|
|
gamma95 wrote:
@phitiger: ấn định phiên làm việc có phải là "session fixation" ko nhi? Bồ google keyword đó thử coi đúng yêu cầu ko. Bồ cho tui cái list tất cả các chương của luận án tốt nghiệp đó thử (ngày xưa tui cũng học trường này và cũng làm về đề tài này )
Đúng là session fixation , tài liệu luận văn tại
http://www.ebook.edu.vn/?page=1.1&view=3966
Có thể luận trên trên đã tham khảo tài liệu tại
www.acros.si/papers/session_fixation.pdf
Bởi vì mình chưa hề thấy kiểu tấn công này trên thực tế ở website nào bao giờ cả. Với những kiểu khác thì mình đã từng thấy nhiều như XSS,Local attack, Flood Register,. . .
Ai hiểu rõ về kiểu này có thể làm 1 cái demo chỉ vài file thôi để mình hiểu rõ hơn được ko vậy?
Thanks
|
|
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
22/01/2009 06:48:26 (+0700) | #12 | 167272 |
|
gamma95
Researcher
|
Joined: 20/05/2003 07:15:41
Messages: 1377
Location: aaa">
Offline
|
|
@phstiger: Thực tế thì hơi bị nhiều đó đồng chí. Keyword "allinurl:*.php?PHPSESSION=" để tìm victim để tự demo. Còn code để PoC cũng đơn giản thôi, nhưng bạn tự viết thử, sai chỗ nào hãy hỏi. Trong nhiều có nói rõ step by step đó |
|
Cánh chym không mỏi
lol |
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
22/01/2009 14:45:12 (+0700) | #13 | 167310 |
|
phstiger
Member
|
0 |
|
|
Joined: 23/01/2007 17:47:26
Messages: 261
Offline
|
|
Cảm ơn mọi người.
Mình đã test thành công trên website http://shop.l-artisan.de/ với SESSION khi login được lưu trong cookie .Nhưng có có vài vấn đề còn phân vân, mong giải đáp dùm.
- Tại sao website sử dụng Session kiểu như vậy để lưu trữ vì mỗi khi khách vào trang web thì mặc định sẽ tạo 1 session ngẫu nhiên trên server rồi à.
Nếu em dùng đoạn code PHP
<?php
session_start();
$_SESSION['user']=$_GET['uid'];
?>
Truy cập
http://localhost/file.php?uid=abc
và http://localhost/file.php?uid=def
thì server tạo 2 file session bất kỳ.
Như vậy đối với Session Fixation có phải nó sẽ tạo ra 2 file với tên là "sess_"+"PHPSESSID ta truyền vào"
Vậy có cần thiết phải quản lý cái tên session tạo ra (tức 2 file session bất kỳ) đó hay ko vậy ?
Em chưa hiểu nhiều về session. Đọc mấy tài liệu session chỉ nói cách dùng session vậy thôi. Còn ứng dụng trên web em chưa rõ lắm. Mong các bác giúp đỡ.
Thanks |
|
|
|
|
[Question] Re: Hỏi Về Chiếm Hữu Phiên Làm Việc |
23/01/2009 01:29:36 (+0700) | #14 | 167352 |
flier_vn
Member
|
0 |
|
|
Joined: 15/07/2008 01:13:39
Messages: 28
Offline
|
|
Đã gọi là " Phiên làm việc ", thì hết phiên này sẽ đến phiên khác ! Sau khi phiên làm việc này hết hiệu lực thì session đó ko còn giá trị nữa ! Nên bởi vậy hầu hết bây giờ ko cần phải quản lý session ! Vì session chỉ có thời hạn trong thời gian ngắn chứ không như cookie !
Chỉ cần viết kỹ code là được :d Tham khảo về Session Fixation trên wikimedia |
|
MerChant.Vn - Website học hỏi, trao đổi thảo luận về kinh doanh.
DànhChoBé.VN - Chuyên bán đồ chơi chất lượng, thương hiệu Fisher price, Disney, Thomas & Friends |
|
|