文件上传的20种骚方法

文件解析漏洞


黑名单绕过

第一题:

文件上传的20种骚方法_第1张图片
我们查看源代码,发现不准上传 .jpg .png .gif后缀名的文件
于是,我们制作一个图片木马
在这里插入图片描述文件上传的20种骚方法_第2张图片制作成功
文件上传的20种骚方法_第3张图片我们利用burp的抓包工具,去获取数据包
文件上传的20种骚方法_第4张图片修改上传文件的后缀名为.php
发现文件上传成功

文件上传的20种骚方法_第5张图片进入图片链接,发现果然是一个php码
文件上传的20种骚方法_第6张图片利用菜刀进入成功进入后台
文件上传的20种骚方法_第7张图片

第二题:

同样是是上传文件,但是前端检测点不同
我们同样制作图片码,利用burp抓包,修改文件后缀名为php,一样能拿下服务器

文件上传的20种骚方法_第8张图片文件上传的20种骚方法_第9张图片

第三题:

我们查看图片源代码
在这里插入图片描述我们发现他们把以.asp .aspx .php .jsp尾缀结尾的,全部都禁止了
文件上传的20种骚方法_第10张图片
我们可以利用其他的文件后缀名,后台数据库同样可以解析文件
于是我们同样上传文件,同样利用burp来抓包,修改后缀名

文件上传的20种骚方法_第11张图片拿下服务器
文件上传的20种骚方法_第12张图片

第四题:

在这里插入图片描述我们发现这个源代码,啪啪的一大段代码,几乎隔绝了大部分的敏感文件的后缀名
我们利用cmd修改文件后缀名
ren 1.txt .htaccess

文件上传的20种骚方法_第13张图片然后上传去
发现
文件上传的20种骚方法_第14张图片显然上传成功,然后发现上传我们的图片木马
文件上传的20种骚方法_第15张图片利用菜到拿下服务器
文件上传的20种骚方法_第16张图片

第五题:

在这里插入图片描述发现他隔绝了很多文件的后缀名,同时关闭了.htaccess
于是我们利用文件后缀名的大小写

文件上传的20种骚方法_第17张图片图片码上传成功
文件上传的20种骚方法_第18张图片拿下服务器
文件上传的20种骚方法_第19张图片查看源代码
文件上传的20种骚方法_第20张图片发现他把所有文件的大小写都强制转化为小写
各种方式都试过了,我们尝试改文件后缀名,在后缀名后面加一个空格

文件上传的20种骚方法_第21张图片文件上传的20种骚方法_第22张图片文件上传的20种骚方法_第23张图片文件上传的20种骚方法_第24张图片图片码上传成功,拿下服务器

第七题:

我们同样去抓包,然后发现它又几乎把很多东西都隔绝了,我们尝试输入.php.来绕过
文件上传的20种骚方法_第25张图片在这里插入图片描述文件上传的20种骚方法_第26张图片成功绕过,拿下服务器

第八题

文件上传的20种骚方法_第27张图片几乎阻止了大部分的上传的漏洞,但是却没有防止::$DATA
文件上传的20种骚方法_第28张图片于是,我们照样上传文件
文件上传的20种骚方法_第29张图片文件上传的20种骚方法_第30张图片拿下服务器

第九题:

查看源代码
文件上传的20种骚方法_第31张图片发现它是隔绝了大多的上传漏洞,但是我们发现它是有一个逻辑漏洞,那就是它只检测了一遍。
于是我们自己构造文件的后缀,主动让它来检测,并删除多余的尾缀
看到它首先第一个删除文件末尾的点,再删除文件末尾的空格
.php. .
删除完过后就是.php.
正则匹配发现,并没有隔离php.文件后缀名,文件同样可以上传成功

文件上传的20种骚方法_第32张图片文件上传的20种骚方法_第33张图片文件上传的20种骚方法_第34张图片文件上传成功拿下服务器

第十题:

我们查看源代码,发现它自动把所有php等等文件后缀的敏感字母给替换成空
在这里插入图片描述于是,我们构造双尾缀
把后缀名换成 .pphphp
等系统自动删除php过后就会剩下.php

文件上传的20种骚方法_第35张图片上传文件,果然上传成功
文件上传的20种骚方法_第36张图片文件上传的20种骚方法_第37张图片文件上传的20种骚方法_第38张图片

下面就是白名单绕过了

第十一题:

我们首先在看源代码

文件上传的20种骚方法_第39张图片发现它只有当if()>0,它才执行上传文件,于是我们利用%00截断绕过
把文件后缀名修改成666.php%00.jpg

