相关阅读
往期内容
学习路径
文件上传漏洞基础
你需要掌握文件上传漏洞的成因及危害
文件上传漏洞绕过方式
- 前台JS验证审计+绕过
- content-type验证审计+绕过
- phtml绕过
- 覆盖 htaccess绕过
- 大小写绕过
- 后缀加空格绕过
- 后缀加点绕过
- 后缀加–$DATA绕过
- 后缀..绕过
- 双写绕过
- GET00截断绕过
- POST00截断绕过
- 图片马绕过
- exif_imagetype绕过
- 图像二次渲染绕过
- 条件竞争绕过
- 条件竞争和解析漏洞绕过
- 数组配合windows特性绕过
视频讲解
学习笔记
文件上传漏洞成因及危害
Web应用程序通常会有文件上传功能,例如论坛的附件上传,上传图片/头像/Zip压缩包等,只要被Web应用程序允许上传文件,就可能存在文件上传漏洞。在不对被上传的文件进行限制/过滤或者限制被绕过,从而上传恶意文件、可执行脚本到服务器上,进一步导致服务器沦陷
如何确认Web应用程序是否存在上传漏洞呢?例如论坛由PHP开发,用户可上传头像,也就是图片文件,但是没有对图片格式进行验证,比如能上传.php文件,这就是一个上传漏洞,上传的文件被当做脚本成功解析,就代表有上传漏洞。
文件上传漏洞成因
- 服务器配置不当 在不需要上传文件的情况下可导致任意文件上传,参考HTTP请求方法PUT
- 本地文件上传被绕过 只在客户端浏览器上做了文件限制而没有在远程的服务器上做限制,只需要修改上传时发送的数据包就可以轻松绕过上传限制 a.抓包看,禁用JS插件(这个插件用作文件上传本地验证),现上传一个恶意文件,如果是本地限制,执行过滤的就是浏览器的js插件,禁用后就能上传恶意文件 b.如果是服务器限制,先把恶意文件传给服务器,然后服务器再返回过滤结果,这个时候单单禁用本地的js插件没什么用
- 过滤不严或被绕过 有些网站使用上传黑名单过滤掉一些可执行文件脚本的后缀,但是黑名单不全或者被绕过,也可导致恶意文件上传。如果使用白名单,仅允许名单内所包含的文件格式上传会更加安全。
- 文件解析漏洞导致文件执行
- 路径截断
文件解析漏洞
解析漏洞是指web服务器因对http请求处理不当导致将非可执行的脚本,文件等当做可执行的脚本,文件等执行。该漏洞一般配合服务器的文件上传功能使用,以获取服务器的权限。
例如xxx.php.jpg看似是图片文件,实际解析被当做php文件
路径截断
上传的文件中使用一些特殊的符号,文件被上传到服务器时路径被这些符号截断,从而控制文件上传的路径。常见截断字符 \0 ? %00
例如xxx.php%00xx.jpg
IIS 5.x/6.0解析漏洞
目录解析
文件夹名称中带有.asp .asa等可执行脚本文件的后缀,其目录内(这个文件夹内)的任何扩展名的文件都会被IIS当做可执行文件解析并执行
例如:www.xxx.com/xx.asp/123.jpg
文件解析
IIS6.0下,分号;后面的不被解析
例如:www.xx.com/123.asp;jpg,实际被当做asp文件解析。6.0默认可执行后缀asp、asa、cer、cdx
IIS7.0/7.2/Nginx0.8.3以下版本畸形解析漏洞
在默认开启Fast-CGI情况下,访问http://www.xxx.com/xx.jpg/.php,被当做php解析
Apache解析漏洞
Apache对文件解析从右往左,如果遇到不可识别的后缀,再从左向右判断
例如xx.php.owf.rar,因无法解析rar和owf,就会从左开始,当做php文件
文件上传漏洞危害
上传漏洞与SQL注入或 XSS相比,其风险更大,如果 Web应用程序存在上传漏洞,攻击者上传的文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。如果上传的文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为。
如果上传的文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。如果上传的文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。甚至攻击者可以直接上传一个webshell到服务器上 完全控制系统或致使系统瘫痪。
uploads靶场学习
upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。
温馨提示
1、每一关没有固定的通关方法,大家不要自限思维!
2、本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路。
3、实在没有思路时,可以点击查看提示。
4、如果黑盒情况下,实在做不出,可以点击查看源码。
![图片[1]-【零基础学渗透】文件上传漏洞的常见方式汇总-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220718053759178-1024x738-1.webp)
如何判断上传漏洞类型?
![图片[2]-【零基础学渗透】文件上传漏洞的常见方式汇总-FancyPig's blog](https://www.cvv-goods.com/wp-content/uploads/2023/03/20220718053851285-1024x627-1.webp)
靶场搭建
配置项 | 配置 | 描述 |
---|---|---|
操作系统 | Window or Linux | 推荐使用Windows,除了Pass-19必须在linux下,其余Pass都可以在Windows上运行 |
PHP版本 | 推荐5.2.17 | 其他版本可能会导致部分Pass无法突破 |
PHP组件 | php_gd2,php_exif | 部分Pass依赖这两个组件 |
中间件 | 设置Apache以moudel方式连接 |
靶场下载地址:https://github.com/c0ny1/upload-labs
暂无评论内容