CTFHub Web进阶-PHP:Bypass_disable_function通关6之Json Serializer UAF - 详解

news/2025/12/4 8:48:28/文章来源:https://www.cnblogs.com/yangykaifa/p/19304939

目录

一、Json Serializer UAF渗透实战

1、打开靶场

2、源码分析

3、蚁剑直接连接

4、虚拟终端

5、蚁剑工具-disable function

(1)disable function插件

(2)Json Serializer UAF插件

(3)获取flag

二、原理分析

1、题目附件

2、PHP Bug #77843 简介

3、原理详解


本文详细讲解CTFHub的Web进阶中disable-functions的Json Serializer UAF关卡的渗透全流程,展示利用PHP JSON序列化组件Bug#77843绕过disable_functions限制的渗透方法。通过蚁剑工具连接靶场后,使用disablefunction插件中的JsonSerializerUAF模式成功执行命令获取flag。该风险源于PHP 7.3.3版本中json_encode处理JsonSerializable接口时的引用计数错误,导致释放后使用(UAF)风险。攻击者通过精心构造的序列化对象触发内存重用,最终实现命令执行。

一、Json Serializer UAF渗透实战

打开“Json Serializer UAF”关卡,页面提示“理论上PHP本地代码执行都可以用来 Bypass disable_function, 比如 GC UAF”,如下所示。

特别注意:本关卡还附带了题目附件,我们将在第二部分讲解。

1、打开靶场

http://challenge-d84982885c2360b7.sandbox.ctfhub.com:10800/

2、源码分析

这是一个基于PHP JsonSerializer组件的UAF(Use-After-Free)风险的利用环境,攻击者通过eval($_REQUEST['ant'])注入恶意代码,旨在绕过PHP的disable_functions安全限制。利用JSON序列化过程中释放内存后未及时清理的指针,通过精心构造的请求触发内存重用,最终实现命令执行和Webshell权限维持,源码如下所示。

本环境来源于AntSword-LabsCTFHub Bypass disable_function —— Json Serializer UAF

CTFHub Bypass disable_function —— Json Serializer UAF

本环境来源于AntSword-Labs

3、蚁剑直接连接

http://challenge-d84982885c2360b7.sandbox.ctfhub.com:10800/ 密码ant

4、虚拟终端

进入虚拟终端执行ls和dir命令,如下所示,命令执行失败。

5、蚁剑工具-disable function

(1)disable function插件

我们通过蚁剑工具的disable function插件绕过服务器的限制,具体操作步骤如下所示。

(2)Json Serializer UAF插件

插件选择 Json Serializer UAF模式,如下所示点击开始。

点击开始后弹出新的虚拟终端,具体如下所示。

(3)获取flag

在新的终端中输入ls /、cat /readflag和tac /flag命令成功获取到flag,如下所示。

二、原理分析

1、题目附件

URL地址链接:PHP :: Bug #77843 :: Use after free with json serializer

https://bugs.php.net/bug.php?id=77843

