buuctf [actf2020 新生赛]ping
时间: 2025-07-07 14:36:57 浏览: 38
<think>好的,我现在需要解决用户关于BUUCTF中ACTF2020新生赛与'ping'相关的题目问题。用户提到了题目名称“Exec”或“Exec1”,并希望得到解题思路和报告。首先,我应该回顾提供的引用内容,看看有哪些相关信息可以帮助构建答案。
根据引用[1]、[2]、[3]、[4]、[5],这些引用主要围绕ACTF2020新生赛的Exec题目,涉及命令注入和利用exec函数进行RCE(远程代码执行)。特别是引用[4]提到题目使用PHP的exec函数调用系统ping命令,可能存在命令注入漏洞。用户需要的是与“ping”相关的题目解题思路,所以需要重点分析这类题目的常见解法和利用点。
首先,题目可能是一个Web题,用户输入被传递给exec函数执行ping命令,但未正确过滤输入,导致攻击者可以注入额外命令。常见的命令拼接符如;、&&、||等可能被用来分隔命令。例如,用户输入127.0.0.1;ls,可能会执行ping后接着执行ls命令。
接下来,解题步骤可能包括:测试输入是否存在命令注入,确定可用的拼接符,遍历目录寻找flag文件,读取flag内容。例如,引用[3]提到需要返回上级目录查找flag,可能flag不在当前目录,而是在根目录下。
需要确保答案结构清晰,分步骤说明,并正确应用引用标注。同时,根据用户提供的引用,可能需要指出如何绕过可能的过滤,比如使用特定符号拼接命令,以及如何利用exec函数的漏洞。
另外,要注意题目可能存在的陷阱,比如需要编码某些字符,或者使用特定绕过技巧。比如,如果空格被过滤,可以用${IFS}代替,或者用分号分隔命令。
总结步骤可能包括:检测注入点、确定有效拼接符、目录遍历、定位flag文件、读取文件内容。同时,引用中的例子如使用||或;进行命令拼接,以及使用cat命令读取flag,都是关键点。
最后,确保回答符合系统级指令,使用正确的中文,生成相关问题,并正确标注引用来源。</think>### BUUCTF ACTF2020 新生赛 "Exec" 题目解题报告
(与`ping`命令相关的命令注入题)
---
#### **一、题目简介**
题目基于PHP实现了一个模拟`ping`命令的功能,通过`exec`函数调用系统命令。用户输入的IP地址会直接拼接到`ping`命令中执行,但未对输入进行有效过滤,导致存在**命令注入漏洞**。攻击者可通过拼接符注入额外命令,最终目标是获取服务器上的flag文件[^4][^2]。
---
#### **二、解题思路**
1. **漏洞定位**
- 题目核心代码逻辑为:`exec("ping -c 4 {用户输入}")`,输入未过滤特殊符号如`;`、`||`、`&&`等[^4]。
- 尝试通过输入`127.0.0.1; ls`验证命令注入是否成功,若返回目录文件列表则说明漏洞存在。
2. **关键利用点**
- **命令拼接符**:`;`(顺序执行)、`||`(前命令失败则执行后命令)、`&`(后台执行)等[^2]。
- **目录遍历**:若当前目录无flag文件,需返回上级目录(如`cd .. && ls`)或直接搜索根目录[^3]。
- **读取文件**:通过`cat`或`tac`命令直接读取flag文件内容。
---
#### **三、解题步骤**
1. **验证命令注入**
- 输入:`127.0.0.1; ls`

若看到`flag.php`或`flag.txt`等文件,说明注入成功。
2. **遍历目录寻找flag**
- 若当前目录无flag,尝试输入:
```
127.0.0.1; cd .. && ls
```
逐步返回上级目录,直到发现包含flag的路径(如`/`根目录)[^3]。
3. **读取flag文件**
- 直接读取文件内容:
```
127.0.0.1; cat /flag
```
或使用`tac`绕过过滤:
```
127.0.0.1; tac /fl*
```
---
#### **四、总结**
- **漏洞根源**:未对用户输入进行过滤,导致命令注入。
- **防御建议**:使用`escapeshellarg()`函数对输入转义,或限制输入为合法IP格式。
- **常见变种**:题目可能隐藏flag文件名或限制部分符号(如空格),此时需使用`${IFS}`代替空格或通配符`*`[^5]。
---
阅读全文
相关推荐




















