pikachu靶场之htmlspecialchars
htmlspecialchars函数
这个函数是用来转换特殊字符,防止将html标签直接输出,防止漏洞的产生,但它并不能真正防止漏洞的出现,
我们可以通过使用一些方法来绕过这个函数,首先需要弄清楚这个函数到底对那些特殊字符进行先转换,这是绕过的
第一步,也是关键的一步。
PHP里面把预定义的字符转换为HTML实体的函数
预定义的字符是
& 成为 & " 成为 " ' 成为 ' < 成为 < > 成为 >
因为这样所以类似<script>的代码,被插入后无法执行,因此我们需要新的插入指令,
结合pikachu 靶场上的htmlspecialchars漏洞
发现单引号没有被过滤掉 (htmlspecialchars函数默认是不过滤单引号的)
所以利用单引 号写代码进行插入
hack' onfocus='alert(1) // 单引号闭合+事件标签 javascript:alert(1) // JavaScript伪协议
插入后,点击插入内容,代码被执行,成功