而**%00是一个URL编码,它会被转化成0x00**,这是16进制的表示ascii码值为0,有些函数在处理这个字符的时候会把这个字符当做结束符,他们就读取到这里认为这一段结束了。
下面我们进行文件上传
文件上传的20种骚方法_第40张图片图片码上传成功
文件上传的20种骚方法_第41张图片我们访问图片地址,发现它真的单纯是一个图片,并不是php文件
文件上传的20种骚方法_第42张图片
原因是它把我们传上去的图片进行了重命名,导致我们上传的改文件后缀名的方式失效了

所以,我们无法对上传的文件名,进行操作,于是,我们继续抓包,看看能否在保存路径的时候进行操作
文件上传的20种骚方法_第43张图片

发现这边有一个保存路径可以操作
于是,我们修改保存路径尝试利用保存的路径中利用%00来终止文件的识别
在这里插入图片描述
发现文件上传失败
在这里插入图片描述
同时它报错了,我们发现报错后面存在一个重命名的文件,我发现是我少打了一个%,于是继续上传
文件上传的20种骚方法_第44张图片上传成功
拿下服务器
在这里插入图片描述

第十二题:

同样是00截断,我们把同样抓取一个数据包,先上传图片码
文件上传的20种骚方法_第45张图片
我们发现,它这是POST传参的保存,那么它肯定是不能识别URL栏的%00的
于是,我们直接修改它的HEX值
文件上传的20种骚方法_第46张图片然后在HEX那边修改
在这里插入图片描述修改成00
图片码上传成功,打开图片地址
文件上传的20种骚方法_第47张图片拿下服务器

第十三题:——第十五题:

直接上传图片码就行了,下载过后,图片码不会被消失,依然在

第十六题:

二次渲染,就是图片上传后,会进行渲染,导致我们本来上传的图片码,被篡改,失效,但是gif文件因为是动态文件,他被渲染的时候,第一部分是不会被修改的,但是第二部分会被修改。于是,我们制作gif的图片码。

第十七题:

条件竞争

因为数据库删除文件是需要时间的,所以我们一直去访问就可以在被删除之前访问到,访问到就回执行我们文件里的代码

';file_put_contents('1.php',$a)?>

我们利用
burp跑包,两个线程,一个疯狂上传,一个疯狂访问。
我首先先抓一个上传图片码的包,并传到Intruder模块、
在这里插入图片描述接着,我再上传一张正常图片,找到保存的地址
文件上传的20种骚方法_第48张图片修改地址,访问666.php的文件
文件上传的20种骚方法_第49张图片再抓包,传到Intruder
文件上传的20种骚方法_第50张图片开始爆破
文件上传的20种骚方法_第51张图片文件上传的20种骚方法_第52张图片

第十九题:

move_uploaded_file()截断
move_uploaded_file()函数是将文件移动到一个新的位置
我首先上传一个图片码

文件上传的20种骚方法_第53张图片发现他会重命名,并且移动文件,那他肯定会用到这个函数,于是我们修改hex的值进行截断
文件上传的20种骚方法_第54张图片
文件上传的20种骚方法_第55张图片
文件上传的20种骚方法_第56张图片

第二十题:

IIS6.0除了将ASP后缀当做ASP进行解析的同时,当文件后缀名字为.asa .cer .cdx 也会当做asp去解析,这是因为IIS6.0在应用程序扩展中默认设置了.asa .cer .cdx 都会调用 asp.dll

我们制作好asp的一句话木马,然后利用burp抓包
修改文件后缀名,拿下服务器
在这里插入图片描述在这里插入图片描述
文件上传的20种骚方法_第57张图片

第二十一题:

IIS6.0会识别 ; 的截断符直接上传文件,我们把文件后缀名改成。asp;.jpg就可以实现文件上传成功。
文件上传的20种骚方法_第58张图片

文件上传的20种骚方法_第59张图片但是注意,这个和00截断是不同的,如果我们访问555.asp是访问不到的
必须得访问555.asp;.jpg才能访问到

第二十二题:

asp/123.jpg 他将当做asp进行解析
和第二十二题一样,我们需要上传.asp/.jpg

第二十三题:

CGI解析漏洞
文件上传的20种骚方法_第60张图片
所以说我们只需要在正常的.jpg后面加/.php就可以成功的绕过解析
文件上传的20种骚方法_第61张图片文件上传的20种骚方法_第62张图片

你可能感兴趣的:(黑盒测试,白箱测试)