upload-labs大详解

pass1 在这里插入图片描述

上传一个php一句话文件(记得改成php格式)
在这里插入图片描述 发现不允许上传php类型的,只能上传jpg,gif,pngl的在这里插入图片描述我们打算用burp抓包,先上传jpg的,然后用burp改成php的。在这里插入图片描述
在这里插入图片描述放包后,找到它的存储位置,用蚁剑连接.在这里插入图片描述
在这里插入图片描述成功连接。

pass2

我们尝试用第一个的方法,发现还是可以直接上传成功,但是这里还有第二种方法。
直接上传php格式的文件,用burp抓包。更改这里的值。
上传php文件时,Content-Type的值是application/octet-stream,
上传jpg文件时,Content-Type的值是image/png,直接更改就可以了在这里插入图片描述在这里插入图片描述用蚁剑连接在这里插入图片描述
成功

pass3

在我们用第一关的方法上传jpg文件改包后发现不行在这里插入图片描述我们猜测应该是吧这几个后缀名放到黑名单了。我们可以上传例如php3, phtml后缀的文件绕过,重复上述操作后,上传成功。在这里插入图片描述用蚁剑连接即可

Pass4

在我们尝试了上述方法之后,发现直接传不行,抓包改成php也不行,改成php3也不行,猜测是吧这些全部放入黑名单了。
这里我们先上传一个.htaccess的文件里面内容为:SetHandler application/x-httpd-php 如图所示在这里插入图片描述这个文件的目的就是把我们上传的文件全部转成.php的。直接上传就可以。在这里插入图片描述上传成功后上传我们的jpg格式的马就可以,然后用蚁剑直接连接这个马。

Pass5

我们用前面的方法尝试之后,发现都不可以,就连.htaccess都进了黑名单。只好查看源码了。在这里插入图片描述
在这里插入图片描述发现第五关比第四关少了一个转小写的代码.我们直接上传.Php的一句话马,发现上传成功.直接用蚁剑连接即可。

pass6

第五关源码
在这里插入图片描述
第六关源码
在这里插入图片描述对比两关的源码后发现,第六关少了首尾去空的代码,我们上次文件尝试抓包在文件名后面加一个空格在这里插入图片描述发现上传成功了,直接用蚁剑连接。

pass7

查看提示,发现所有可以被解析的后缀都被禁了在这里插入图片描述
我们查看一下源码进行对比
第六关源码在这里插入图片描述第七关源码在这里插入图片描述通过源码我们发现,第七关少了删除文件名末尾的‘.’
我们抓包后再文件名后加一个‘.’在这里插入图片描述上传成功,用蚁剑连接即可。

pass8

还是用上述方法对比不同,发现第八关对比于前面一关少了去除字符串在这里插入图片描述应该就是抓包在后缀加上:: D A T A 了 在 我 查 询 后 发 现 : p h p 在 w i n d o w 的 时 候 如 果 文 件 名 + " : : DATA了 在我查询后发现:php在window的时候如果文件名+":: DATAphpwindow+"::DATA“会把:: D A T A 之 后 的 数 据 当 成 文 件 流 处 理 , 不 会 检 测 后 缀 名 . 且 保 持 ” : : DATA之后的数据当成文件流处理,不会检测后缀名.且保持”:: DATA,.::DATA"之前的文件名
他的目的就是不检查后缀名
抓包,修改在这里插入图片描述上传成功,用蚁剑连接即可

pass9

我们查看提示后发现,这关把前面的全部拉入了黑名单在这里插入图片描述查看源码分析一下在这里插入图片描述
发现它先将后缀名后的‘.’删除,然后删除空格。
我们可以把文件后缀改成11.php. .,经过代码处理后变成11.php.绕过
上传php文件,然后抓包,改后缀在这里插入图片描述上传成功,用蚁剑连接即可。

pass10

我们查看一下源码在这里插入图片描述发现 f i l e n a m e = s t r i r e p l a c e ( file_name = str_ireplace( filename=strireplace(deny_ext,"", $file_name);
这个代码的意思就是把带有黑名单中的后缀替换为空。
这时我们考虑双写绕过。如上传的66.pphphp就会变成66.php绕过
直接上传成功了,在这里插入图片描述用蚁剑连接即可

pass11在这里插入图片描述

在我们尝试上传一个php文件后发现只允许上传jpg,gif这些类型的,所以这一关采用的是白名单过滤的方法,并且将上传文件的后缀名改为白名单里的后缀名在这里插入图片描述这一关上传目录是可控的,所以可以先上传一个后缀名为.php,然后修改上传目录为.php后缀,之后在.php后使用截断后面的拼接内容,用00截断,因为00在url的GET参数中,所以需用进行url编码,最后把文件名后缀改为.jpg在这里插入图片描述发现上传成功,用蚁剑连接即可

pass12

我们直接上传一个php文件,发现和上一关差不多,为白名单过滤。
直接抓包,发现post里面的参数跟上一关一样,加拦截发现不行,因为在post里面%00会被认为是字符串,所以换个方式加,先在php后面加个+,然后文件名改为jpg,再到后面的hex里面加个空格在这里插入图片描述
在这里插入图片描述在这里插入图片描述修改为00后点击应用就修改成功了,发送回浏览器就上传成功啦

pass13

在这里插入图片描述查看提示我们知道,只检查图标内容的前两个字节,所以我们在一句话木马前加上GIF 89A就可以转换成为gif文件了。在这里插入图片描述
直接上传这个文件,发现上传成功,但是是gif格式的在这里插入图片描述这时需要我们写一个include.php传入,来解析图片
这时源码在这里插入图片描述<?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header(“Content-Type:text/html;charset=utf-8”);
$file = G E T [ ′ f i l e ′ ] ; i f ( i s s e t ( _GET['file']; if(isset( GET[file];if(isset(file)){
include $file;
}else{
show_source(file);
}
?>
将它放入upload-labs里面(跟之前建的upload文件夹在同一级别下,后面就知道为啥了)
然后我们来解析gif文件
http://127.0.0.1/upload-labs/upload/include.php?file=upload/文件名
解析时看路径就知道include.php跟upload同级了
解析成功后就可以用蚁剑直接连接了。

pass14

我们查看一下提示在这里插入图片描述
getimagesize()可以将jpg,gif等图片类型的大小并返回尺寸,也是用这个函数来确定图片类型。
其余同pass13.

pass15

我们查看源码后发现有这个函数在这里插入图片描述

exif_imagetype()函数可以获取图片类型
同pass13。

pass16

这一关是二次渲染,我们刚开始上传的图片会被渲染,导致原有的属性被改变,我们首先上传一张gif的图片在这里插入图片描述然后点击右键将它另存到其他地方(这时的图片已经被渲染了)可以用它去制作图片马来进行上传。在这里插入图片描述剩余的同less13。

  • 12
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沐桀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值