0x01 客户端验证绕过(javascript 扩展名检测)
一般这种就是只是做了前端的后缀格式限制。先把马改成能正常上传的格式,开启抓包,上改了后缀的马,抓包,改马的后缀。放行。成功绕过
0x02 服务端验证绕过(http request 包检测)
- Content-type (Mime type) 检测
遇到这种,可抓包,简单的可以进行修改:content-Type值绕过
0x03 服务端验证绕过(扩展名检测) - 黑名单检测
黑名单的安全性其实还没白名单的安全性高,至少攻击它的方式比白名单多多了
1. 找黑名单扩展名的漏网之鱼 - 比如上面就漏掉了 asa 和 cer 之类
2. 可能存在大小写绕过漏洞 - 比如 aSp 和 pHp 之类
3. 特别文件名构造 - 比如发送的 http 包里把文件名改成 help.asp. 或 help.asp_(下划线为空 格),这种命名方式在 windows 系统里是不被允许的,所以需要在 burp 之类里进行修改 ,然 后绕过验证后,会被 windows 系统自动去掉后面的点和空格。
4. IIS 或 nginx 文件名解析漏洞 - 比如 help.asp;.jpg 或 http://www.xx.com/help.jpg/2.php这里注意网上所谓的 nginx 文件名解析漏洞实际上是 php-fpm 文件名解析漏洞
5. 0x00 截断绕过 - 这个是基于一个组合逻辑漏洞造成的
6. 双扩展名解析绕过攻击(1) - 基于 web 服务的解析逻辑
如果上传一个文件名为 help.asp.123 首先扩展名 123 并没有在扩展名 blacklist 里,然后扩展名 123 也没在 Apache 可解析扩展名list 里,这个时候它会向前搜寻下一个可解析扩展名,或搜寻到 .php,最后会以 php 执行
7. 双扩展名解析绕过攻击(2) - 基于 web 服务的解析方式
如果在 Apache 的 conf 里有这样一行配置 AddHandler php5-script .php 这时只要文件名里包含 .php
即使文件名是 test2.php.jpg 也会以 php 来执行
8. 危险解析绕过攻击 - 基于 web 服务的解析方式 如果在 Apache 的 conf 里有这样一行配置AddTypeapplication/x-httpd-php .jpg 即使扩展名是 jpg,一样能以 php 方式执行
- 白名单检测 - .htaccess 文件攻击
白名单相对来说比黑名单安全一些,但也不见得就绝对安全了
1. 特别文件名构造 (同黑名单攻击第 3 条) 2.IIS或nginx文件名解析漏洞 (同黑名单攻击第4条) 3. 0x00 截断绕过 (同黑名单攻击第 5 条)
- .htaccess 文件攻击 无论是黑名单还是白名单 再直接点就是直接攻击 .htaccess 文件
0x04 服务端验证绕过(文件完整性检测)
- 文件头检测
- 图像大小及相关信息检测
- 文件加载检测
如果要对文件加载器进行攻击,常见的就是溢出攻击, 上传自己的恶意文件后,服务上的文件加载器进行加载测试时,被触发攻击执行 shellcode比如 access/mdb 溢出
0x05 各种情况下的检测绕过分析
A 客户端端验证绕过(javascript 扩展名检测)
用反向代理工具(burp 之类)或禁用 js 便可以绕过客户端端验证
B 服务端验证绕过(http request 包检测) - Content-type (Mime type) 检测 用反向代理工具(burp 之类)进行 Content-type 伪造
C 服务端验证绕过(扩展名检测) - 黑名单检测 找黑名单扩展名的漏网之鱼 - 比如上面就漏掉了 asa 和 cer 之类 可能存在大小写绕过漏洞 - 比如 aSp 和 pHp 之类 特别文件名构造 - 比如发送的http包里把文件名改成help.asp. 或 help.asp_(下划线为空格) IIS 或 nginx 文件名解析漏洞 - 比如 help.asp;.jpg 或 http://www.xx.com/help.jpg/2.php 0x00 截断绕过 - 这个是基于一个组合逻辑漏洞造成的 双扩展名解析绕过攻击(1) - 基于 web 服务的解析逻辑 双扩展名解析绕过攻击(2) - 基于 web 服务的解析方式 危险解析绕过攻击 - 基于 web 服务的解析方式 - 白名单检测 特别文件名构造 (同黑名单攻击第 3 条) IIS 或 nginx 文件名解析漏洞 (同黑名单攻击第 4 条) 0x00 截断绕过 (同黑名单攻击第 5 条)
- .htaccess 文件攻击 在 PHP 安全没配置好的情况下,用自己的 .htaccess 覆盖服务上原文件
D 服务端验证绕过(文件完整性检测) - 文件头检测 在文件开始伪装文件的幻数 - 图像分辨率检测 在文件开始伪装图像大小数据
- 文件加载检测 用工具对文件空白数据区或注释区进行代码注入绕过(图像仅能绕过渲染测试,而不能绕过二次渲染 )用恶意文件去攻击加载器本身