[GXYCTF2019]绕过空格过滤:命令注入实战解析

张开发
2026/4/11 9:13:12 15 分钟阅读

分享文章

[GXYCTF2019]绕过空格过滤:命令注入实战解析
1. 命令注入漏洞初探最近在复盘GXYCTF2019的题目时遇到一道非常典型的命令注入题。题目表面上是个简单的ping功能实际上暗藏玄机。这种题型在CTF比赛中特别常见很多刚入门的安全爱好者容易在这里栽跟头。命令注入漏洞的本质就是攻击者能够通过输入参数向系统注入并执行非法命令。比如这道题中网站提供了ping功能正常情况下用户只能输入IP地址进行ping测试。但如果开发者没有做好输入过滤攻击者就可以在IP参数后面拼接其他系统命令。我刚开始接触这类题目时经常犯一个错误——只关注显眼的过滤规则而忽略了更隐蔽的防护措施。比如这道题就设置了双重防御首先是空格过滤然后是flag关键词过滤。很多新手在第一关就被卡住了不知道如何绕过空格限制执行命令。2. 空格过滤的常见绕过手法2.1 为什么空格会被过滤在命令注入场景中空格是个非常关键的字符。它用于分隔命令、参数和选项。比如cat flag.php这个命令空格将cat和flag.php分开。如果过滤了空格很多命令就无法正常执行。但安全防护往往是一把双刃剑。开发者过滤空格的同时也给攻击者提供了线索——这里可能存在命令注入漏洞。我在实际测试中发现遇到空格过滤的网站90%的概率都存在命令注入风险。2.2 主流空格替代方案经过多次实战测试我整理了几种最有效的空格绕过方法IFS变量法这是Linux系统中的内部字段分隔符(Internal Field Separator)默认值就包含空格。可以用$IFS、${IFS}或$IFS$9等形式替代空格。注意$9表示第九个参数通常为空用来确保IFS被正确解析。重定向符号比如使用或来替代空格。这种方法在某些特殊环境下特别有效。花括号扩展通过{cat,flag.php}这样的形式花括号内的逗号会被视为分隔符。特殊编码尝试%20(URL编码的空格)或%09(制表符)。不过根据我的经验这种方法成功率较低。在GXYCTF这道题中使用IFS变量是最可靠的解决方案。我测试过/?ip127.0.0.1;cat$IFS$9flag.php这个payload确实可以绕过空格过滤。3. 多重过滤的突破技巧3.1 发现关键词过滤当我成功绕过空格过滤后发现直接读取flag.php会失败。这说明还存在第二层防护——关键词过滤。这种情况在实际渗透测试中也很常见开发者会过滤flag、pass等敏感词汇。遇到这种情况我通常会尝试以下几种方法字符串拼接将敏感词拆分成多个部分。比如把flag拆成flag然后通过变量拼接afl;bag;cat$IFS$1$a$b.php编码转换使用base64编码命令。例如echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh这里Y2F0IGZsYWcucGhw就是cat flag.php的base64编码。通配符替代尝试用?或等通配符匹配文件名。比如cat flphp。3.2 变量替换的高级用法在GXYCTF这道题中我最终采用了变量替换的方法。这里有个小技巧——交换变量位置。比如把flag拆成bag和afl然后以$a$b的形式拼接。这样做可以绕过简单的字符串匹配检测。实际测试时payload是这样的/?ip127.0.0.1;bag;afl;cat$IFS$1$a$b.php这种方法的优势在于完全避开了flag这个关键词变量拼接在服务器端完成不会被过滤规则检测到执行过程稳定可靠不受编码问题影响4. 实战中的经验总结4.1 信息收集的重要性在解这道题的过程中我发现很多参赛者直接就开始尝试各种payload却忽略了重要的一步——信息收集。比如先通过/?ip127.0.0.1;ls查看目录结构然后查看index.php源码了解过滤规则最后才针对性地构造payload这种循序渐进的方法看似耗时实则事半功倍。我在实际渗透测试中养成了习惯永远先摸清环境再行动。这不仅能提高成功率还能避免触发不必要的安全警报。4.2 多种解法的思考好的CTF题目往往有多种解法。除了上面提到的变量替换法这道题还可以用内联执行的方式解决/?ip127.0.0.1;cat$IFS$9ls这里利用了反引号的内联执行特性将ls命令的输出作为cat的参数。这种方法更加隐蔽但需要对Linux命令有深入理解才能想到。4.3 防御措施建议从防御角度出发我总结了几个关键点永远不要直接拼接用户输入和系统命令使用白名单机制验证输入而不是黑名单过滤考虑使用参数化查询等更安全的方式实现功能最小权限原则运行服务的账户应该只有必要的最小权限命令注入漏洞的危害性往往被低估。通过这道CTF题目我们可以清楚地看到即使做了多层过滤攻击者仍然可能找到突破口。这提醒我们安全防护必须从设计层面就开始考虑而不是事后修补。

更多文章