文件上传

文件上传


文件上传原理

​ 客户端选择发送的文件-->服务器接受-->网站程序接受-->临时文件-->移动到指定的路径服务器接受的资源程序


文件上传错误代码


网站常见的后缀名

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可以把后面的字符全部截断


posted @ 2021-11-11 18:59  stidies  阅读(226)  评论(0)    收藏  举报