文件上传漏洞利用汇总

admin 2022年8月15日20:56:34安全文章评论13 views1995字阅读6分39秒阅读模式

文件上传,最主要的漏洞是图片上传,如果能上传对应开发语言的文件,那极大可能会获取到服务器的权限,即getshell。各上传功能点多少都有做过滤,这次做个总结,也方便以后查笔记,包括各语言、中间件及稀奇古怪的方法。


0x01 常用后缀变异绕过

语言

可解析后缀

asp/aspx

asp、aspx、asa、asax、ascx、ashx、asmx、cer、aSp、aSpx、aSa、aSax、aScx、aShx、aSmx、cEr

php

php、php2、php3、php4、php5、pHp、pHp5、pHp4、pHp3、pHp2、html、htm、phtml、pht、Html、Htm、pHtml

jsp

jsp、jspa、jspx、jsw、jsv、jspf、jtml、jSp、jSpx、jSpa、jSw、jSv、jSpf、jHtml    


0x02 中间件解析漏洞上传绕过

1.IIS6.x解析漏洞

基于目录名,默认将*.asp/目录下的所有文件当成asp解析

基于文件名,默认会将*.asp;jpg当成asp解析,原理是服务器默认不解析;号及后面的内容,相当于截断。


2.IIS7.5解析漏洞

任意文件php解析,此版本在Fast-CGI运行模式下,在任意文件后面加上/.php都能解析为php,例如test.jpg/.php


3.Nginx配置文件错误导致的解析漏洞

对于任意文件名,在cgi.fix_pathinfo默认开启的状态下,访问路径添加/xx.php(xx为任意字符)后,即可将该文件作为php解析,例如:test.jpg/xxx.php


4.Apache未知扩展名解析漏洞

Apache默认一个文件可以有多个以点分割的后缀,当最右边的后缀无法识别(不在mime.types文件内),则继续向左识别,直到识别到合法后缀才进行解析。比如访问phpinfo.php.xxx。


5.Apache addhandler导致解析漏洞

如果在Apache的conf里有这样一行配置 AddHandler php5-script .php 这时只要文件名里包含.php就以php文件执行。


0x03 其他各种姿势的绕过

1.客户端校验

上传即提示文件格式不支持,bp抓不到包,大多是前端JS校验,上传合法文件再改后缀即可。


2.服务端校验Content-Type

bp抓包修改文件类型


3.%00截断

php版本必须小于5.3.4php.ini中的magic_quotes_gpc设置为Off。

截断注释,/payload/x.php%00.jpg,%00需要转化为URLencode,在有些函数执行时,会把这个字符(%00或0x00)当做结束符。GET请求使用%00,POST请求使用0x00。


4.服务端验证逻辑漏洞(此处有多种可能,比如后端未进行大小写转换、或是去除关键词)

后缀名大小写变化,如Php、asP等

双写后缀,phphpp,asaspp等


5.服务端为windows环境可尝试

在上传文件名后缀添加空格

在上传文件名后缀添加.

在上传文件名后缀添加::$DATA


6.上传apache解析配置文件.htaccess

上传.htaccess,重写文件解析,可以直接上传图片自动解析成php文件。

例如:.htaccess内容写入,SetHandler application/x-httpd-php,这行配置表示将所有后缀名都解析为php


7..user.ini配置覆盖

服务器脚本语言为PHP,并且使用CGI/FastCGI模式,php版本>5.3.0,上传目录下要有可执行的php文件。不管是nginx/Apache/IIS,只要是以fastcgi运行的php都可以用这个办法。

//上传一个.user.iniauto_prepend_file = xxx.jpg
//然后再上传一个图片马xxx.jpg<script language='php'>system('whoami');</script>

如果在上传目录中还有一个可执行的php文件,访问php文件,就达到了执行系统命令的效果。


0x04 测试tips

  • 实战环境下可以考虑后缀fuzz,大多数情况校验的是后缀和Content-Type

  • 多尝试组合验证,跑fuzz,验证黑白名单,逐步排查。正常内容,正常MIME;后门内容,正常MIME;伪造格式+后门内容,正常MIME等等

  • CTF环境可能还会校验文件头,可用GIF89a伪造文件头

  • 二次渲染自动去除图片马,对比上传之前和上传之后图片的十六进制代码,在保留的那部分中插入payload,应用gif文件


文件上传漏洞利用汇总


声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白名单。

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与本公众号无关。

原文始发于微信公众号(白帽学子):文件上传漏洞利用汇总

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月15日20:56:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  文件上传漏洞利用汇总 http://cn-sec.com/archives/1236910.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: