文件上传,最主要的漏洞是图片上传,如果能上传对应开发语言的文件,那极大可能会获取到服务器的权限,即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.ini
auto_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文件
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白名单。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与本公众号无关。
✦
✦
原文始发于微信公众号(白帽学子):文件上传漏洞利用汇总
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论