常见的xss攻击场景

既有时间夺走的东西,又有时间给予的东西。把时间拉向自己这边是一项重要工作。 ——村上春树《刺杀骑士团长》

0x00 URL反射型

当URL以某种方式显示在网页中。

1
2
3
http://test.com/xss.php/"<svg onload=alert(1)>
<form action="/xss.php"><svg onload=alert(1)>" method="POST">
<br>

0x01 简单的HTML注入(HTMLi)

网页开发者没做任何安全措施,直接在标签里面,在标签前面或后面不需要闭合或逃逸任何的字符。任何XSS payload都能执行成功。

0x02 内联HTML注入(HTMLi)

提前闭合标签,标签内注入新的标签。

0x03 内联HTML注入(HTMLi):不破坏标签

当特殊符号被过滤或转义,插入事件属性来执行payload,比如onload,onmouseover

0x04 JS中的HTML注入(HTMLi)

输入有时候会在javascript中(script标签),通常在代码的某个变量值中。需要注意的是HTML标签在浏览器的解析中有优先权,构造payload时要先闭合原来的标签,在插入新的标签。

0x05 简单的JS注入

如果script标签被过滤,遵守js语法。

1
2
http://test.com/xss.php?v1='-alert(1)-'
var v1=''-alert(1)-'';

0x06 逃逸JS注入

转义转义字符。如果单引号被’\’转义了,可以再插入转义字符’\’转义转义字符。

1
2
var v2='\'-alert(1)\'';
var v3='\\'-alert(1)-\\'';
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×