Upload labs

1 篇文章 0 订阅
1 篇文章 0 订阅

Pass -01(js检查)

题目基于前端js过滤,只能上传图片格式的文件,所以我们用一句话木马,改后缀上传后,用burp抓包,修改文件后缀为php,然后用蚁剑连接,
注意:
文件没有上传在具体题目中的文件夹中,所以我们在用蚁剑连接的时候,需要注意其地址

Pass -02(只验证Content-type)

根据源代码我们可以发现,这一关是常见验证中的文件类型验证,也就是验证MIME信息在这里插入图片描述
所以这里可以直接上传php文件,然后用burp抓包,修改content-type为图片类型:

image/jpeg、image/png、image/gif

然后蚁剑连接

Pass -03(黑名单绕过)

先上传一个php文件,发现,上传设置了黑名单,
在这里插入图片描述
查看源代码:
在这里插入图片描述

所以可以通过上传其他可解析文件,.phtml .phps .php5 .pht
前提是apache的httpd.conf中有配置代码

所以我们这里可以上传一个php3, phtml,phps .php5 .pht文件实现绕过,注意这题当我们上传的时候文件名会变,我们可以在burp的repeater数据包回显中看,然后蚁剑连接

注意:
上传后文件名会发生改变

Pass -04 (.htaccess绕过)

查看源代码会发现其过滤了很多文件格式,
这时,我们可以尝试上传一个.htaccess配置文件,它将上传图片当作php代码进行解析,首先创建一个.htaccess文件,里面写上代码

SetHandler application/x-httpd-php

然后我们可以直接上传一个改为图片格式的一句话木马,然后用蚁剑直接连接图片名,即可成功

Pass -05(大小写绕过)

在这里插入图片描述与四题不同的是没有将其后缀转换为小写
因此可以使用大小绕过,上传文件后缀为.Php的文件,然后蚁剑连接即可

Pass -06(空格绕过)

查看源码,对比前面的题,会发现这里没有删除文件首尾的空格,所以可以用空格进行绕过
我们上次文件尝试抓包在文件名后面加一个空格
注意:如果我们是在上传前修改文件名的时候加,上传的时候会被自动去掉,所以我们这里需要抓包,然后添加空格

Pass -07(点绕过)

观察对比前面关卡的源代码,可以发现其没有对点进行过滤,所以上传php文件抓包后在其后缀后面添加一个.,完成绕过

Pass -08(::$DATA绕过)

观察对比前面关卡的源代码,可以发现其没有对点进行过滤,所以上传php文件抓包后在其后缀后面添加一个::$DATA,完成绕过

Pass -09(拼接绕过)

查看源代码后,发现它先将后缀名后的.删除,然后删除空格。
我们可以把文件后缀改成.php. .,经过代码处理后变成.php.绕过
上传php文件,然后抓包,改后缀,蚁剑连接

Pass -10(双写绕过)

在这里插入图片描述
发现第八行的函数:

$file_name = str_ireplace($deny_ext,"", $file_name);

这个代码的意思就是把带有黑名单中的后缀替换为空。
这时我们考虑双写绕过。如上传的.pphphp就会变成.php绕过

总结:
1-10题都可以用.php. .来绕过

Pass -11(GET型0x00截断)

查看源代码,可以得知是一个白名单,只允许上传jpg,png,gif格式的文件。但是上传路径是可以控制的,可以使用%00进行截断。%00只能用于php版本低于5.3的。
在这里插入图片描述
利用正常上传后的文件会保存为:/upload/2.php%002.jpg,文件在读取名字的时候,因为被%00截断,所以只会读取到%00就会被截断停止,从而以php文件执行

Pass -12(POST型0x00截断)

Pass -13(图片马)

分析源代码得:
在这里插入图片描述
其利用fread函数来判断是否是图片
源码意思读取上传文件的前两个字节内容,unpack解码后,使用intval转换为10进制,默认为10进制,根据转换后的结果判断图片类型。

图片马生成:将图片和脚本放在同一目录下,执行cmd命令,在cmd中执行(这里的图片要是真是的图片)

copy /b 图片+php脚本 新文件名

然后上传图片,得到上传后的图片名和地址
注意:图片马是运用文件包含漏洞,通过文件包含漏洞来运行图片中得代码,所以需要一个解析文件,来运行图片马,如图:
在这里插入图片描述
解析代码是:

 <?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");
