渗透测试——xss(四)_黄帽子chen_d的博客-爱代码爱编程
前面写了很多XSS漏洞的利用,这一章开始重点在XSS漏洞的挖掘和如何注入script代码上,和sql注入相类似
目录
一、实验环境——XSS Challenges
不要探测任何XSS外的漏洞,不要使用自动化工具,一些级别的挑战只适用于IE浏览器
需要注入Javascrip代码 alert(document.domain)弹出当前的域名,就是说只要能弹出域名就说明过关了
Hint选中就会看到提示
二、探测XSS过程
①构造一个独一无二且不会被识别为恶意代码的字符串提交到页面,如:Chend123veryshuai
②使用浏览器审查工具进行代码审查,寻找构造的字符串是否在页面中显示
在靶场操作一下
第一关
可以看到我们输入的内同在<b>标签之间,并且被加上了双引号
这时候可以发现,这里可能存在XSS漏洞
③构建XSS payload
简单版:
<script>alert(document.domain);</script>
因为<b>标签中为加粗,不用闭合,则可以直接写script语句
按顺序闭合标签:
"</b><script>alert(document.domain);</script>
这里不用在后面做闭合,因为html会将它识别成文本
提交完payload之后就可以看见域名啦,到这就通关啦
下一关
第二关
同样的操作
这回没有再下面显示,而是直接显示在了输入框里
我们查看元素
发现我们输入的内容再value里面
<input type="text" name="p1" size="50" value="ChenD123veryshuai">
这个时候我们构建payload就需要闭合input与value的单引号了
payload: "><script>alert(document.domain);</script>
另一种方式,使用input中的onmouseover属性,当然也可以利用其他属性
payload: "onmouseover=alert(document.domain)>
当我们鼠标离开输入框时弹出域名
成功过关!
第三关
同样的操作
可以看到 我们输入的内容再form表单中,并且是以post方式提交的
我们尝试以前两关的方式进行注入
发现它直接给识别成字符串了
我们尝试闭合<b>标记
会发现它把</b>直接转成字符串了,所以这块很有可能做了转义等操作,注入点可能不在这里
发现它提交了两个参数,其中有一个是我们从表单里选择的,注入点有没有可能在这里呢
两种方式
我们直接在F12查看源码中把第一个选项换成我们的payload
输入框随便输入点东西点击search
过关!
第二种办法,burpsuite抓包!
我们直接把japan换成我们的payload,然后放包
也过关!
第四关
下一关看似与第三关相同,实则不然,经过传统手艺,我们发现,第四关把p1和p2两个数据都进行了处理,都会转化为字符串
老样子,看看它都提交了啥数据
看到没,多了个p3,也就是说p3很有可能是注入点
我们在源码中搜索p3
两种方法
我们只要把value闭合一下然后呢直接alert就行
payload:"><script>alert(document.domain)</script>
我们进行抓包修改p3
或者使用<svg/事件="">
payload: "><svg onload=alert(document.domain)>%0A
过关过关赶赶丹丹
第五关
可以看到这关跟第二关好像,正当我准备开开心心过关的时候
我输入的payload变成了
它这里限制了长度
也有两个解决办法
①直接修改
过关
②抓包
也过关
今天就到这里叭