首先还是输入我们最熟悉的payload
<script>alert('xss')</script>
查看界面回显 发现表单中的尖括号都消失了 说明后台服务器将尖括号删除了
再去查看源代码 通过源代码我们可以知道存在两个有意义的输出点
第一个输出点被转义了 没办法利用了script标签去执行js代码了
只能是利用第二个输出点了 这个时候不能输入带有尖括号的弹窗命令
那么只能和上一关那样在标签内部创建一个属性去执行js代码来完成弹窗命令
即如下构造
" onclick=javascript:alert('xss')//
成功弹窗
也可以如下构造
" onfocus=javascript:alert('xss')//
也是成功弹窗
然后我们可以查看一下后台服务器代码
看看他是怎么对我们的输入进行过滤操作的
不看不知道 一看吓一跳啊
他是对我们提交的参数进行htmlspecialchars转义操作 然后插入到第一个输出点
对于第二个输出点 他则是先经过两次的替代操作 然后才插入到第二个输出点处