Anti CSRF token scaner là gì? Cross-site request forgery CSRF

 Cross-site request forgery CSRF


Cross-site request forgery CSRF

a) Giới thiệu chung về CSRF:


Giả mạo yêu cầu (CSRF) là một kiểu tấn công được nêu trong Top 10 của OWASP, theo đó một trang web độc hại sẽ gửi một yêu cầu tới một ứng dụng web mà người dùng đã được xác thực chống lại từ một trang web khác nhau. Bằng cách này, kẻ tấn công có thể truy cập chức năng trong một ứng dụng web của mục tiêu thông qua các nạn nhân đã được xác thực của trình duyệt. Các mục tiêu bao gồm các ứng dụng web như phương tiện truyền thông xã hội, trong trình duyệt khách hàng email, ngân hàng trực tuyến ....
+CSRF giải thích theo cách này có lẽ dễ hiểu hơn:

CSRF là kiểu tấn công bằng cách sử dụng quyền chứng thực của người sử dụng đối với một website khác ( mượn quyền ceritification ), các ứng dụng web hoạt động theo nguyên tắc nhận các lệnh http từ người dùng sau đó thực thi nó. CSRF sẽ lừa trình duyệt của người dùng để gửi đi các lệnh http đến các ứng dụng web trong trường hợp session (phiên làm việc) của người dùng chưa hết hiệu lực thì các lệnh http trên sẽ được thực hiện với quyền chứng thực của người dùng trước đó.


b) Những yếu tố chính cần nắm khi tấn công bằng phương pháp CSRF:

- Yêu cầu đôc hại (Malicious requests) được gửi đến website khác nơi mà người dùng truy cập đến website đó đã được xác thực.
- Yêu cầu độc hại (Malicious requests) được chuyển đến trang web mục tiêu (target site) thông qua trình duyệt của nạn nhân, nơi mà nó đã được xác thực chống lại các trang web mục tiêu.
- Lỗ hổng này tồn tại trên các ứng dụng web, chứ không tồn tại trên trình duyệt của nạn nhân cũng như các trang lưu trữ thông tin lỗi CSRF

c ) Cách tấn công CSRF:


Trong tấn công CSRF thì attacker sẽ phải tìm ra được cách quản lý xác thực mà target site đang sử dụng để có thể khai thác CSRF thì bắt buộc nạn nhân (victim) phải đăng nhập vào target site đó.

Vd: Trang tailieu.vn dính lỗi CSRF và đã được tôi exploit nhúng mã độc vào thì khi các bạn truy cập vào trang này sẽ có 2 trường hợp:
- Nếu các bạn chỉ truy cập bình thường xem tài liệu và không đăng nhập vào tài khoản của các bạn thì ,… không có chuyện gì xảy ra và tôi không làm gì được.
- Nhưng nếu các bạn Đăng nhập vào tài khoản của các bạn thì lúc đó đoạn mã độc của tôi sẽ tiến hành lấy những thông tin cần thiết để có thể dùng cho việc login vào trang tài liệu bằng chính tài khoản của các bạn và trên máy các bạn
-Lấy them cái ví dụ nữa để giải thích cho rõ ràng hơn
Đầu tiên các bạn giả sử là tôi đã đăng nhập vào trang tailieu.vn (tailieu.vn bị lỗi CSRF) bằng chính tài khoản của tôi và mọi quyền lợi trong đó tôi đều được sử dụng kể cả việc download tài liệu của nó về máy tính.
Sau đó tình cờ tôi truy cập vào trang tancongbangcsrf.net là trang web dùng đề tấn công trang tailieu.vn nên nó đã được nhúng các exploit và mã độc và tất nhiên người nhúng mã độc tấn công CSRF trên trang tancongbangcsrf.net sẽ có quyền thao tác trên trang tailieu.vn bằng tài khoản của tôi đã login trước đó kể cả quyền download :D

Thêm một ngữ cảnh nữa là trang web về ngân hang cho dễ hình dung hơn.

Tôi có tài khoản tại trang web nganhang.com và trang web này bị lỗi CSRF, tôi đăng nhập vào và sử dụng được mọi quyền hạn mà tài khoản tôi có như kiểm tra tài khoản hay chuyển khoản.
Sau đó tôi vô tình truy cập vào trang hackcsrfnganhang.com trang này đã bị lão icarus đó nhúng cái code khai thác lỗi trang nganhang.com vào đây sẵn rồi nên khi tôi truy cập vào trang hackcsrfnganhang.com thì lập tức nó sẽ thực thi cái code đó và chuyển khoản từ tài khoản của tôi qua tài khoản của lão ấy đã chỉ định sẵn.

Code demo:

Code:<iframe src="http://nganhang.com/app/transferFunds?amount=1500&destinationAccount=icarus" >

Tôi sẽ mất 1500$ qua tài khoản của icarus khi truy cập vào trang hackcsrfnganhang.com vì trang này đã bị icarus nhúng cái iframe đó vào.

Kĩ thuật này khi được triển khai bởi attacker rất đa dạng.Được giấu diếm khá kĩ.Đôi khi victim bị tấn công mà không có một giấu hiệu nhận biết.Không có một giấu hiệu đột nhập lạ nào trên file log.Bởi vì nó được gây ra bởi chính victim.

