WEB安全--文件上传漏洞--其他绕过方式

一、条件竞争

1.1、原理

当我们上传webshell1到服务器中时,如果后端验证的方式是:

先接收文件,再在当前文件夹中检查文件的合法性

那么就会产生问题,如果我们在后端验证文件后缀合法性之前在网页访问到我们的webshell1,使其生成新的webshell2到上级目录中的文件夹中或上级目录中;

那即使这时我们最开始的webshell1被删除,也没关系了,直接访问webshell2即可。

1.2、方式&示例

php 复制代码
if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_name = $_FILES['upload_file']['name'];
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $file_ext = substr($file_name,strrpos($file_name,".")+1);
    $upload_file = UPLOAD_PATH . '/' . $file_name;

    if(move_uploaded_file($temp_file, $upload_file)){    //先接收
        if(in_array($file_ext,$ext_arr)){                //再验证
             $img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;
             rename($upload_file, $img_path);
             $is_upload = true;
        }else{
            $msg = "只允许上传.jpg|.png|.gif类型文件!";
            unlink($upload_file);                        //最后删除     
        }
    }else{
        $msg = '上传出错!';
    }
}

webshell1:

php 复制代码
<?php
file_put_contents('../webshell2.php','<?php phpinfo(); ?>');

bp抓包:

暴力破解+请求:

设置两个线程,一个是上传webshell1,另一个请求127.0.0.1/upload-labs-master/webshell2,两个线程同时爆破。

二、多文件上传

2.1、原理

可以让我们上传多个文件,但只检测第一个上传的文件的合法性。

2.2、方式

只需要第一份上传合法文件,第二份上传马即可。

将第二个文件表单的action设置为绝对路径http://xxx.com/<file>以确定文件上传的路径,方便利用。

三、二次渲染绕过

3.1、原理

网站允许上传php等文件,但是会检查文件内容,对检测出来的恶意内容进行渲染,从而使得文件无害化。

但是当某个木马图片文件被上传时经过渲染后,将渲染后的文件再上传时就不会查出恶意文件。

3.2、方式

先将一个木马文件上传后渲染,再将经过渲染后的文件下载下来,把木马内容添加到经过渲染的图片文件,此时再上传去渲染就不会查出木马内容。

使用16进制编辑器找到两次文件的异同,在相同的地方(即被判定无害)加入恶意代码(一句话木马等),再次上传就可以成功了。

相关推荐
用户962377954481 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954482 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行6 天前
网络安全总结
安全·web安全
red1giant_star6 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透7 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全