文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

upload-labs大详解

2023-09-11 07:06

关注

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 en a m e = s t ri 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传入,来解析图片
这时源码在这里插入图片描述
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。

来源地址:https://blog.csdn.net/gankjk/article/details/121080053

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