Bug #77843	Use after free with json serializer
Submitted:	2019-04-04 06:59 UTC	Modified:	2019-04-18 14:42 UTC
Votes:	1
Avg. Score:	3.0 ± 0.0
Reproduced:	0 of 0 (0.0%)
From:	hanno at hboeck dot de	Assigned:	nikic (profile)
Status:	Closed	Package:	JSON related
PHP Version:	7.3.3	OS:	Linux
Private report:	No	CVE-ID:	None
ViewDeveloperEdit[2019-04-04 06:59 UTC] hanno at hboeck dot de
Description:
------------
Together with a recent apache vulnerability
https://cfreal.github.io/carpe-diem-cve-2019-0211-apache-local-root.html
a use after free 0day bug in PHP was disclosed.
Just want to make sure you're aware of it. Compiling PHP 7.3.3 with ASAN gives me this stack trace:
==22468==ERROR: AddressSanitizer: heap-use-after-free on address 0x606000006288 at pc 0x000001b53104 bp 0x7ffc38a68850 sp 0x7ffc38a68848
READ of size 8 at 0x606000006288 thread T0#0 0x1b53103 in ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_HANDLER /f/php-7.3.3/Zend/zend_vm_execute.h:31199:8#1 0x19ef40c in execute_ex /f/php-7.3.3/Zend/zend_vm_execute.h:55334:7#2 0x183aa71 in zend_call_function /f/php-7.3.3/Zend/zend_execute_API.c:756:3#3 0x1839366 in _call_user_function_ex /f/php-7.3.3/Zend/zend_execute_API.c:598:9#4 0x1197b9a in php_json_encode_serializable_object /f/php-7.3.3/ext/json/json_encoder.c:490:17#5 0x1197b9a in php_json_encode_zval /f/php-7.3.3/ext/json/json_encoder.c:567#6 0x11a0491 in php_json_encode_array /f/php-7.3.3/ext/json/json_encoder.c:218:8#7 0x1197e92 in php_json_encode_zval /f/php-7.3.3/ext/json/json_encoder.c:571:11#8 0x11a0491 in php_json_encode_array /f/php-7.3.3/ext/json/json_encoder.c:218:8#9 0x1197e92 in php_json_encode_zval /f/php-7.3.3/ext/json/json_encoder.c:571:11#10 0x119528c in zif_json_encode /f/php-7.3.3/ext/json/json.c:286:2#11 0x1bbbb10 in ZEND_DO_ICALL_SPEC_RETVAL_UNUSED_HANDLER /f/php-7.3.3/Zend/zend_vm_execute.h:645:2#12 0x19ef40c in execute_ex /f/php-7.3.3/Zend/zend_vm_execute.h:55334:7#13 0x19efcdf in zend_execute /f/php-7.3.3/Zend/zend_vm_execute.h:60881:2#14 0x1889d94 in zend_execute_scripts /f/php-7.3.3/Zend/zend.c:1568:4#15 0x16990b7 in php_execute_script /f/php-7.3.3/main/main.c:2630:14#16 0x1cc58b3 in do_cli /f/php-7.3.3/sapi/cli/php_cli.c:997:5#17 0x1cc23e2 in main /f/php-7.3.3/sapi/cli/php_cli.c:1392:18#18 0x7faa220d64fa in __libc_start_main (/lib64/libc.so.6+0x244fa)#19 0x424419 in _start (/f/php-7.3.3/sapi/cli/php+0x424419)
Test script:
---------------
y;return $this;}
}
function get_aslr()
{global $p, $y;$p = 0;$y = [new X('PT1S')];json_encode([1234 => &$y]);print("ADDRESS: 0x" . dechex($p) . "\n");return $p;
}
get_aslr();
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commitsRelated reports[2019-04-04 07:07 UTC] stas@php.net
-Type: Security
+Type: Bug
-Package: Reproducible crash
+Package: JSON related[2019-04-04 07:07 UTC] stas@php.net
This looks like it requires specially crafted code, therefore not a security issue.[2019-04-18 14:42 UTC] nikic@php.net
-Assigned To:
+Assigned To: nikic[2019-04-18 14:42 UTC] nikic@php.net
Slightly simplified test code (valgrind):
class X implements JsonSerializable {public $prop = "value";public function jsonSerialize() {global $arr;unset($arr[0]);var_dump($this);return $this;}
}
$arr = [new X()];
var_dump(json_encode([&$arr]));
We need to make sure a ref is kept when calling jsonSerialize() and probably also when recursing over arrays/objects in general (as something may be unset at a higher level).[2019-04-23 10:44 UTC] nikic@php.net
Automatic comment on behalf of nikita.ppv@gmail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=4831e150c5ada631c1480098b8a42cbf024d8899
Log: Fixed bug #77843[2019-04-23 10:44 UTC] nikic@php.net
-Status: Assigned
+Status: Closed

2、PHP Bug #77843 简介

