Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

LAB 19

Cross Site Request Forgery (CSRF)


1. Giới thiệu
CSRF ( Cross Site Request Forgery) là kĩ thuật 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 1 website khác. Các ứng dụng
web hoạt động theo cơ chế nhận các câu lệnh HTTP từ người dùng sau đó
thực thi các câu lệnh này. Các hacker sẽ lợi dụng khi các section của người
dùng vẫn còn hiệu lực hoạt động thì sẽ lừa trình duyệt bằng các request giả
mạo thực thi các câu lệnh http đến các ứng dụng web

2. Các bước thực hiện

- Bật xampp ở máy win 7 và sang kali truy cập vào


192.168.1.93/DVWA/Login vào với:
User: admin .
Pass: password

- Sau khi login vào dvwa, chọn dvwa security > Chọn low và submit
- Click vào CSRF

 Low
Check qua Source Code ta để ý ở mức này gần như không có chứa filter
gì cả.
Sau đó ta thay đổi password: He140697 và nhận được kết quả
Password Changed

Tiếp đó ta vào Source Code và copy lại form Change Password ban nãy
Và paste lại ra một NotePad và edit qua

Ta sẽ add thêm value=”admin” vào phần input của lần lượt pass_new
và pass_conf. Đây cũng sẽ là 2 password mới mà ta sẽ thay đổi cho
password hiện tại là He140697
Rồi Save lại và ta sẽ có được một file demo.html. Thử mở file này trên
một trình duyệt khác ta sẽ thấy được form html mà ta vừa edit phía trên
và để ý trên URL sẽ thấy được password: admin mà ta vừa tạo.

Mở lại file demo.html lúc nãy và edit lại, ta sẽ xóa bỏ dấu # ở trong
action và thay vào đó là đường link của dvwa
# → http://192.168.1.93/dvwa/vulnerabilities/csrf/?
Tiếp theo mở lại file demo.html trên trình duyệt mà ta đã login dvwa
trước đó sẽ nhận được form tương tự

Ấn Change ta sẽ nhận được thông báo Password Change. Vậy là ta đã


thành công trong việc thay đổi password
Thử Logout ra và vào lại dvwa. Nếu nhập password cũ He140697 ta sẽ
thấy không còn vào được nữa, nhưng nếu thử với password admin..

Ta có thể đăng nhập được vào dvwa với password: admin


 Medium
Tại mức medium này nếu ta thử Change Password như ở mức Low thì sẽ
không thể được
Ta sẽ chỉ nhận được thông báo như hình:

Vậy thì thử check qua Source Code thử xem:


Ở đây ta sẽ thấy được rằng có sử dụng thêm function stripos, function
này sẽ có nhiệm vụ chỉ ra vị trí xuất hiện của một chuỗi nào đó trong
một chuỗi gốc.
Vậy thì ở mức này đã bắt đầu có filter, nó sẽ check xem HTTP REFERER
và SERVER NAME có tương đồng với nhau không. Đó là lý do tại sao ta
không thể áp dụng cách ban nãy ở mức LOW vào đây được

Ta sẽ sử dụng Burp Suit để thực hiện phần này.


Đầu tiên thử để ý Burp Suit của password hiện tại và password mà ta sẽ
đổi
(Password hiện tại)

(Password đổi)
Ta thấy rằng ở trong password sẽ đổi không thấy referer đâu cả.Vậy thì
ta làm đơn giản là add thêm referrer cho nó.
Ta sẽ dễ dàng bypass qua filter

Và thay đổi thành công password


Ngoài ra ta có thể tự code một file html khác để khi người dùng click vào
file là password sẽ tự động thay đổi. Ở đây ta sẽ thử đổi pass sang
12345
Sau đó khi lưu lại và mở file đó bằng bằng trình duyệt đang mở dvwa ta
sẽ thấy password đã được thay đổi thành 12345

You might also like