Chúng ta đã từng nhắc đến về 2 kiểu khai thác XSS là reflected và stored, chúng đều có đặc điểm giống nhau là các đoạn mã hiểm nguy sau khi được chèn vào sẽ được thực thi sau respond của server, có tức là lỗi nằm về hướng server. Có một kiểu khai thác XSS khác đi trái lại với đặc tính này, mã độc được thực thi ngay cả xử lý phía client mà không thông qua server, được biết đến với cái tên DOM Based XSS hay còn coi là XSS loại 0.
Trước hết chúng ta cần biết DOM là gì?
DOM viết tắt của Document Object Model là 1 dạng chuẩn của W3C (http://www.w3.org/DOM/) mang ra nhằm để truy xuất và thao tác dữ liệu của tư liệu có cấu trúc như HTML, XML. Mô hình này bộc lộ tư liệu dưới dạng cấu trúc cây phân cấp. Tất cả những phần tử trong HTML, XML đều được nghĩ như 1 node.
DOM Based XSS là kỹ thuật khai thác XSS dựa theo việc thay đổi cấu trúc DOM của tài liệu, cụ thể là HTML.
Chúng ta cùng coi xét một tỉ dụ cụ thể sau:
Một website có URL đến trang đăng ký như sau:
example.com/register.php?message=Please fill in the form
Khi truy cập đến thì chúng ta thấy một Form rất bình thường:
Có thể dễ dàng suy luận tham số message truyền vào nội dung thông báo trên form, xem kỹ source code của đoạn thông báo này:
Đoạn JavaScript có trọng trách lấy giá trị từ tham số message và in ra. Từ việc kiểm tra đầu vào lỏng lẻo này, hoàn toàn cũng có thể lừa người dùng truy cập các URL nguy hiểm.
Thay vì truyền:
message=Please fill in the form
thì truyền:
message=GenderMaleFemale function show(){alert();}
Khi đấy Form đăng ký sẽ trở thành thế này:
Người dùng sẽ chẳng chút nghi ngờ với một form “bình thường” như thế này, và khi chọn lựa giới tính, Script sẽ được thực thi:
Tôi sẽ lý giải thêm 1 chút về giá trị truyền vào tham số message:
GenderMaleFemale function show(){alert();}
Mục đích chính của nó là thực thi hàm show() mỗi khi có sự kiện onchage trên thẻ select, hàm show() tại đây chỉ thuần tuý bật ra popup để minh chứng script đã được thực thi. Tuy nhiên trong thực tế, hacker thường sẽ sử dụng hàm show() này để thực thi script truyền giá trị cookie người sử dụng về một server định trước, bạn đọc cũng có thể xem lại bài Reflected XSS trong đó có đề cập đến cách hacker tạo request này như thế nào.
Ví dụ này cho chúng ta 2 kết luật quan trọng. Thứ nhất mã độc đã được thực thi ngay cả click vào giá trị trong thẻ select, nghĩa là được thực thi ngay ở phía client mà không cần thông qua respond của server. Thứ 2, cấu trúc HTML đã trở nên thay đổi với script truyền vào. Và cũng cũng có thể thấy kịch bản khai thác thực tế, DOM Based có phần giống với Reflected hơn là Stored XSS khi phải lừa người dùng truy cập vào một URL đã nhúng mã độc.
Hình sau miêu tả mỗi bước thực hành kỹ thuật tấn công DOM Based XSS:
Dưới này là video một thành viên của diễn đàn WhiteHat.vn thi hành khai thác thông qua DOM Based XSS:
Chúc các bạn thành công!
- Web8: Các kiểu khai thác XSS – Phần 2: Stored XSS
- Web6: SQL Injection – Một số tool khai thác
- Web5: SQL injection – Một số kỹ thuật băng qua cơ chế lọc
- Web4: SQL injection – Các bước khai thác
Dom Based XSS,khai thác Dom Based XSS,khai thác xss,lỗ hổng xss,bảo mật web
Nội dung Web9: Các kiểu khai thác XSS – Phần 3: Dom Based XSS được tổng hợp sưu tầm biên tập bởi: Tin Học Trường Tín. Mọi ý kiến vui lòng gửi Liên Hệ cho truongtin.top để điều chỉnh. truongtin.top tks.
Bài Viết Liên Quan
Bài Viết Khác
- Sửa Wifi Tại Nhà Quận 4
- Cài Win Quận 3 – Dịch Vụ Tận Nơi Tại Nhà Q3
- Vệ Sinh Máy Tính Quận 3
- Sửa Laptop Quận 3
- Dịch Vụ Cài Lại Windows 7,8,10 Tận Nhà Quận 4
- Dịch Vụ Cài Lại Windows 7,8,10 Tận Nhà Quận 3
- Tuyển Thợ Sửa Máy Tính – Thợ Sửa Máy In Tại Quận 4 Lương Trên 10tr
- Tuyển Thợ Sửa Máy Tính – Thợ Sửa Máy In Tại Quận 3
- Các ứng dụng phát nhạc thư giãn trên Windows 10
- Dịch Vụ Sửa Máy Tính Đường Số 5 Quận Bình Tân
- Top 10 Chỗ Sửa Chữa Thay Mực Máy In Epson PLQ-20M Ở Tphcm
- Dịch Vụ Sửa Máy Tính Đường Lê Tự Tài Quận Phú Nhuận
- Hướng dẫn tạo thư mục phân loại status trên Lotus