文件上传
文件上传
文件上传原理
客户端选择发送的文件-->服务器接受-->网站程序接受-->临时文件-->移动到指定的路径服务器接受的资源程序
文件上传错误代码


网站常见的后缀名
php
php3
phtml
asp
asa
cdx
cer
aspx
ashx
php.a
shtml
过滤的时候可以传入这种格式
aspasp
phpphp
大小写转换
10种文件上传漏洞
一,直接上传
文件上传无要求,可直接上传php代码文件
二,客户端js验证绕过突破上传
2.1 上传要求:
上传的文件后会被js代码进行判断,将一些文件格式给绕过掉。

2.2 绕过方法:
2.2.1 直接修改代码
新建一个HTML文件,用编译器打开该HTMl文件,并将网页的源代码复制过来,将不需要的代码给删除掉,将调用js判断的代码删除,并修改特定的类名,并且在form标签里添加代码action=“原URL网址”以调用原网址,再在此HTML网页中上传php文件

2.2.2 抓包修改
创建一个php的文件,在里面添加php代码,然后将文件后缀更改为png或者可以被执行的文件格式,用burp进行抓包,发送到Repeater,然后将文件后缀改为php,

三,黑白名单绕过
3.1 黑名单:
指定的后缀名的禁止上传的

3.2 白名单:
允许上传的文件后缀名
3.3 黑名单过滤绕过:
穷举后缀名
3.3.1,上传一个png的文件,使用burp进行抓包,发送到Proxy,将文件后缀名添加变量

3.3.2,点击Payloads,点击load添加字典,选择一个有后缀名的txt文件添加字典,或者点击Add手动添加字典

3.3.3,点击右上角的Start attack进行穷举

3.3.4,点击穷举的结果,查看每个结果的响应,查看哪些后缀可以被绕过上传

四,content-type检测突破上传
4.1 上传要求:
只能上传一些png,bmp,gif图片,

4.2 绕过:
4.2.1,上传一个php代码文件,使用burp进行抓包,修改文件的类型,将Content-Type改为image/jpg

4.2.2,将修改后的数据提交即可绕过
五,文件头检测突破上传
5.1 上传要求:
只能上传gif的文件,其他的文件不能上传

5.2 绕过
制作图片一句话
5.2.1在gif文件后面追加php代码,使用以下代码,追加后新的php文件里包含gif文件和php代码文件
copy gif文件/b(1.gif)+php代码文件(a.php) 新的文件(b.php)

5.2.2 将新合成的文件上传即可进行绕过
六,iis6.0文件名解释上传
6.1 要求
6.1.1 文件名可控,后缀名不可控 IIS6.0解析漏洞,一般上传的文件名不会被改变
6.2.2 只能上传特定的文件

6.2 绕过
上传含带“.asp”的文件,会被解析为asp的文件
6.2.1 更改文件为 “文件名.asp;.jpg” 或“文件名.php;.jpg”

抓包,发送到repeater,修改文件为 “文件名.php;.jpg”,即可绕过文件上传

七,文件夹目录解析漏洞
目录解析漏洞只能用于iis6.0解析漏洞里面
7.1 要求:
6.1.1 文件名可控,后缀名不可控 IIS6.0解析漏洞,一般上传的文件名不会被改变
6.2.2 只能上传特定的文件
7.2 绕过:
7.2.1新建.asp文件夹
新建文件夹为xx.asp或xx.cer.,只要文件上传到这个文件夹里,访问就会执行脚本
7.2.1.1 新建一个xx.asp的文件夹,然后在文件夹里新建一个asp脚本的文件,后缀改为.jpg,
asp脚本:
<%eval request("chopper")%>
使用网页打开,可以发现文件访问正常

7.2.2 使用抓包修改文件路径
上传一个asp脚本的ipg文件,使用burp进行抓包,发送到repeater,,点击params,修改里面 的filepath参数为xx.asp

创建上传的时候会获取到这个文件,会创建一个这个目录名的文件夹,并将上传的文件复制到这个文件夹里,之后使用蚁剑连接网页,即可访问文件


八,%00截断的应用场景
8.1 %00截断的应用场景
- 直接截断文件名
- 创建目录可控 %00截断创建目录 利用iis6.0解析漏洞 上传文件到这个目录里
- 截断参数
8.2 绕过:
%00截断
上传一个有PHP代码的jpg文件,用burp进行抓包,修改文件名后缀为.php%00.jpg
选择%00,右击点击Convert selection,选择URL,将%00修改为URL-decode,
使用%00可以把后面的字符全部截断

点击提交,使用蚁剑查看文件
目录解析漏洞
上传有asp代码的jpg文件,使用进行抓包,修改filepath参数为xx.asp%00,不需要修改文件后缀
选择%00,右击点击Convert selection,选择URL,将%00修改为URL-decode,
使用%00可以把后面的字符全部截断


浙公网安备 33010602011771号