Bypass,通俗理解就是绕过的意思,绕过WAF
一.Bypass上传
(1)加分号
抓包,在文件名后加分号,也可在文件名中间加
filename="test
;.php"
(2)00截断原理
php后缀加一个空格,然后在Hex下找到文件命后的空格,把数字改为00,即20改为00
(3)加单引号
和前面加分号一样的原理
(4)文件后缀回车换行
在文件格式php中间加个换行符
二.Bypass XSS
实际的情况中,很多网站会对<>,script等关键词进行限制,也有的不允许在input中运行js脚本,这个时候,就需要去考虑怎么绕过
(1) 大小写混写
最简单的就是大小写混写,对一些仅仅匹配过滤的系统进行绕过
(2)利用HTML标签属性的值来执行
在某些系统中,用户不能自己构造html标签,这个时候可以使用html标签属性值调用is,比如:
<table background="jacascript:alert(/xss/)"></table>
<img src="javascript:alert('xss’);">
(3) 回车空格等
在有些系统中,xss Filter仅仅将敏感字符列入黑名单,可以通过空格,tab,回车来绕过限制,如:
< img src="javascript:alert(xss);">
(4)对标签属性进行转码
普通的标签属性值过滤还可以通过编码绕过,如:<img.src="javascript alert('xss);">
可以写成<img src=javascri:pt:alert('xss'):>
(5) 构造事件
不能依靠属性值运行xss的时候,我们可以尝试通过html事件来实现xss,如:<img src="#" onerror=alert('xss')>
图片地址不存在,加载失败的时候就会运行后面的脚本
也可以在别的位置使用:
1.onload加载完成时运行
2.oncheck点击时运行
3.onmousemove当鼠标移动时运行
(6)注释过滤
在样式表中,/**/中间的内容会被浏览器忽略,在css中,我们可以使用expression执行js代码,这个时候遇到黑名单过滤,我们就可以通过添加无意义的注释符号来避开过滤
<div style="xss:expr/*xss*/ession(alert('xss'))">