文件上传漏洞:
如果服务器配置不当或者没有进行足够的过滤,而导致用户可以向服务器上传任意文件
包括木马,病毒,恶意脚本或者WebShell等,并被脚本解析器执行,这就产生了文件上传漏洞
一句话木马(小马):<?php @eval($_POST['test']);?>
需要和中国菜刀搭配
中国菜刀的三个基本功能:
1.文件管理 2.数据库管理 3.虚拟终端
前期需要搜集什么信息?
1.目标使用的语言
2.中间件
3.服务器系统
4.可以上传什么类型的文件
解析漏洞:
IIS6.0解析漏洞
1.目录解析:默认会把 .asp, .asa目录下的文件都解析成asp文件。
如:/test.asp/test.jpg
2.文件解析:
/test.asp;1.jpg
IIS6.0默认的可执行文件除了asp还包括 .asa、 .cer、 .cdx
Apache解析漏洞
Apache1.x和Apache2.x中存在解析漏洞
在解析文件时有一个顺序,当碰到不认识的扩展名时,将会从后向前解析
直到碰到认识的扩展名为止,如果都不认识,则会暴露其源码
如:test.php.xxx
Nginx<0.8.03空字节代码执行漏洞
影响版本:0.5.x,0.6.x,0.7<=0.7.65,0.8<=0.8.37
Nginx在图片中嵌入PHP代码然后通过访问test.jpg%00.php来执行其中的代码
常见的检测方式:
1.客户端检测(javascript检测文件扩展名):可以通过Bp抓包进行绕过
2.服务端检测(文件扩展名检测):黑白名单
黑名单:文件名大小写绕过、名单列表绕过(如asa,cer,cdx,php3等)、0x00截断
白名单:解析漏洞、0x00截断
3.服务端检测(MIME类型、Content-Type内容)
所谓MIME类型检测实际上就是客户端在上传文件到服务端的时候,服务端对客户端上传文件的
Content-Type类型进行检测,如果是白名单所允许的,则可以正常上传,否则上传失败
常见的例子:
’.gif’:‘image/gif’
‘.doc’:‘application/msword’
‘.asp’:‘application/x-asp’
4.服务端检测(文件头检测)
插入服务器允许的文件头部进行绕过
如:GIF968a