1.这次是通过输入框输入数据,但依旧不影响他是个反射型XSS
页面中有两个位置显示输入的数据,也就是说可能存在两个XSS注入点
2.查看源码分析
可以看到搜索框上面的标题对输出进行了过滤,会把输入的特殊字符转换为html实体,关于 htmlspecialchars()。所以我们不在这下手
3.那我们就对搜索框进行操作,先查看前端源码
这是属性内输出,很显然这里直接插入javascript代码是不行的,因为会被当成文本
所以这里我们就要用到跟之前sql注入时类似的闭合绕过,闭合前面的标签,从而成功逃逸标签的属性束缚
4.具体怎么做呢? 那就是输入以下payload
"><script>alert('xss')</script>
那么当提交搜索后,前端的搜索框内的input标签就变成了下面
<input name="keyword" value=""><script>alert('xss')</script>">
跟sql注入差不多是不是,我们前面的 "> 闭合了input标签,使恶意代码成功逃逸出来,然后可以执行
[…] xss-labs level 2 […]
1
1