第十关,隐藏表单字段注入
查看level10.php

观察到这一关传递过来的参数有两个,一个是keyword,另外一个是t_sort。
分析代码,发现keyword参数被htmlspecialchars进行了完整过滤,无法实施XSS攻击。
t_sort参数,只是把<、>进行了替换,没有对双引号进行过滤。
回到前端

可以看到这里有三个被隐藏起来的输入框,由于被隐藏起来了,我们用触发事件处理是行不通的。
核心思路是闭合原有的type属性,重新构造新的type属性,type=”text”
构造payload
“type=”text” onfocus=”alert()”“
经过浏览器处理后,最后剩下的payload:
type=”text” onfocus=”alert()”
完整payload,因为我们要传递t_sort参数,页面也没有任何输入框,所以要在URL栏上传递
http://靶场地址/level10.php?t_sort=”type=”text” onfocus=”alert()””

也可以使用下面的payload,不用点击输入框,自动执行onfocus事件。
http://<靶场地址>/level10.php?t_sort=” type=”text” onfocus=”alert()” autofocus=”

