Professional Documents
Culture Documents
1. Định nghĩa
XSS là dạng tấn công attacker lợi dụng lỗ hổng kiểm tra dữ liệu đầu vào của webserver để có thể chèn
mã độc thông qua các đoạn script để thực thi ở phía Client. Mục đích chính của cuộc tấn công này là ăn
cắp dữ liệu nhận dạng của người dùng như: cookies, session tokens và các thông tin khác.
Deserialization là quá trình thực hiện lấy dữ liệu từ các định dạng có cấu trúc, khôi phục thông tin
theo byte, XML, JSON,... thành các đối tượng ban đầu( ngược lại với serialization - là quá trình chuyển
đổi trạng thái thông tin của một đối tượng thành một hình thức có thể được lưu trữ hoặc truyền đi)
Insecure Deserialization là lỗ hổng không kiểm tra dữ liệu đầu vào trước khi thực hiện
Deserialization. Dữ liệu không đúng định dạng hoặc dữ liệu không mong muốn có thể bị lợi dụng để thay
đổi luồng xử lý của ứng dụng, hacker có thể tận dụng lỗ hổng này để thực hiện các cuộc tấn công khác
nhau như Injection, Path traversal, Dos, …
Để có thể khai thác lỗ hổng này cần phải có 3 điều kiện sau:
Điểm đầu vào, là nơi mà kẻ tấn công gửi các dữ liệu đã được serialize đến mục tiêu và mục tiêu
sẽ thực hiện deserialize đoạn dữ liệu này.
Đối tượng bị tấn công có các lớp sử dụng phương thức Magic method(các hàm được tự động
gọi và thực thi trong 1 số ngữ cảnh vD: __wakeup() , __destruct(), __toString())
Kẻ tấn công có thể thao túng được một hoặc nhiều phương thức thông qua quá trình
deserialize được gọi là kỹ thuật POP - kết hợp các đoạn mã nguồn trong chương trình(gadget)
với nhau thành một payload hoàn chỉnh (gadget chains) để khai thác