攻防世界 php2 wp

根据搜索结果,以下是“攻防世界”中“PHP2”题目的解题思路和步骤:

题目分析

题目要求通过验证一个网站,提示信息为“Can you authenticate to this website?”。
在这里插入图片描述
在这里插入图片描述

解题步骤

1. 查找目录文件

题目名为php2 ,应该与php有关,又提示信息为“Can you authenticate to this website?”,故考虑index.php
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但仍然没有东西,那么考虑phps该文件后缀名是否能访问呢,以查看源码;

2. 查看源码

访问 index.phps 文件,还真能用,查看源码泄露的内容。源码如下:

<?php
if("admin"===$_GET[id]) {
  echo("<p>not allowed!</p>");
  exit();
}

$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "admin") {
  echo "<p>Access granted!</p>";
  echo "<p>Key: xxxxxxx </p>";
}
?>

在这里插入图片描述

3. 分析代码
  • 第一步:"admin"===$_GET[id] 严格比较,如果直接传入 admin,会返回“not allowed!”。
  • 第二步:$_GET[id] = urldecode($_GET[id]); 对传入的参数进行解码,然后再次比较是否等于 admin

由于浏览器会自动对 URL 参数进行一次解码,因此需要对 admin 进行 两次 URL 编码

3. 构造 Payload

admin 进行两次 URL 编码:

  • 第一次编码:admin%61%64%6d%69%6e
  • 第二次编码:%61%64%6d%69%6e%2561%2564%256d%2569%256e

最终的 Payload 为:

?id=%2561%2564%256d%2569%256e
5. 获取 Flag

将构造好的 Payload 添加到 URL 中,访问:

http://223.112.5.141:53468/?id=%2561%2564%256d%2569%256e

得到Flag:cyberpeace{796a3754332cbfafb5a7aab07c410d84}
在这里插入图片描述

注意事项

  • 确保使用正确的编码工具(如hackbar)进行 URL 编码。
  • 如果 .phps 文件无法显示源码,
知识点:
  • .php:这是标准的 PHP 脚本文件扩展名。当服务器(如 Apache 或 Nginx)接收到对 .php 文件的请求时,会通过 PHP 解释器执行文件中的 PHP 代码,并将输出结果发送给客户端(通常是浏览器)。
  • .phps:这是 PHP 源代码文件扩展名。它用于显示 PHP 文件的源代码,而不是执行代码。服务器会将 .phps 文件的内容直接以纯文本形式发送给客户端,而不是解析执行
攻防世界(CTF)中,Web PHP2通常指的是一道涉及PHP安全漏洞的题目。这类题目通常会涉及到常见的PHP漏洞,如文件包含漏洞、SQL注入、命令注入等。以下是一个关于Web PHP2的简要介绍: 1. **题目背景**: - 通常会给出一个简单的Web应用,要求参赛者通过分析代码或通过黑盒测试找到漏洞并利用。 2. **常见漏洞**: - **文件包含漏洞**:通过包含本地或远程文件来执行恶意代码。例如,使用`include`或`require`函数时,未对输入进行严格过滤。 - **SQL注入**:通过构造特殊的SQL语句来绕过认证或获取敏感信息。 - **命令注入**:通过在输入中插入系统命令来执行恶意操作。 3. **解题思路**: - **代码审计**:分析给定的PHP代码,寻找未过滤的输入点。 - **黑盒测试**:通过工具(如Burp Suite)发送各种请求,观察响应,寻找漏洞。 - **利用漏洞**:找到漏洞后,构造特定的请求来执行恶意代码或获取敏感信息。 4. **示例**: ```php <?php $file = $_GET['file']; include($file); ?> ``` 在这个例子中,`$file`参数未经过滤,直接被`include`函数包含。如果攻击者传入一个恶意文件路径,可能会执行任意代码。 5. **防御措施**: - **输入验证**:对所有用户输入进行严格验证和过滤。 - **使用白名单**:只允许特定的输入值。 - **最小权限原则**:确保Web应用运行在最小权限的环境下,减少潜在风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值