猜测在服务器端对keyword
这个参数使用了htmlspecialchars()
函数,但是value参数中的值未被恶意编码,其中输入的payload
被赋值给value
,可以考虑闭合value
的参数值。
- 显示在页面上的恶意代码不可以改变,于是尝试从标签中的属性进行突破,将属性中的
>
和<
进行闭合
">//
==================================================================================
-
尝试提交一个随便的参数,查看
url
中是否有提示 -
输入构造的弹窗测试语句
查看页面响应并查看网页源代码
发现于上一关基本相同,区别在于value
值也被转义。
4. 对照服务器端的源码,
keyword
和value
两个参数均使用了htmlspecialchars()
函数,且参数value
的闭合方式为单引号。
5. 最后的<
和 >
均被转义,无法逃出<input>
标签,因此考虑事件驱动。
'οnfοcus=javascript:alert(‘xss’)>
没有直接跳转,而是考虑onfocus
事件属性,需要点击输入框才能出现弹窗
==================================================================================
- 尝试输入
<script>alert('xss')</script>