Upload-Labs靶场通关攻略

文件上传漏洞

(一) 漏洞概念

  文件上传漏洞是一种常见的Web安全漏洞,主要指攻击者通过Web应用程序的文件上传功能,上传恶意文件(如木马、病毒、WebShell等),从而获得对服务器的控制权。这种漏洞通常由于开发者在实现文件上传功能时,未能充分考虑安全性,导致恶意文件被上传并执行

(二) 漏洞原理

1发现一个文件上传点

2先判断上传功能是否正常

3判断黑名单/白名单:shell.php.xxxasdf

黑名单绕过:

·前端绕过

·content-type绕过

·生僻扩展名绕过

·.htaccessapchache中间件

·.user.ini绕过条件:PHP

·大小写绕过

·末尾加点绕过(windows系统)

·末尾加空格绕过

·代码审计绕过

·双写绕过

·::$DATA绕过

白名单绕过:

·代码审计:00截断

·条件竞争绕过

(三) 漏洞危害

1、代码执行:上传的文件如果是Web脚本语言(如PHPASPJSP等),服务器的Web容器可能会执行这些脚本,导致代码执行。

2、系统控制:攻击者可以通过上传WebShell,完全控制系统或致使系统瘫痪。

3、钓鱼攻击:上传的文件可能是钓鱼图片或包含脚本的图片,在某些浏览器中会被作为脚本执行,用于钓鱼和欺诈。

4病毒传播:上传的文件可能是病毒或木马,用于诱骗用户或管理员下载执行。

(四) 修复思路

系统运行时:

·设置不可执行:将文件上传的目录设置为不可执行,防止脚本执行。

·白名单过滤:使用白名单控制上传文件类型,只允许指定扩展名的文件上传。

·随机数重命名:使用随机数改写文件名和文件路径,增加攻击成本。

·单独设置域名:单独设置文件服务器的域名,利用浏览器同源策略防止客户端攻击。

·安全设备防御:使用专业安全设备检测和防御恶意文件上传行为。

 

系统开发时:

·增强安全意识:开发人员应有较强的安全意识,充分考虑系统的安全性。

·严格检查:在客户端和服务器端对用户上传的文件名和文件路径进行严格检查。

 

系统维护时:

·安全扫描:使用多个安全检测工具对系统进行安全扫描,及时发现并修复潜在漏洞。

·日志监控:定时查看系统日志,发现入侵痕迹。

·更新维护:关注并及时更新系统和第三方插件的版本,修补已知漏洞。

 

(五) 漏洞利用过程

第一关

更改扩展名后提交数据包

 

 

成功劫持

 

 

第二关

上传木马,将content-type更改为要求的image/jpeg

 

 

成功劫持

 

第三关

在后缀中加两个::$DATA

 

成功劫持

 

第四关

切换为Apache

上传.htaccess文件后上传木马,改名为Tony

 

 

失败

 

 

可通过代码审计绕过

 

成功劫持

 

 

第五关

切换回nginx

上传两个文件:.user.ini1.gif木马

访问upload目录下的readme.php即可执行代码

 

第六关

大小写绕过

 

第七关

末尾加空格绕过

 

第八关

末尾加点绕过

 

第九关

末尾加::$DATA绕过

 

第十关

同第四关

 

第十一关

内外双写绕过

 

成功劫持

 

 

第十四关

1.制作图片马

copy 1.jpg /b + 2.php /a jpgshell.jpg

2.上传图片马,拿到图片马地址

http://upload.local/upload/1420240715180951.jpg

 

3.访问文件包含链接,为file变量提供被包含的图片马的相对路径
  马相对路径:./upload/1420240715180951.jpg

完整路径:

http://upload.local/include.php?file=./upload/1420240715180951.jpg

成功劫持

 

 

第十八关

条件竞争绕过

1. 上传writeshell.php,把数据包发送到webfuzzer,准备发送10万遍

 

 

2. 访问/upload/readme.php,抓包发送到webfuzzer界面

修改访问的文件名为writeshell.php,准备发送1万遍

配置重复发包10000和并发线程10

配置丢包规则

 


3. 点击发送请求按钮发送两个标签的请求

标签1:上传writeshell.php

标签2:访问writeshell.php

成功劫持

 

posted @ 2025-05-10 14:37  Antoniiiia  阅读(28)  评论(0)    收藏  举报