PHP Bug #77843 是 2019 年 4 月披露的、存在于 PHP 7.3.3 版本中与 JSON 序列化相关的释放后使用(Use After Free)的风险,由用户 hanno at hboeck dot de 报告,可通过构造实现JsonSerializable接口的类(如自定义X类继承DateInterval并重写jsonSerialize方法)触发,在json_encode处理含引用的数组时,因未保留对象引用导致内存被释放后仍被访问,进而产生堆内存错误;官方最初将其归类为 “Bug” 而非安全问题,最终由 nikic 分配处理并于 2019 年 4 月 23 日通过提交修复,该风险无 CVE 编号,复现率为 0%,投票数 1,平均评分 3.0±0.0。

字段详情
Bug ID#77843
标题Use after free with json serializer(JSON 序列化器相关的释放后使用)
报告时间2019 年 4 月 4 日 06:59 UTC
报告者hanno at hboeck dot de
处理状态已关闭(Closed)
分配处理人nikic(PHP 核心开发者)
所属包JSON related(JSON 相关模块)
影响 PHP 版本7.3.3
运行操作系统Linux
私有报告标识No(非私有报告,内容公开)
CVE 编号None(未分配 CVE)
社区投票1 票
平均评分3.0 ± 0.0(满分 5 分,影响程度中等)
复现率0 of 0(0.0%,无有效复现记录)

3、原理详解

核心原因是json_encode在处理实现JsonSerializable接口的对象时,未正确保留对象引用

  • 当通过json_encode处理含引用的数组时,进入自定义jsonSerialize方法;
  • 方法内部执行unset操作删除数组中的对象元素,导致对象内存被标记为可释放并被回收;
  • 后续代码仍试图访问已释放的对象属性(如$this->y),触发堆内存读取错误(heap-use-after-free)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/986376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年知名的台式浓缩浓缩干燥器行业内知名厂家排行榜

2025年知名的台式浓缩干燥器行业内知名厂家排行榜行业背景与市场趋势台式浓缩干燥器作为实验室设备领域的重要工具,近年来随着生物医药、食品检测、环境监测等行业的快速发展,市场需求持续增长。2024年全球实验室设备…

2025年工业设计公司口碑TOP5推荐:怡美工业设计创意水平

在制造业转型升级的浪潮中,工业设计已成为产品破局的核心密钥——它不仅决定着产品的视觉吸引力,更深度影响用户体验、量产可行性与市场竞争力。面对市场上鱼龙混杂的设计服务,如何挑选兼具创意力、落地能力与行业沉…

2025中秋月饼礼盒TOP5权威推荐:看看哪家信誉好

中秋佳节临近,消费者对月饼礼盒的需求从有转向优,既追求蛋黄、京式等经典口味的地道风味,更看重品牌信誉与健康品质。2024年数据显示,月饼礼盒市场规模同比增长35%,但30%的投诉集中在原料以次充好口味偏离传统礼盒…

2025年比较好的水浴恒温振荡培养箱优质厂家推荐榜单

2025年优质水浴恒温振荡培养箱厂家推荐榜单行业背景与市场趋势随着生物医药、生命科学和材料化学等领域的快速发展,水浴恒温振荡培养箱作为实验室核心设备之一,市场需求持续增长。2025年,全球实验室设备市场规模预计…

买商标找哪家商标公司靠谱?2025 六大头部公司避坑指南 + 优选推荐

商标是企业品牌布局的关键一步,直接影响市场拓展效率与知识产权风险防控。当前商标交易市场乱象频发:虚假标源误导决策、“一标多卖” 欺诈时有发生、过户流程冗长繁琐、隐性收费暗藏陷阱、售后维权无门等问题,成为…

习题解析之:字符串去重排序

习题解析之:字符串去重排序【问题描述】 输入一个非空字符串,去除重复的字符后,从小到大排序输出为一个新字符串。 输入格式一个非空字符串 输出格式去重排序后的字符串 示例输入:Life is short, you need Python!…

TB322FC刷机包原厂

TB322刷机包下载 联想拯救者y700四代

2025年热门的A级防火阻燃岩棉板/外墙保温防火岩棉板高评价厂家推荐榜

2025年热门的A级防火阻燃岩棉板/外墙保温防火岩棉板高评价厂家推荐榜行业背景与市场趋势随着我国建筑节能标准的不断提高和消防安全意识的增强,A级防火阻燃岩棉板作为外墙保温材料的重要组成部分,近年来市场需求持续…

