news 2026/7/12 3:07:38

CTFShow 萌新区 47 题 WP 精讲:Web 1-10 篇,5 种 intval 绕过实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CTFShow 萌新区 47 题 WP 精讲:Web 1-10 篇,5 种 intval 绕过实战

CTFShow 萌新区 Web 1-10 题精讲:5 种 intval 绕过手法实战剖析

在 CTF 竞赛的 Web 安全领域中,PHP 类型转换漏洞一直是高频考点。本文将系统性地剖析 CTFShow 萌新区 Web 1-10 题中 intval() 函数的 5 种经典绕过手法,通过原理分析、Payload 构造和实战演示,帮助初学者建立完整的漏洞利用思维框架。

1. intval 函数特性解析

intval() 作为 PHP 中的类型转换函数,其核心特性决定了漏洞利用的可能性边界。该函数存在三个关键行为特征:

  1. 字符串解析规则:当输入为字符串时,函数会从首字符开始解析,直到遇到非数字字符停止。例如:

    intval("123abc") => 123 intval("a123") => 0
  2. 进制转换支持:支持二进制(0b)、八进制(0)、十六进制(0x)前缀识别:

    intval("0x3e8") => 1000 intval("0b111") => 7
  3. 科学计数法处理:对1e3这类表示法会转换为 1000,但需注意:

    intval("1e3") => 1 // 仅当字符串形式直接传入时 intval(1e3) => 1000 // 数值形式传入时

典型漏洞代码模式如下所示,这种判断逻辑极易被绕过:

$id = $_GET['id']; if(intval($id) > 999){ die("Access Denied"); }

2. 单引号字符串绕过

当过滤逻辑未处理引号时,可利用 PHP 的弱类型特性进行突破:

攻击原理

  • PHP 会将带引号的数字字符串视为字符串类型
  • intval() 处理时自动忽略引号,但比较运算符==会触发类型转换

Payload 构造

?id='1000'

实战演示

GET /challenge.php?id='1000' HTTP/1.1 Host: ctf.show # 响应结果: # 成功绕过判断,返回 flag{...}

技术要点

  • 适用于未过滤引号的场景
  • 单/双引号均可使用
  • 注意与===严格比较的区别

3. 数学运算绕过

当过滤了引号但未过滤运算符时,可通过数学表达式实现绕过:

攻击原理

  • 利用运算符构造结果为 1000 的表达式
  • intval() 会先计算表达式结果

Payload 变种

?id=100*10 ?id=500+500 ?id=2000-1000 ?id=1000/1 ?id=500<<1 ?id=400|624

防御对比

过滤措施可绕过方式
过滤+使用*/<<
过滤所有运算符需采用其他方法

4. 进制转换技巧

当过滤了常规数字但允许特殊前缀时,进制转换成为突破口:

各进制表示法

十进制 1000 => 1000 十六进制 => 0x3e8 八进制 => 01750 (历史遗留写法) 二进制 => 0b1111101000

实战案例

GET /challenge.php?id=0x3e8 HTTP/1.1 # 服务器处理流程: 1. 接收字符串 "0x3e8" 2. intval() 识别为十六进制数 3. 转换为十进制 1000 4. 绕过 999 的限制

特殊技巧

  • 某些环境下0x可能被过滤,可尝试省略前导零:x3e8
  • 结合 URL 编码:%30%78%33%65%38(0x3e8 的编码)

5. 位运算与二次取反

当常规运算符被禁用时,位运算提供新的可能性:

按位取反原理

~1000 = -1001 ~~1000 = 1000 # 双重取反还原

Payload 示例

?id=~~1000 ?id=(1000)

技术细节

  • 利用 PHP 的位运算优先级特性
  • 括号可改变运算顺序,有时能绕过简单过滤
  • 注意部分环境会过滤~符号

6. 字符串拼接技术

当过滤严格但允许字符串连接时,可采用动态构造方式:

Payload 设计

?id="1000" ?id=("10"."00") ?id=${1000}

高级技巧

// 利用变量动态构造 $a="10"; $b="00"; $id=$a.$b;

7. 综合防御方案

