Skip to content

文件上传漏洞

基本概念

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传” 本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。

如果服务器配置不当或者没有进行足够的过滤,Web 用户就可以上传任意文件,包括恶意脚本文件,exe 程序等等,这就造成了文件上传漏洞。

漏洞的成因

1、服务器配置不当

2、Web 应用开放了文件上传功能,没有对上传的文件做足够的限制和过滤

3、在程序开发部署时,没有考虑到系统的特性或组件的漏洞,从而导致限制被绕过。漏洞危害上传漏洞最直接的威胁就是上传任意文件,包括恶意脚本、程序等。直接上传后门文件,导致网站沦陷。通过恶意文件,利用其他漏洞拿到管理员权限(提权),导致服务器沦陷。

通过文件上传漏洞获得的网站后门,叫 WebShell

WebShell 是一个网站的后门,也是一个命令解释器。通过Web 方式(HTTP 协议)通信(传递命令消息),并且继承了Web 用户的权限。

WebShell 从本质上讲,就是服务器端可运行的脚本文件,后缀名通常为

.php   
.asp
.aspx
.jsp
...

WebShell 接收来自于Web 用户的命令,然后在服务器端执行

Webshell木马

小马

一句话木马,需要蚁剑配合

常用小马:

<?=@eval($_REQUEST['ccc'])?>
<?php @eval($_REQUEST['ccc'])?>

三大功能:文件管理、虚拟终端、数据库管理

大马

代码量比较大,与小马对应

马场

https://github.com/backlion/webshell

常用webshell管理器

中国蚁剑

https://www.yuque.com/antswordproject/antsword

冰蝎

https://github.com/rebeyond/Behinder

哥斯拉

https://github.com/BeichenDream/Godzilla

常见解析漏洞

iis 6.0 xx.asp/xx.jpg xx.jsp;.jpg iis 7.5 php.ipg/.php 7.5NET源代码泄露和身份验证漏洞,经典的ASP验证绕过 apache1.x 2.x从右到左解析后缀名 xx.php.xxx nginx<0.8.37 0.x 1.x xx.jpg/.php xx.jpg/%00.php

实战练习

推荐upload-labs靶场 基本覆盖了 常见的文件上传漏洞绕过姿势

项目地址

https://github.com/c0ny1/upload-labs

wp推荐

https://wiki.ckcsec.cn/web/range/upload-labs通关笔记.html

除此之外还推荐另外一款国光师傅开发的 也还不错

https://github.com/sqlsec/upload-labs-docker

在实战中探索文件上传漏洞的乐趣吧!