「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。
第二关将结果拼接到value属性中,需要用双引号闭合属性或者标签。
1、思路分析
第二关的结果不再直接输出到页面,而是输出到一个输入框里。
右键检查网页源码可以发现,内容被拼接到了value属性中,需要考虑怎么闭合属性。
输入 <>" 测试一下,可以正常显示,没有被过滤。可以使用 " 或者 "> 闭合属性。
再看看源码 , 获取了参数后 , 直接拼接到value属性中
虽然使用 htmlspecialchars() 转义了HTML标签 , 但输出到输入框时,并没有转译,所以不会此关卡造成影响
2、解题步骤
1)地址栏输入以下payload:
"><script>alert(2)</script>
双引号用来闭合 value值左边的双引号 , >用来闭合 input 标签的右尖括号
<input name=keyword value="'.$str.'"> //拼接前
<input name=keyword value=""> <script>alert(2)</script> "> //拼接后
2)回车后直接弹窗,进入下一关
3、其他方式
上面用的是闭合标签的方式,也可以用闭合属性的方式
" onclick="alert(2)
点击以下输入框,就能触发弹窗。
换成 onmouseover 等其他事件也可以。