Một số dạng attacker thường dùng để đánh lừa 1 victim .Giả sử bây giờ mình thấy admin của huynhdegroup.net là icarus ,Mr.Soleil ... đang online trên chatbox (Hoặc gửi vào email,yahoo gì đấy .Mấy admin này hay online lắm :)) ).Giả sử ở đây là qua chatbox. Mình post lên chatbox một link có chứa đoạn script này

<img height="0" width ="0" src ="http://hackingworld.net/@VHB@/postings.php?do=deletethread&threadid=445"/>

Nếu admin click vào xem thì nó sẽ tự động thao tác xóa một thread trên VHB ,cái có id là 445 .Việc tìm hiểu cấu trúc lệnh để thực hiện này attacker cũng phải bỏ thời gian ra nghiên cứu.Như victim dùng bộ mã nguồn nào.Hoặc thông qua các kĩ thuật khác như social engineering.Chú ý là thẻ img ở đây có độ cao là 0 và độ rộng cũng là 0.Nói cách khác là victim không thấy đc.

Ngoài thẻ img ra còn khá nhiều thẻ có thể áp dụng để thực hiện mưu đồ của attacker.Ví dụ như

<link ref="stylesheet" type="text/css" href=http://hackingworld.net/@VHB@/postings.php?do=deletethread&threadid=445" />

<bgsound src="http://
hackingworld.net/@VHB@/postings.php?do=deletethread&threadid=445"/>

<script type="text/javascript" src="http://hackingworld.net/@VHB@/postings.php?do=deletethread&threadid=445"/>

Để tránh sự chú ý của victim,attacker còn có thể sử dụng nhiều cách thức che giấu tinh vi.Mình đưa ra một ví dụ sau.
Nếu như gửi cho victim một link có chứa script

<img src ="http://hackingworld.net/@VHB@/postings.php?do=deletethread&threadid=445"/>

Điều này sẽ gây chú ý cho victim.Bởi victim sẽ tự hỏi sao link lại trỏ đến website của mình.Hoặc tại sao lại có delete gì ở đây.Có một cách để tránh sự nghi ngờ của victim.Đó là soạn thảo một script khác.Trỏ về 1 link bình thường.Ví dụ như

<img src ="http://hocduong.vn/hinh_anh_nu_sinh_sieu_kool.jpg"/>

Link này sẽ ít bị ngờ vực hơn.Và trên host của hocduong.vn .Attacker sẽ cấu hình redirect lại về website của victim.

Redirect /hinh_anh_nu_sinh_sieu_kool.jpg http://hackingworld.net/@VHB@/postings.php?do=deletethread&threadid=445

Đối với vbulletin cũng có thể tấn công theo kiểu tấn công csrf. Đó là cách để một nguời có quyền smod có thể leo thang đặc quyền lên admin.Nếu có thời gian mình sẽ demo vấn đề này sau.


d ) Cách phòng chống tấn công CSRF :
+ Sử dụng giao thức POST thay cho GET vì GET truyền thông tin dạng text không mã hóa.

+ Sử dụng token khó có thể đoán.

+ Xác định thời gian có hiệu lực của session.

Việc này đc thực hiện để giới hạn thời gian họat động của session.Tuy đây không phải là một cách tuyệt đối.Nhưng cũng tăng khả năng bảo mật cho chúng ta.

+Hoặc kết hợp xác thực các thao tác nhạy cảm bằng password và capcha.
Đây là một cách rất hay dùng.Như đối với mã nguồn Vbulletin.Rất nhiều lần mình đã lấy được cookie để đăng nhập với quyền admin.Nhưng dù đăng nhập đc.Vẫn không thể thực hiện các thao tác như xóa bài...v..v. Bởi vì đối tượng để chế độ nhập lại password cho một số thao tác nhạy cảm.
Ngoài việc yêu cầu nhập password hoặc type đúng capcha.Còn một cách đơn giản và đỡ làm phiền chúng ta hơn đó là cho hiện ra một thông báo alert chẳng hạn.Nếu bạn đồng ý thì nhấn OK. Việc này có vẻ đơn giản.Nhưng nó chống được CSRF. Tất nhiên là không chống đc việc đã bị ăn cắp mất cookie :) .
Kĩ thuật dùng captcha để chống thì được dùng khá nhiều.Nếu có bạn nào từng deactive account facebook của mình.Thì chắc nhớ là nó luôn yêu cầu nhập 1 captcha. Đó cũng là một cách mà facebook dùng để chống csrf.

+Sử dụng cookie cho admin cpanel và trang web khác nhau bằng cách sử dụng 2 domain khác nhau.
Cách này dùng là vì đối với 2 domain khác nhau.Không thể dùng chung một cookie được.
Ví dụ dùng http://hackingworld.net/@VHB@/admincp/ và http://admincp.hackingworld.net/@VHB@/ là khác nhau. Tách riêng admincp ra nhiều lúc cũng đem lại một lợi ích nhất định. Nhưng nó lại có hại đó là dễ bị scan được trang quản trị bằng reverse ip .Chúng ta chỉ biết để tham khảo :) .

Kết luận: Phương pháp CSRF này khi tấn công cần các yếu tố chính sau:
1. Site dính lỗi CSRF
2. Victim phải login vào site dính CSRF đó.
3. Truy cập gián tiếp, trực tiếp vào site chứa mã độc để khai thác site bị dính CSRF đó.

Tác Giả:Icarus -Concobe TheGioiNgam.Org