文件上传绕过各种姿势

   日期:2020-08-20     浏览:131    评论:0    
核心提示:0x01、漏洞简介文件上传,顾名思义就是上传文件的功能行为,之所以会被发展为危害严重的漏洞,是程序没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。文件上传漏洞是漏洞中最为简单猖獗的利用形式,一般只要能上传获取地址,可执行文件被解析就可以获取系统WebShell。0x02、漏洞原理​ 网站WEB应用都有一些文件上传功能,比如文档、图片、头像、视频上传,当上传功能的实现代码没有严格校验上传文件的后缀和文件类型时,就可以上传任意文件甚至是可执行文件后门。0

漏洞简介

文件上传,顾名思义就是上传文件的功能行为,之所以会被发展为危害严重的漏洞,是程序没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。文件上传漏洞是漏洞中最为简单猖獗的利用形式,一般只要能上传获取地址,可执行文件被解析就可以获取系统WebShell。

漏洞原理

​ 网站WEB应用都有一些文件上传功能,比如文档、图片、头像、视频上传,当上传功能的实现代码没有严格校验上传文件的后缀和文件类型时,就可以上传任意文件甚至是可执行文件后门。

漏洞危害

恶意文件传递给解释器去执行,之后就可以在服务器上执行恶意代码,进行数据库执行、服务器文件管理,服务器命令执行等恶意操作。根据网站使用及可解析的程序脚本不同,可以上传的恶意脚本可以是PHP、ASP、JSP、ASPX文件。

文件上传的绕过脑图

如何判断上传漏洞类型?

文件上传绕过姿势

0x01、本地JS绕过

  • 首先我们将上传文件后缀由phpjpg
  • 通过Burp抓包将jpgphp

0x02、MIME验证绕过(Content-Type)

  • 首先我们上传webshell时提示,文件类型不正确

  • 将Content-Tepy 由application/octet-stream
    改为 image/png 成功绕过


  • 上传成功

Content-Tepy类型扩展

0x03、黑名单绕过

  • 尝试上传webshell

可以通过提示或源码可以看出,上传点对后缀做了黑名单限制

因为是php,我们尝试使用php5等绕过黑名单验证

后缀绕过拓展

0x04、大小写绕过

大小写过滤原理:windows对大小写不敏感,linux对大小写敏感
将文件后缀名改成大写,成功上传。

0x05、空格绕过

原理:windows等系统下,文件后缀加空格命名之后是默认自动删除空格。查看网站源代码发现过滤了大小写,没用过滤空格。

在php后缀添加空格 成功绕过

0x06、点绕过

原理:同空格绕过原理一样,主要原因是windows等系统默认删除文件后缀的.和空格,查看网站源码发现,没有过滤点
在文件后缀添加个”.“成功绕过

0x07、双写绕过

原理:查看源码发现,没有过滤点,空格,大写等,估计这种不是放在windows下的,这里可以用点大写空格:$DATA等绕过,不过这里的目的不是这个,是让学习双写绕过,看源码发现str_ireplace这个函数将php,php5,php4等后缀变成空格,且只执行了一次,所以可以尝试构造文件后缀为pphphp绕过。
绕过姿势:上传文件后缀为pphphp的文件,发现上传成功,

0x08、%00截断

原理:查看源码发现使用了白名单,只允许jpg,png,gif文件的上传,所以前面使用的方法都不适用,然后我们发现路径img_path函数是让文件位置(save_path)加时间随机数(rand)的方法生成文件位置和文件名称,所以这里我们可以尝试在save_path的地方使用%00的方法截断后面的语句,burpsuite抓包发现,是可以更改save_path的,不过此方法有使用的限制。

使用限制:
1、php版本小于5.3.4
2、php.ini的magic_quotes_gpc为OFF状态

(magic_quotes_gpc)函数的的底层实现是类似c语言,所以可以%00截断

move_uploaded_file遇到\x00字符后会截断路径名,在实现上存在安全漏洞
绕过姿势:

(get传输):上传php文件,burpsuite抓包,修改save_path如图所示,发现上传成功

YJ连接成功

0x09、图片木马

查看源码:采用白名单限制上传的只能是图片,故考虑图片木马

那我们要制作张php图片马
copy 1.png/b + 2.php/a 3.jpg 上传

上传成功,需要配合文件包含利用

0x10、竞争条件

查看源码:发现上传的文件先被存储在服务器,然后进行判断,如果不是jpg png gif 则unlik()删掉,是的话重命名


绕过姿势:在判断删除前,进行访问,竞争时间
shell.php 如下,当然也可写其他木马或者生成木马的php文件,上传用burpsuite抓包,当然可以写脚本

绕后构造访问连接:http://127.0.0.1/upload-labs-master/upload/shell.php 用burpsuite抓包发送和上传一起开始 如何不行可以尝试线程调大点,或者写脚本

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服