绕过验证
前端绕过
javascript绕过,及js绕过
1.在网站开发者模式中禁用js(不推荐)
- 可能会把正常需要的JS禁用,导致上传失败
2.修改源码进行上传 直接复制网站源码到本地中,然后删除上传相关的JS,然后在上传区添加
action="目标地址"
然后在本地上传到对方网站中即可
后端绕过
实战中我们可以使用fuzz,通过抓包尝试绕过
黑名单
- 特殊解析后缀:php3 php5 phtml
- .htaccess解析:php的一个配置文件,可以先上传.htaccess,在上传木马
<FilesMatch "\.jpg"> #这里写文件名还是后缀名都可以,匹配到就会转变 SetHandler application/x-httpd-php </FilesMatch> - 大小写绕过:.PHp .Phtml
- 点绕过:抓包,在文件后缀最后加上一个点
- 空格绕过:抓包,在文件后缀最后加上一个空格
::$DATA绕过:抓包,在文件后缀最后加上::$DATA- 配合解析漏洞
- 双写后缀绕过:.pphphp
白名单
- MIME类型:抓包修改类型
- %00截断:抓包修改保存地址,然后再最后加上%00 注意:get可以自动解码,post需要人为解码
- 0x00截断
- 0x0a截断
内容及其他
- 文件头监测:GIF89a,塒NG
- 二次渲染
- 条件竞争:抓包然后intruder爆破,然后浏览器访问
- 突破getmagesize:用于获取图像信息
- 突破exif_imagetype:用于获取图片类型
图片码制作
copy /b 1.jpg + 1.php/a = muma.png
常见中间件解析漏洞
Apache
解析漏洞
解释: x.php.xxx.yyy 识别最后的yyy 如果不识别的 向前解析 直到识别
利用场景: 如果对方中间件apache属于低版本,我们可以利用文件上传,上传一个不识别的文件后缀,利用解析漏洞规则成功解析文件,其中后门代码被触发
Nginx
解析漏洞
解释: 制作图片马,然后上传,访问时在后面加上/.php 解析时会被当成php文件执行
利用场景: 适用于Nginx低版本和IIS7.5,直接访问logo.jpg/.php,任意图片后面都可以,如果是访问错误,就是没有这个漏洞,如果是乱码,就是有该漏洞
文件名逻辑漏洞
解释: 上传图片文件后抓包,修改为jpg\x20,上传成功后,再次抓包,把文件名修改为jpg\x20\x00.php即可
利用场景: 适用于Nginx 0.8.41~1.4.3/1.5.0~1.5.7,上传文件时加上一个空格,访问图片加上%20,如果访问成功则有该漏洞
文件上传绕过waf
哪些参数可以修改
- Content-Disposition: 一般可更改
- name: 表单参数值,不能更改
- filename :文件名,可以更改
- Content-Type:文件MIME,视情况更改
常见绕过方法 1.数据溢出-防匹配(xxx.. .) 在表单中加入一些垃圾数据,数据溢出可以防止文件后缀进行匹配
2.符号变异-防匹配('" ;)
只写一个闭合符号,或者在闭合符号后面写文件名,导致无法匹配"x/php或者"a"x.php
3.数据截断-防匹配(%00 ;换行)
上传文件抓包改为a.jpg;.php或者a.php%00.jpg(已失效)
4.重复数据-防匹配(参数多次)
上传文件时多写几遍filename="y.jpg",最后再写filename="y.php",他会识别最后一个后缀,类似于垃圾数据

Comments NOTHING