upload-labs关卡记录12

直接上传一句话木马,发现提示:

很明显这是一个白名单,而且不是前端的js检查,而是服务端的检查,因此我们使用bp抓包,改一下文件类型试试:

找到包之后,我们对content-type进行一个更改,改为png类型。然后放包试试:

发现依旧提示只允许上传这些类型的文件,可见我们这种绕过失败了。

于是就进行%00截断绕过,原理就是:%00是一个url编码,url发送到服务器后就被服务器解码,这时还没有传到验证函数,也就是说验证函数里接收到的不是%00字符,而是%00解码后的内容,即解码成了0x00。在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。

我们使用bp抓包,然后对url这里进行更改:

注意我们要先改shell.php为shell.png这样才能正确执行我们save_path里面的更改

然后放包:

我们看到,已经成功进行了绕过:

复制图像链接打开后就发现,会出现这样一堆东西,这个时候我们需要将%00也就是php后面的东西全部去掉即可:

复制代码
$img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext

这时源代码中关于上传图片保存路径的代码:

实际就是:../upload. /随机数 时间戳 .文件后缀

我们使用了截断后: upload/a.php%EF%BF%BD/xxxxxx.png

这里的%EF%BF%BD就是我们之前更改url传入的%00的编码

补充一下:这里使用这个%00截断的时候,php:php < 5.3.29且在php的配置中要设置:magic_quotes_gpc=off

相关推荐
Bruce_Liuxiaowei4 分钟前
2026年5月第3周网络安全形势周报
人工智能·安全·web安全·网络安全·系统安全
谪星·阿凯5 分钟前
Windows提权实战博客
windows·web安全·网络安全
其实防守也摸鱼1 小时前
[特殊字符] Docker + LMArena2API 部署全流程:从环境准备到接口调用,一步到位
运维·网络·安全·web安全·docker·容器·大模型
号码认证服务1 小时前
如何让来电显示公司名代替陌生数字号码?企业号码认证开通指南
服务器·c语言·网络·经验分享·智能手机·云计算·php
一念春风1 小时前
QwenPaw(替代小龙虾)大模型
开发语言·php
wanhengidc2 小时前
服务器 科学技术
运维·服务器·安全·web安全
橘子海全栈攻城狮2 小时前
【最新源码】基于springboot的快递物流平台的设计与实现C102
java·开发语言·spring boot·后端·spring·web安全
深邃-2 小时前
【Web安全】-BurpSutie实战讲解(1):BP工具介绍,BP安装与启动,BP浏览器代理(端口被挤占的问题解决,bp不能使用的问题)
计算机网络·安全·web安全·网络安全·系统安全·burpsutie
是有头发的程序猿2 小时前
AI Agent自动化交易流程:1688定制交易API全链路开发实战教程(Python源码)
python·自动化·php
wanhengidc2 小时前
云手机 游戏多开不卡顿
运维·服务器·网络·安全·web安全·游戏·智能手机