单单从界面上看 只剩下一个输出点了
但是界面毕竟就是界面 而源代码才是更深层的东西
通过源代码我们看得出来 有两个输出点
第一处是经过htmlspecialchars转义之后然后插入
第二处则是对关键字进行了下划线插入操作
我们试试看构造如下
" onclick=javascript:alert('xss')>//
查看源代码可知
第一处同样是被转义
第二处就显得有点不同 它仍然是被进行替换操作 但是他去又被进行了htmlspecialchars转义操作
所以说还不能逃出标签去设置弹窗命令 因为value的属性值的双引号无法闭合
所以只能是在input标签里面设置onclick属性 属性值设置为弹窗命令 但是原原本本输入肯定是无法弹窗的 因为会被恶意插入下划线
所以最终我们只能够是进行unicode编码绕过了
但是呢 只有在属性值内部才能够进行unicode自动解码 也就是说 我们这一次利用的是第二处输出点 所以说我们要编码的内容如下所示
javascript:alert('xss')
输入我们以上内容的编码以后 点击连接 成功弹窗 嗨嗨!!