----------------------------------------
靶场环境:
下载链接:
https://codeload.github.com/c0ny1/upload-labs/zip/refs/heads/master
使用小皮集成环境来完成这个靶场 将文件放到WWW目录下就可以进行访问
----------------------------------------
靶场简介:
Upload-labs是一个使用PHP语言编写,专门用于渗透测试和CTF中遇到的各种文件上传漏洞的靶场。目前一共20关,每个关都包含着不同上传方式。
文件上传漏洞:用户可以越过其本身权限,向服务器上传可执行的动态脚本文件,例如木马、病毒、恶意脚本或者WebShell等。文件上传漏洞本身就是一个危害巨大的漏洞,WebShell更是将这种漏洞的利用无限扩大。
----------------------------------------
目录
靶场环境:
靶场简介:
less1:
less2:
less3:
less4:
less5:
less6:
less7:
less8:
less9:
less10:
less11:
less12:
less13:
less14:
less15:
less16:
less17:
less18:
less19:
----------------------------------------
less1:
上传我们的php一句话木马文件
发现不允许我们上传此类型的文件,我们尝试burp抓包试试
发现抓不到数据包,查看下源代码,发现我们可以修改我们的php文件为jpg格式再试试
发现可以提交,我们在抓一下jpg的包
发现可以抓到,然后在将后缀改回php格式然后放包试试看
上传成功,右击图片新窗口打开得出php一句话木马文件内容
----------------------------------------
less2:
上传我们的php一句话木马文件:
提示我们文件类型不正确,所以我们继续改为jpg格式开启抓包
修改格式为image/jpeg 后缀为php
上传成功,右击图片打开新窗口打开得出php一句话木马文件内容
----------------------------------------
less3:
上传我们的php一句话木马文件
发现不允许我们上传以下格式文件所以我把php文件改为php3/php5 进行绕过
上传成功,右击图片新建窗口打开得到我们的php一句话木马文件内容
----------------------------------------
less4:
查看源码我们发现可以看到,这关的黑名单过滤的是相当的多,基本将我们的后缀都过滤掉了这时候该怎么进行绕过呢
这时候补充一个知识点: .htaccess文件解析漏洞,.htaccess参数常见配法有以下几种:
AddHandler php5-script .jpgAddType application/x-httpd-php .jpgSethandler application/x-httpd-php
Sethandler
将该目录及子目录的所有文件均映射为php文件类型。Addhandler
使用 php5-script 处理器来解析所匹配到的文件。AddType
将特定扩展名文件映射为php文件类型。
简单来说就是,可以将我们所的文件都解析成php或者是特定的文件解析为php
那么我们创建一个.htaccess文件写上内容进行上传
AddType application/x-httpd-php .jpg
上传成功
那么我们再将我们的一句话木马上传,当然在这我们将文件后缀改为jpg格式,反正我们上传后的文件都会被解析为php,而且jpg也不会被过滤掉
右击图片新建窗口查看得到我们的php一句话木马文件内容
----------------------------------------
less5:
查看源码发现少了大小写.
那我们就将我们的文件后缀改为Php试试看
上传成功,右键图片查看得到php一句话木马文件内容
----------------------------------------
less6:
查看源代码发现少了首尾去空
因为windows的系统是自动去除空格的,所以我们开启抓包
在php后面加上空格然后放包然后上传成功
右击图片新建窗口查看得到php一句话木马文件内容
----------------------------------------
less7:
查看源代码发现少了删除文件名末尾的点
所以我们上传文件然后开启抓包
在php文件末尾加上点
放包发现上传成功
右击图片新建窗口发现得到php一句话木马文件内容
----------------------------------------
less8:
查看源代码发现少了去除字符串::$DATA
上传我们的文件,开启抓包
在php文件末尾加上::$DATA
然后放包,发现上传成功
右击图片新窗口查看得到php一句话木马文件内容
----------------------------------------
less9:
查看源码发现有删除文件名末尾的点和首尾去空
所以我们开启抓包
在文件末尾加上点 空格 点 因为末尾的点会被去除,php后面的点会被windows默认为空
放包,发现上传成功
右击图片新建窗口打开得到php一句话木马文件内容
----------------------------------------
less10:
查看源代码发现定义了好多黑名单
所以我们先正常上传一个php文件
发现上传成功右击图片看看
发现php文件后缀没了 所以我们开启抓包
在php里面在嵌套一个php进行绕过
放包查看
上传成功,右击图片新建窗口查看得到php一句话木马文件内容
----------------------------------------
less11:
这一关需要用%00截断,发现环境有问题,不显示结果,所以我们借助一下ctfhub里面的文件上传漏洞;来解这道题
打开ctfhub打开环境
ctfhub.com/
访问环境页面
我们开启抓包试试
发现指定了文件保存地址,那我们给他一个1.php,在使用%00将他截断
放包后上传成功
访问upload/2.php得到一句话木马文件内容
在使用系统命令查找文件发现flag文件
cat查看右键查看源代码发现flag
----------------------------------------
less12:
查看源代码,和第十一关对比,发现接受值变成了post,那么思路就和第十一关一样,不过post方式不会自行解码,所以要对%00进行urldecode编码
编码后放包上传成功
右击图片新建窗口查看得到php一句话木马文件内容
----------------------------------------
less13:
题目说让我们上传图片马我们访问一下(图片马自行获得)
右键新建窗口查看
只能查看图片,所以我们要配合文件包含漏洞去解
变量file就是我们要给的值所以我们访问图片地址
以post传输数据参数为pass执行看看
----------------------------------------
less14:
14关15关都和13关一样 上传我们的图片马
右键新建窗口打开
访问我们的文件包含 包含上传的图片信息
以post传输数据参数为pass执行看看
----------------------------------------
less15:
按照上面步骤即可
----------------------------------------
less16:
上传发现不行了,上传不了了
因为我们的图片有一句话木马,这关他会把我们的文件顺序打乱在重新组合成一张图片然后在返回回来 这里我们使用二次渲染
发现上传成功右键查看地址访问文件包含
执行成功 我们访问文件试试
访问成功,我们连接一句话木马使用中国菜刀app
添加查看信息
----------------------------------------
less17:
我们查看源码看到一个时间
发现是判断我们的文件符不符合要求而需要时间
所以我们去找一个php代码进行条件竞争
上传我们创建的2.php
发现不行尝试抓包
发送到intruder
无限上传:这时候我们去upload里面去访问它
来到浏览器一直刷新访问直到创建成功123.php
创建好123.php之后访问即可
----------------------------------------
less18:
题目为上传一个图片马 尝试上传图片马来看看
可以上传成功 来看看文件包含
可以访问试试访问文件信息
----------------------------------------
less19:
尝试上传文件看看
发现都不行
试试在文件后面加入一个点呢
上传成功右键新建窗口查看图片得到php一句话木马文件内容
----------------------------------------
文件上传本身是一个正常的业务需求,对于网站来说,很多时候也确实需要用户将文件上传到服务器,比如:上传图片,资料。
文件上传漏洞不仅涉及上传漏洞这个行为,还涉及文件上传后的进一步解析和处理,以及文件的下载,如果服务器的处理逻辑设计的不够全面,就会导致严重的后果
最简单的文件上传漏洞是指用户上传了一个可执行的脚本文件,并且根据此脚本获得了执行服务器命令的能力。