首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
upload-labs-master
Rex_law
创建于2023-06-25
订阅专栏
上传文件靶场
暂无订阅
共20篇文章
创建于2023-06-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
upload-labs-master-Pass-20
准备一句话木马 取名20.php 直接上传抓包 抓包后有些地方需要修改 修改前 修改后 放包,查看服务器目录,是否有20.php 上传成功。 复制图片地址,用蚁剑进行连接,这里有个细节,可能有人会问蚁
upload-labs-master-Pass-19
看到19关的页面,明显比前面的多了点东西,多了一个保存名称,没有对上传的文件做判断,只对用户输入的文件名做判断。查看源码,有move_uploaded_file()这样一个函数,它有一个特性,会忽略到
upload-labs-master-Pass-18(条件竞争二)
这里有一个细节,由于可能是这个靶场的作者的某种原因可能有误,上传的图片路径不是放在upload文件夹下,所以我们要进去修改一下第19关的代码文件 如果用17关的方法已经无法上传Php文件 从源码来看的
upload-labs-master-Pass-17(条件竞争一)
原理 从源码来看,服务器先是将上传的文件保存下来,然后将文件的后缀名同白名单对比,如果是jpg、png、gif中的一种,就将文件进行重命名。如果不符合的话,unlink()函数就会删除该文件。 这么看
upload-labs-master-Pass-16
这一关对上传图片进行了判断了后缀名、content-type,以及利用imagecreatefromgif判断是否为gif图片,最后再做了一次二次渲染,但是后端二次渲染需要找到渲染后的图片里面没有发生
upload-labs-master-Pass-15
要染过这关只能关闭Php服务器里面的 exif_imagetype 如果直接上传webshell.png 则会卡住 没有反馈内容 修改过后重启服务 再上传webshell.png即可
upload-labs-master-Pass-14
查看源码,关键函数是这个getimagesize 我们来看这个 getimagesize函数,这个函数的意思是:会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求的 所以这关
upload-labs-master-Pass-13 文件包含include.php?file=
这一关会读取判断上传文件的前两个字节,判断上传文件类型,并且后端会根据判断得到的文件类型重命名上传文件 使用 图片马 + 文件包含 绕过 这里涉及一个16进制的文件查看,需要 安装vscode插件 H
upload-labs-master-Pass-12——POST请求-修改路径
本关提示: 而且是一个POST的请求 ,无法使用%00进行绕过, 再POST请求中不会对%00进行解码 只有get请求%00才会进行解码 %00 是 url编码 需要手动添加路径 文件名后面加一个点
upload-labs-master-Pass-11
这关使用 %00 %00截断来绕过它是地址上的截断,但注意是get请求和版本 PHP版本得小于5.3版本才能用这个%00截断 例如: hanniu8.com/up/r.php%00cesho.gif
upload-labs-master-Pass-10 双写绕过
核心过滤代码换了,同样是黑名单 这里讲解一下核心代码的意思,把带有黑名单中的后缀替换为空 $deny_ext 替换为空 意思他以后保存到服务器的文件就只有文件名 没有后缀名 比如上传一个 10.php
upload-labs-master-Pass-09
这关把前面全部的黑名单都过滤掉了 我们读一下代码发现是先去除末尾的".",再去除首尾的空格,然后拼接 我们可以把文件后缀改成11.php. .,经过代码处理后变成11.php.绕过 我们先上传09.j
upload-labs-master-Pass-08
老办法对比前面的关卡发现少了一句,应该就是抓包在后缀加上::$DATA了 原理查了一下就是必须是windows, 必须是php, 必须是那个源文件 php在window的时候如果文件名+"::$DAT
upload-labs-master-Pass-07
首尾去空的代码已经加上 但是少了删除文件名后的点 “.” 这样我们就可以使用windwos特性,会自动去掉文件后缀名最后的“.”进行上传。 抓包在文件名后面加个点 http://192.168.31.
upload-labs-master-Pass-06
看到代码里面已经强制把文件名改为小写 但是第六关没有第五关的一行代码 这样就会造成我们直接上传一个文件+空格也能上传成功
upload-labs-master-Pass-05
这一关$deny_ext 黑名单更多了 连.htaccess都加上了 方法一 这里尝试使用大小写绕过 有这个报错说明解析成功 http://192.168.31.33/upload-labs-mast
upload-labs-master-Pass-04
依然先看源码 可以看到这里的黑名单更加的严谨,已经排除了例如html php7 phtml 等漏洞格式 渗透方法是 首先web服务器是apache 我们可以利用apache的一个bug 把下面代码写成
upload-labs-master-Pass-03
第三关 依然还是先看源码 代码看到有$deny_ext 函数 以asp aspx php jsp结尾的文件都不允许上传 那我们依然有之前两关的方法去上传试试 执行后发现不行了 不能使用burp 抓包修
upload-labs-master-Pass-02
先看源代码 感觉依然是一个只是对文件类型的校验 那能不能使用之前方法一的操作也把文件类型改成我们要的php类型的文件的呢? 写一个文件 取名为5.png 打开图片发现完全没有问题 成功闯关
upload-labs-master-Pass-01
从代码可以看到是一个直接检查文件类型即可上传 而且并没有请求包的发送 说明只是一个前端的检测 渗透步骤一 通过bp抓包修改数据 上传我们需要的文件 我们可以直接修改前端代码 上传我们的指定文件并且进行