2013-02-28 28 views
5

Tôi đang thử nghiệm một ứng dụng web. Tôi muốn viết một tập lệnh XSS sẽ hiển thị cảnh báo "Hello".Chèn trang web chéo

Kịch bản đầu tiên tôi đã viết là:

<script >alert("Hello");</script > 

Nhưng không hiển thị cảnh báo "Hello". Tôi phát hiện ra rằng kịch bản XSS mà làm việc là

<SCRIPT >alert(String.fromCharCode(72,101,108,108,111,33))</SCRIPT > 

Tôi muốn biết tại sao kịch bản đầu tiên đã không làm việc.

+0

Nếu bạn muốn biết thêm về XSS obfuscation Tôi có thể đề xuất cho bạn [Bộ lọc XSS Evasion Cheat Sheet] (https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet). – Eich

+0

Tôi không chắc tại sao bạn chưa chấp nhận câu trả lời. Nó có vẻ khá vững chắc. – SoonDead

Trả lời

7

Rất có thể trang web đó thay thế dấu ngoặc kép bằng các thực thể HTML hoặc cố gắng thoát chúng theo một cách khác khiến chúng không phù hợp với JavaScript. Khi sử dụng String.fromCharCode(...) bạn không phải sử dụng bất kỳ dấu ngoặc kép nào để nó hoạt động. Nó nhận được một danh sách các mã ASCII của các ký tự chuỗi và tạo ra một chuỗi trong số chúng trong thời gian chạy. Vì vậy, không cần bất kỳ trích dẫn nào.

Cách thích hợp để tránh loại XSS này là thay thế < bằng &lt; - bằng cách đó, không thể tạo thẻ tập lệnh.

Lưu ý rằng >, "& cũng phải được thay thế bằng các thực thể HTML tương ứng của chúng khi vệ sinh dữ liệu chứa HTML! Tuy nhiên, chỉ có < là hoàn toàn bắt buộc để đánh bại các cuộc tấn công XSS giả định không có dữ liệu không đáng tin cậy có thể được sử dụng trong các thuộc tính HTML (đó là nơi " cần phải được khử trùng)

+0

Có @ThiefMaster, trang web thay đổi "Xin chào" trong tập lệnh đầu tiên thành \ "Xin chào \". Tôi muốn biết tại sao trang web lại thực hiện điều này. Ngoài ra, tôi muốn biết cách 'String.fromCharCode (72,101,108,108,111,33)' hoạt động để hiển thị Hello! – IBK

+0

'String.fromCharCode' là một phương thức JavaScript bình thường (được giải thích [ở đây] (http://www.w3schools.com/jsref/jsref_fromcharcode.asp)). Bạn có thể sử dụng bất kỳ mã JavaScript nào bên trong môi trường '

Các vấn đề liên quan