文件上传解析漏洞
以下转自clancyb00m的github
-----------------------------------------------------------------------------------------------------------------------
nginx
nginx <8.03 空字节代码执行漏洞
影响版本:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37
上传图片马然后这样访问:
就会执行PHP代码
nginx 1.6.2
如果hack.php
不存在,就会以.php
后缀去执行1.txt
,所以最后执行的其实是:
nginx 1.x + php 7.x
该漏洞属于用户配置不当造成的解析漏洞
假设你上传了一个图片马,地址为
那么漏洞地址就是:
apache
apache 2.2.x
如果运维人员给.php
后缀增加了处理器:
上传1.php.haha
的文件
haha
后缀不存在,Apache会左移寻找能解析的后缀,所以最后会解析1.php的内容
apache 2.4.0~2.4.29
CVE-2017-15715
直接上传一个1.php
文件,然后抓包在后缀名后添加\x0a
,然后访问如下网址:
IIS
IIS 6
IIS 7.5
在默认Fast-CGI开启的情况下,上传一个hack.jpg文件,内容中包含:
IIS 7.0/IIS 7.5/Nginx <8.03畸形解析漏洞
然后访问hack.jpg/.php,就会在这个目录下生成一句话木马shell.php
-----------------------------------------------------------------------------------------------------------------------
(1)上传不符合windows文件命名规则的文件名
test.asp.
test.asp(空格)
test.php:1.jpg
test.php::$DATA
shell.php::$DATA…….
会被windows系统自动去掉不符合规则符号后面的内容。
(2)linux下后缀名大小写
在linux下,如果上传php不被解析,可以试试上传pHp后缀的文件名。
上传htaccess文件
设置目录某类型文件不能执行脚本,?:中间是修饰符这里没有ps: ?i:不区分大小写
防护: