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

相关推荐
赛博守夜人8 小时前
AI安全攻防与治理之十六:对抗样本、恶意文件与多模态攻击,AI 内容安全检测的真实盲区
人工智能·安全
ZEB110610 小时前
首届安全应急救援机器人大赛在广州举办 深圳璇玑动力斩获多项冠军
安全·机器人·消防
未来之窗软件服务12 小时前
WAF负载均衡+蜜罐混淆安全体系-东方仙盟
运维·安全·负载均衡·仙盟创梦ide·东方仙盟·阿雪技术观·网关开发
高德开放平台13 小时前
构建“车-云-端”安全闭环:新大洲本田通过高德开放平台接入“鹰眼守护预警系统”
安全
dora14 小时前
接口被疯狂调用怎么办?聊聊接口限流
后端·安全
国科安芯14 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
kingx315 小时前
Bugku WEB 题解总集:文件包含 / SQLi / 反序列化 / SSTI / 反爬 / 组件漏洞
web安全·网络安全·ctf·bugku
衡石科技15 小时前
让多轮问数保持口径一致:Data Agent 的上下文、偏好与学习开关
人工智能·学习·安全
用户7908600572617 小时前
扫出 176 个「危险代码」,结果一个都不用删:我的静态安检门禁
安全
武天旭17 小时前
AI安全--AI大模型的关键技术组成
人工智能·深度学习·安全·机器学习