进入靶场,先输入个<script>alert('111')</script>试试:
输入结果在<a>标签下显示了出来,但是点击后:
说明没注入成功,所以按下F12看一下源码:
本是</script>,变成了< script> 说明左右括号被编码了,题目提示:htmlspecialchars,我们先介绍一下这个函数:
htmlspecialchars
是一个 PHP 函数,用于将特殊字符转换为 HTML 实体,以防止跨站脚本攻击(XSS)。它将 HTML 中的一些特殊字符转换为对应的 HTML 实体,这样浏览器会将它们作为文本而不是 HTML 代码来解析。这有助于防止用户输入的恶意脚本被执行。
主要用途包括在显示用户输入的文本时,确保用户输入不会被解释为 HTML 或 JavaScript 代码,从而防止 XSS 攻击。
&
转换为&
"
转换为"
'
转换为'
(在HTML4中使用,HTML5中也可以使用'
)<
转换为<
>
转换为>
但是这个函数默认不对 ‘ 处理
于是我们尝试输入:
' onclick='alert(111)'
前面的 ' 用来闭合herf里的 '
输入的内容被处理后被输出到input标签里的value属性值里面
然后点击就出现弹窗了。
拿下!