2025 年健康监测系统平台最新推荐榜,医疗级技术认证与全流程服务体验深度解析健康监测设备/居家健康监测/老年健康监测系统推荐

引言 健康管理理念向 “主动预防” 转型的背景下,健康监测平台成为核心服务载体,但市场中功能同质化、数据精准性不足等问题仍存。为精准筛选优质平台,健康管理协会联合医学人工智能产业联盟开展专项测评,覆盖 120…

商标转让平台哪家又好又靠谱?四大核心指标测评,2025 优选推荐

2025 年随着企业商标转让需求持续火爆,行业报告显示全年商标转让咨询量同比增长 35%,但市场乱象仍让企业望而却步:近 40% 企业遭遇 “低报价诱客 + 隐性收费” 陷阱,25% 因平台资质不全导致过户失败,自主申请 6 个…

详细介绍:基于网易CodeWave智能开发平台构建宝可梦图鉴

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

商标交易平台 TOP5 权威测评(2025最新版):买商标去哪个网站好?

在品牌竞争白热化的当下,商标早已不是单纯的商业标识,而是企业抢占市场份额、建立用户信任的核心资产。无论是初创企业急于落地品牌布局,还是成熟商家拓展产品线、进军新赛道,一个优质且合规的商标,都是打通市场的…

2025年比较好的食用油铁罐厂家推荐及选购参考榜

2025年优质食用油铁罐厂家推荐及选购参考榜 行业背景与市场趋势 随着消费者对食品安全与环保意识的提升,食用油包装行业正朝着高品质、可持续方向发展。金属铁罐因其优异的阻隔性、耐腐蚀性和可回收性,成为高端食…

详细介绍:基于SpringBoot的大学生健康测评系统设计与实现—免费毕设源码分享23354

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年口碑好的自动巡检机器人厂家推荐及选购参考榜

2025年口碑好的自动巡检机器人厂家推荐及选购参考榜行业背景与市场趋势随着工业4.0和智能制造的快速发展,自动巡检机器人市场迎来了爆发式增长。2025年全球自动巡检机器人市场规模预计将达到120亿美元,年复合增长率超…

2025年靠谱的烽创机械臂厂家最新权威实力榜

2025年靠谱的烽创机械臂厂家权威实力榜行业背景与市场趋势随着全球制造业智能化转型加速推进,工业机械臂作为自动化生产线的核心装备,正迎来前所未有的发展机遇。据国际机器人联合会(IFR)数据显示,2024年全球工业机…

2025年比较好的不锈钢链轮标准尺寸参数厂家最新TOP排行榜

2025年不锈钢链轮标准尺寸参数厂家TOP排行榜行业背景与市场趋势随着工业自动化水平的不断提升,不锈钢链轮作为机械传动系统中的关键部件,其市场需求持续增长。2025年,全球不锈钢链轮市场规模预计将达到45亿美元,年…

2025年知名的桥梁预应力波纹管设备/塑料波纹管设备厂家最新推荐排行榜

2025年知名的桥梁预应力波纹管设备/塑料波纹管设备厂家推荐排行榜行业背景与市场趋势随着全球基础设施建设的持续发展,桥梁工程作为交通网络的重要组成部分,其建设质量和技术水平备受关注。预应力波纹管作为桥梁施工…

2025年评价高的火检冷却风机/稀释风机用户口碑最好的厂家榜

2025年评价高的火检冷却风机/稀释风机用户口碑的厂家榜行业背景与市场趋势随着工业4.0时代的深入发展,火检冷却风机和稀释风机作为工业流程中的关键设备,在电力、化工、冶金等行业的应用日益广泛。2025年,随着环保要…

2025年正规的洗碗机设备/广州工厂洗碗机厂家选购指南与推荐

2025年正规的洗碗机设备/广州工厂洗碗机厂家选购指南与推荐行业背景与市场趋势随着餐饮行业标准化程度不断提高和食品安全监管日益严格,商用洗碗机设备市场正迎来快速增长期。据中国餐饮协会数据显示,2024年中国商用…