Dịch vụ sửa máy tính pc laptop máy in - Nạp mực máy in Trường Tín Tphcm
Dịch vụ sửa máy tính pc laptop máy in - Nạp mực máy in Trường Tín Tphcm

Web9: Các kiểu khai thác XSS – Phần 3: Dom Based XSS

--
Web Tin Học Trường Tín có bài: Web9: Các kiểu khai thác XSS – Phần 3: Dom Based XSS Trong phần tiếp theo này, Quản Trị Mạng mời các bạn tìm hiểu về Dom Based XSS, một phương thức khai thác XSS khác.

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:

Web9: Các kiểu khai thác XSS - Phần 3: Dom Based XSS

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:

Web9: Các kiểu khai thác XSS - Phần 3: Dom Based XSS

Đ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:

Web9: Các kiểu khai thác XSS - Phần 3: Dom Based XSS

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:

Web9: Các kiểu khai thác XSS - Phần 3: Dom Based XSS

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:

Web9: Các kiểu khai thác XSS - Phần 3: 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


Xếp Hạng post

Bài Viết Khác

--