针对 intval 绕过的完整防护应包含以下措施:

$id = $_GET['id']; // 多层防御策略 if(!is_numeric($id)) die("Invalid input"); if(strpos($id,".") !== false) die("No float allowed"); if($id > 999 || $id < 1) die("Out of range"); // 类型严格校验 if(intval($id) !== $id) die("Type mismatch"); // 白名单过滤 $allowed = range(1,999); if(!in_array($id, $allowed)) die("Not in whitelist");

防护方案对比表:

防护等级措施可绕过性
基础仅 intval()极易绕过
中级增加运算符过滤可能被进制绕过
高级白名单+类型校验极难绕过
终极数字签名+服务端验证理论上不可破

8. 实战挑战与思考

通过构造特殊 Payload 测试以下过滤规则:

if(preg_match("/or|\-|\\|\*|\&lt;|\&gt;|\!|x|hex|\+/i",$id)){ die("Filter triggered"); }

突破思路

  1. 使用未被过滤的/运算符:?id=2000/2
  2. 采用位右移操作:?id=4000>>2
  3. 组合使用括号和除法:?id=(8000)/(8)

在真实攻防对抗中,往往需要结合多种技术才能突破层层防御。建议读者在本地搭建测试环境,通过修改过滤规则来验证不同绕过方法的有效性。

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

UG NX 2406 + VS2022 C++ 二次开发:从零配置到生成首个DLL的5个关键步骤

UG NX 2406 VS2022 C 二次开发&#xff1a;从零配置到生成首个DLL的5个关键步骤在工业设计领域&#xff0c;UG NX作为一款功能强大的CAD/CAM/CAE集成软件&#xff0c;其二次开发能力为工程师提供了极大的定制化空间。本文将详细介绍如何基于最新版本的UG NX 2406和Visual Stud…

作者头像 李华
网站建设 2026/7/12 3:07:28

基于TC78H651AFNG和PIC18F85K22的直流电机驱动方案

1. 项目背景与核心器件选型在工业自动化和消费电子领域&#xff0c;直流有刷电机因其结构简单、控制方便、成本低廉等优势&#xff0c;仍然是运动控制系统的首选执行元件。而驱动器的性能直接决定了整个运动控制系统的响应速度、能效比和可靠性。TC78H651AFNG作为东芝新一代DMO…

作者头像 李华
网站建设 2026/7/12 3:06:08

便携式文件夹加密器V5.43:AES-256算法与数据安全实践指南

1. 项目概述&#xff1a;为什么我们需要一个“便携式”加密器&#xff1f;在数字生活里&#xff0c;我们的电脑硬盘就像是一个巨大的、没有上锁的抽屉。工作文档、私人照片、财务记录、项目源码……所有这些敏感信息都混杂在一起。你可能觉得“我的电脑有开机密码”&#xff0c…

作者头像 李华
网站建设 2026/7/12 3:05:55

3个关键步骤让老Mac焕发新生:OpenCore Legacy Patcher终极指南

3个关键步骤让老Mac焕发新生&#xff1a;OpenCore Legacy Patcher终极指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否曾经看着手中的老款Mac电脑&…

作者头像 李华
网站建设 2026/7/12 3:05:53

影刀RPA 农产品价格监控:批发市场行情自动采集

影刀RPA 农产品价格监控&#xff1a;批发市场行情自动采集 作者&#xff1a;林焱 | 分类&#xff1a;影刀RPA新手教程 | 难度&#xff1a;★★ 什么情况用 做农产品贸易、社区团购、食堂采购的朋友&#xff0c;每天都要盯批发市场价格。北京新发地、广州江南、上海江桥……每家…

作者头像 李华
网站建设 2026/7/12 3:04:28

当AI“接管”了知识传授,教育还剩什么?

说实话&#xff0c;最近几个月关于AI和教育的话题&#xff0c;热度一直没降下来。今天正好是2026年7月11日&#xff0c;翻翻新闻就能看到&#xff0c;教育部等五部门印发的《“人工智能教育”行动计划》正在全面落地&#xff1b;国务院印发的《教育发展“十五五”规划》也明确提…

作者头像 李华