$file = $_GET['file'];
if(isset($file)){
    include $file;
}else{
    show_source(__file__);
}
?> 

其中file是图片地址,得url是:

http://5063f052-6da9-4a3d-aa1f-331c250cf86c.node4.buuoj.cn:81/include.php?file=upload/xxx.jpg

当图片马中的代码被解析后,再运用蚁剑连接,其连接url地址就是上面得那个地址

Pass -14(图片马)

利用getimagesize($filename)函数判断文件是否为图片

Pass -15(图片马)

使用exif_imagetype()函数判断是否为图片文件

Pass -16(图片马+二次渲染)

验证过程:判断后缀与MIME类型是否符合要求,符合后生成新图像(内容不正确会失败,返回false,相当于多了一次验证),生成新图像失败就unlink删除,成功就根据系统时间给文件命名,再通过imagejpeg类似函数使用原图像资源创建新图像(二次渲染)。相关函数说明:

basename(string $path [,string $suffix]) //返回路径中的文件名部分
imagecreatefromjpeg(string $filename)
imagecreatefrompng(string $filename) 
imagecreatefromgif(string $filename) //由文件或URL创建一个新图像,内容不对则失败返回false,成功后返回图像资源
srand([int $seed ]) //用seed播下随机数发生器种子
strval(mixed $var) //返回字符串类型的var
imagejpeg(resource $image [,string $filename [,int $quality]])//从image图像以filename为文件名创建一个JPEG图像
imagepng(resource $image [,string $filename]) //从 image 图像以filename为文件名创建一个PNG图像或文件
imagegif(resource $image [,string $filename]) //从 image 图像以filename为文件名创建一个GIF图像或文件

先合成一个gif一个图片马,然后上传,抓包得到上传图片的地址,下载上传的图片,对比上传前的图片,找到未改变的地方(很多地方都可以,但我以为这个地方很小,以为要慢慢找,hhh),插入一句话木马后,再次上传这张图片,得到其新的图片名字,然后就跟上一关差不多,解析图片里面的木马,蚁剑连接。
总结:千万不要想当然,用嘴做题,

Pass -17(白名单验证,条件竞争)

这一题在buu上面因为访问过于频繁,后面直接被禁了,自己本地有点不太敢搞,我怕我的系统似乎承受不了,,,
其原理就是利用它会将我们上传的文件短暂的储存在服务器中,然后

Pass -18(白名单验证,图片马)

个人认为这里和13关差不多,只不过这里需要知道上传后图片重命名后土木的名字,然后解析图片马,再用蚁剑连接

Pass -19(黑名单验证,点号绕过)

两种方式绕过:
1.这里会上传文件的名称,我们可以用burp抓包,然后再修改,改为php,然后用%00截断,再加上jpg后缀,完成绕过
2、文件夹的形式,这里会构成upload/xxx.jpg,但如果我们这里修改为upload/upload/xxx.php/.,我们在上传验证的时候,会以为其文件名为.
但实际上我们上传的文件名确为upload/xxx.php

Pass -20(白名单绕过,图片马)

数组,分析其代码,得到其上传的时候会将图片名分为数组,分别为:文件名.,后缀,在这里我们通过修改其分组,完成上传,将其分组数据修改为:文件名.php/., ,后缀,类似于文件夹上传,验证的时候会正常通过,最终为:文件名.php/.jpg,但上传后的文件名确为:文件名.php

总结:20到题边看wp,遍做,用了整整一天,怎么说呢!在做题的过程中会遇到很多网上的wp都没提过的问题,比如蚁剑测试连接的时候报错,但保存后却可以正常连接,你敢信?再比如burp抓不到本地的数据包,或者是在改gif图片,对比前后有哪些地方不一样的时候,你以为只是很少的一部分不一样,但其实呢?很容易找出不一样的地方来,emmm,其中还有在本地搭建的时候,要注意php版本的问题,可能现在的php版本不支持,或者其它的设备软件问题,总之在做题的过程中,要学会有自己的思考,要善于运用百度,牢记:纸上得来终觉浅,绝知此事要躬行,还是要多刷题,准备过几天不看wp,自己来个二刷。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值