常见文件上传姿势总结

  • 内容
  • 相关

timg.jpg

前端验证#


这里可以直接在前端改代码,把php类型添加进去,也可以用burp

比如把想要上传的php文件后缀改成允许上传的类型,这里我改成jpg,然后上传并抓包

然后把后缀名再更改回来,并放包

服务端-检查后缀-黑名单#
上传特殊可解析后缀#
php#

php、php3、php4、php5、phtml、pht


asp#

asa  cer  cdx


aspx#

ashx  asmx ascx


上传.htaccess文件#


SetHandler application/x-httpd-php

这样所有文件都会解析为php,然后再上传图片马,就可以解析

利用Windows特性#

1. 利用空格        demo.空格php     
2. 小数点去绕过      demo.php.
3. Ads数据流         demo.php::$DATA    
4. 大小写绕过          demo.pHP 
        

ps:以上windows特性除了大小写绕过需要访问对应的上传后缀名,其余只需访问php这样的的即可

后缀名双写#

demo.pphphp


利用解析漏洞#
apache解析漏洞#

1.老版解析问题

demo.php.aaa      aaa可以改成任意黑名单之外且不被解析的后缀名

2.CVE-2017-15715

上传一个文件名最后带有换行符

换行符只能是\x0A比如上传1.php,然后在burp中修改hex,在1.php后面添加一个\x0A


服务端-检查后缀-白名单#
利用解析漏洞#
iis解析漏洞#

1.iis6.0

当文件夹的名字以.asp,.asa,.cer,.cdx结尾的时候,那么目录中的文件都会以这个后缀名一类的文件解析。

如aaaa.asp文件夹,里面有个文件a.txt,那么访问网站http://www.xxx.com/aaa.asp.a.txt/ 会以asp方式运行。

特殊文件名:当文件以任意文件名.asp命名的时候,如aaa.asp;.jpg这个文件会以asp方式运行。

2.iis7.0、7.5:

上传任意文件名.jpg,在后面追加上/任意文件名.php,那么这个文件会以PHP解析


Nginx解析漏洞#

类似于iis7.0、7.5的解析漏洞,在任意文件名后面添加xxx.php的方式来运行这个文件


00截断#
大部分情况是上传路径可控

前提


> PHP < 5.3.4
> magic_quotes_gpc 关闭


利用方式


在文件名最后或者上传路径之后加上%00

然后在burp中对%00  url编码或者直接修改hex为00


服务端-检查文件类型-检查Content-Type#
修改Content-Type为规定的值,常见如下


text/html :HTML格式

text/plain :纯文本格式      

text/xml :XML格式

image/gif :gif图片格式    

image/jpeg :jpg图片格式

image/png :png图片格式

application/xml : XML数据格式

application/json : JSON数据格式

application/pdf : pdf格式  

application/msword : Word文档格式

application/octet-stream : 二进制流数据(如文件下载)


服务端-检查文件类型-检查文件头#
当上传文件时,可以使用winhex在数据最前面添加图片的文件头,从而绕过检测


> gif(GIF89a) : 47 49 46 38 39 61
>
> jpg、jpeg : FF D8 FF
>
> png : 89 50 4E 47 0D 0A

本文标签:

版权声明:若无特殊注明,本文皆为《T0ex4》原创,转载请保留文章出处。

本文链接:常见文件上传姿势总结 - https://www.k1q.cn/post-17.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注