靶场练习ing

Pass-01 前端绕过

关卡分析

尝试直接上传.php文件时会发现网页提示智能上传规定内的文件类型,且上传时尝试使用burp suite进行抓包会发现没有抓到数据包

即在上传时,数据包还没有经过客户端发给后端就被拦截掉了,说明上传验证是在前端进行的,且查看页面源代码也可以看到:

绕过:Burpsuite抓包修改或页面禁用js

Burpsuite抓包修改

将准备的.php文件后缀改成不会被拦截的.jpg形式,通过Burpsuite进行抓包

在这里将文件后缀的.jpg改成.php然后进行发送

关闭抓包后回到网页可以发现上传成功:

选择在另外新页面打开图片可以发现php文件已经成功上传:

页面禁用js

在设置里面选择禁用js然后直接上传php文件

php文件能够直接上传并打开

Pass-02 服务器端检测--IMME类型

关卡分析

和第一关一样,首先打开抓包直接上传php文件,这时会发现能够抓到数据包,说明不再是前端验证

这里尝试上传一张图片,能够正常上传:

查看抓取的数据包:

两个包中的content-type有区别:

文件源码:

复制代码
$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name']            
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上传出错!';
            }
        } else {
            $msg = '文件类型不正确,请重新上传!';
        }
    } else {
        $msg = UPLOAD_PATH.'文件夹不存在,请手工创建!';
    }
}

可知,这一关 主要是通过content-type的值进行过滤,当值为:image/jpeg、image/png、image/gif 这种时能够上传成功

Content-type

Content-Type在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息

绕过:抓包修改文件的content-type

上传php文件抓包将content-type改为图片的类型然后发送

这里可以看到文件已经上传成功

相关推荐
草履虫君30 分钟前
VMware 虚拟机网络性能优化指南:从 11 秒到 4 秒的完整调优实践
服务器·网络·经验分享·性能优化
@insist12341 分钟前
信息安全-防火墙技术演进全景:从代理NAT 到下一代及专项防火墙
网络·安全·web安全·软考·信息安全工程师·软件水平考试
优化Henry1 小时前
TDD-LTE站点Rilink=3链路故障处理案例---BBU侧C口“有发光、无收光”的排查与恢复
运维·网络·信息与通信·tdd
浪客灿心1 小时前
Linux网络传输层协议
linux·运维·网络
段一凡-华北理工大学2 小时前
【高炉炼铁领域炉温监测、预警、调控智能体设计与应用】~系列文章06:智能决策:从经验驱动到数据驱动
网络·人工智能·数据挖掘·高炉炼铁·工业智能体·高炉炉温
时空系4 小时前
第7篇:功能——打造你的工具箱 Rust中文编程
开发语言·网络·rust
BizViewStudio4 小时前
甄选方法:2026 企业新媒体代运营的短视频精细化运营与流量转化技巧
大数据·网络·人工智能·媒体
凯瑟琳.奥古斯特5 小时前
NAT原理及作用详解
网络·网络协议
网络工程小王5 小时前
【企业中小型网络架构设计】
网络
七夜zippoe5 小时前
OpenClaw Skills 高级开发指南
服务器·网络·人工智能·skills·openclaw