realNetworks RealPlayer/HelixPlayer SMIL wallclock Stack Overflow 简单分析(POC)

如何处理动态语言(Python / JS)的“隐形”调用链? 本文揭示动态语言(Python/JS)中静态AST解析导致调用链“断链”的核心问题,提出通过运行时追踪补全图谱的解决方案。基于Code-Graph-RAG的cgr trace机制,分别利用pytest插件与V8 Profiler捕获真实调用路径,将动态边合并至静态图谱,并在权重体系中提升动态边优先级。实践表明,该方法可显著提升图谱覆盖率,实现“结构+行为”双视角理解代码,为MCP与Rerank系统提供可靠支持。 阅读详情

by axis
2007-06-27
http://www.ph4nt0m.org

这是一个忽悠人的漏洞,这是我们内部讨论后的结论。当然也许是我们考虑的不够全面,所以把我们的分析公开在这里,希望哪位大牛能够指点下我们,望不吝赐教!

那么我们为什么会认为这是个忽悠人的漏洞呢,简单分析如下。

漏洞是今天由idefense公布的.

http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=547

首先看看这个漏洞的历史:

VIII. DISCLOSURE TIMELINE

10/02/2006 Initial vendor notification
10/03/2006 Initial vendor response
06/26/2007 Public disclosure

丫挺的原来去年10月份就报给厂商了,到今天才pub出来。

根据漏洞公告,RealPlayer 10.5是受影响的,和我们的测试结果一致。我们测试10.6已经补了,而10.5和10.0.x都存在这个漏洞。

从公告中可以看出,这个漏洞是看代码看出来,而且是先用flawfinder扫过的。引用公告中的代码如下:

924 HX_RESULT
925 SmilTimeValue::parseWallClockValue(REF(const char*) pCh)
926 {
...
957 char buf[10]; /* Flawfinder: ignore */
...
962 while (*pCh)
963 {
...
972 else if (isspace(*pCh) || *pCh == '+' || *pCh == '-'
|| *pCh == 'Z')
973 {
974 // this will find the last +, - or Z ...  which is
what we want.
975 pTimeZone = pCh;
976 }
...
982 ++pCh;
983 }
...
1101 if (pTimePos)
1102 {
1103 //HH:MM ...
... .
1133 if (*(pos-1) == ':')
1134 {
... .
1148 if (*(pos-1) == '.')
1149 {
1150 // find end.
1151 UINT32 len = 0;
1152 if (pTimeZone)
1153 {
1154 len = pTimeZone - pos;
1155 }
1156 else
1157 {
1158 len = end - pos;
1159 }
1160 strncpy(buf, pos, len); /* Flawfinder: ignore */


这里告诉我们一个方法,有的漏洞挖掘,可以直接去看同系列的开源代码(如果有的话),因为代码可能很大程度上是差不多的。同时也告诉我们不要太过于迷信工具,这个漏洞显然是flawfinder检测不出来的。

根据公告的说明,这个漏洞是存在于SMIL语言的wallclock方法中(SMIL语法请自己google).
这个漏洞存在于 /Program Files/Common Files/Real/Pluggins/smlrender.dll 中
loc_608A136A:
sub     eax, edi
mov     edx, eax
mov     [ebp
+var_8], eax
push    edx             ; size_t
lea     eax, [ebp
+var_40]
push    edi             ; 
char *
push    eax             ; 
char *
call    ds:strncpy
mov     ecx, [ebp
+var_8]
add     esp, 0Ch
mov     [ebp
+ecx+var_40], 0
mov     al, [ebp
+var_40]
test    al, al
jz      loc_608A155A


strncpy的拷贝在如上位置。

拷贝完后会覆盖ecx、edx,同时eax、edi会指向shellcode。
在strncpy拷贝完后,会因为
mov [ebp+ecx+var_40], 0
导致异常,所以我建议覆盖seh利用
SEH的位置在[esp+5C8]处

接下来是这个漏洞真正忽悠人的地方了。

这个天杀的漏洞只能接受如下字符才能触发:
数字0-9,),.,Z,+,-,空格

也就是说触发漏洞的payload只能用上述字符,否则就触发不了漏洞。
即以下字符: 0x30-0x39, 0x20, 0x29, 0x2b, 0x2d, 0x2e, 0x5a

那么不管是覆盖ret,还是覆盖seh,都只能有这些字符,甚至像利用单字节溢出一样,只覆盖一个字节,也只能是这些字符。

先不论shellcode如何写,光是怎么改变程序运行流程使之指向shellcode,几乎就是不可能的了。

使用如下classid: CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA
在ie中调用,使用heap spray,也只能把堆地址最高推到 0x0f******, 推到0x10******都比较困难。
使用java做 heap spray,堆地址范围是 0x21****** - 0x26****** 也不符合要求。

所以说这个漏洞基本上是忽悠人玩的。

公告中有如下一句话:
The data that is used to overflow the buffer is quite limited in the
range of characters that are allowed. However, given the ease of
address space manipulation within web browsers, exploitation is not
substantially impacted by this limitation.

也许这个漏洞还有别的好的利用方法,那么如果哪位大牛找到了,请share我们一份,谢谢。

以下是我们的POC,注意要挂载了调试器才能看到异常,直接运行是不会挂realplayer的,可惜了一个好漏洞!

<smil xmlns="http://www.w3.org/2000/SMIL20/CR/Language">
  
<body>
    
<par>
      
<img src="./1.jpg" begin="wallclock(12:00:00.999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999+9)" dur="5s"/>
    
</par>
  
</body>
</smil>


将上面代码保存为x.smil即可,这是一个文件类型的漏洞。

怀着恶意揣测一下idefense,可能还有可以利用的好漏洞,他报出来的只是一个垃圾漏洞而已。。。。 
Playwright: Pytest vs Library vs LibraryAsync:三者如何选? Python中Playwright的3个Target:Pytest(推荐用于E2E自动化测试,支持报告、并行、重试)、Library(同步脚本,适合爬虫与简单任务,需手动管理浏览器)、LibraryAsync(异步脚本,适用于高并发批量操作)。选择依据:测试项目选Pytest,轻量脚本选Library,高并发场景选LibraryAsync。 阅读详情

相关推荐

PointMLP实战:5分钟用PyTorch搭建点云分类模型(附GitHub代码)

本文提供了基于ICLR 2022论文PointMLP的点云分类模型实战教程。通过PyTorch框架,详细介绍了从环境搭建、数据预处理、模型架构解析到训练推理的全流程,并分享了性能调优技巧。该模型利用残差MLP模块构建,结构清晰高效,适合开发者快速上手并应用于实际点云处理项目。

r2s3t4的博客 215

Helix Player试用(转)

Helix Player试用(转)[@more@]原来在线看电影一直使用mplayer的mozilla插件。看rm, rmvb格式的文件,有时用real player, 但是由于找不到插件,real player不能播放DVD转...

congjukun0600的博客 595

Multisim14.3中FPGA接口电路设计:原理图项目应用

深入讲解在multisim14.3环境下构建FPGA接口电路的方法,结合原理图设计与项目实践,展现multisim14.3强大的电路仿真能力,提升数字系统开发效率。

weixin_42578963的博客 1158

helix server介绍及架设网络电视

  RealNetworks 公司发表了最新的 Helix Universal Platform !它包括 : Helix Producers、 Helix Universal Servers、 Helix Universal Gateways、 RealOne Desktop Manager、 The RealOne Player 和 RealOne Enterprise Desktop 。

lsiu51的专栏 1870

告别Vysor!用Scrcpy在Mac上无线投屏安卓手机(附魅族16th闪退修复实战)

本文详细介绍了如何在Mac上配置和使用开源投屏工具Scrcpy,实现安卓手机无线投屏的高效解决方案。从基础环境准备到高级功能调优,包括无线连接配置、输入控制增强、多设备管理和性能优化等实用技巧,特别针对魅族16th等机型的闪退问题提供了修复方案,帮助用户彻底告别Vysor等商业软件。

weixin_28712661的博客 396

直流耦合系统介绍

参考《SMA如何使用直流耦合技术实现更高效的光伏电站-白皮书》

圆桌骑士的博客 732

RealNetworks RealPlayer/HelixPlayer SMIL wallclock Stack Overflow 简单分析(POC)

by axis2007-06-27[url]http://www.ph4nt0m.org[/url]这是一个忽悠人的漏洞,这是我们内部讨论后的结论。当然也许是我们考虑的不够全面,所以把我们的分析公开在这里,希望哪位大牛能够指点下我们,望不吝赐教!那么我们为什么会认为这是个忽悠人的漏洞呢,简单分析如下。漏洞是今天由idefense公布的.[url]htt...

weixin_34018169的博客 203

Unity插件-Mirror使用方法(一)Mirror介绍

Unity Mirror 是一个专为 Unity 引擎设计的开源、社区驱动的网络库,主要用于简化多人联机游戏的开发。它最初是为了替代 Unity 原生的 UNet 系统(已被官方弃用)而创建的,因其轻量、灵活和高效的特点,成为 Unity 开发者构建多人游戏的热门选择。

qq_44501691的博客 4101

模型之外的那套装置:用 AI harness 完成一个三端同步应用

AI harness 指模型之外、让模型能持续产出可交付软件的全部工程装置。本文把它称作"支架"。它由五层构成:输入层规定模型读什么,反馈层规定模型怎么知道自己错了,观测层把界面与设备状态变成可读事实,记忆层让跨会话不失真,边界层规定哪些动作不许模型自行作出。支架的价值在六天里可以直接计量。

Leo的Matrix 182

100天精通Python(基础篇)——第20天:pip命令大全

pip升级命令:python -m pip install --upgrade pip pip install name //这里的name是要安装的第三方库名 pip install name -i http://mirrors.aliyun.com/pypi/simple/ 国内镜像源 阿里云:http://mirrors.aliyun.com/pypi/simple/ (推荐使用) 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple 豆瓣:http:/

努力让自己发光,对的人才能迎着光而来 18万+

UG\NX二次开发 使用UF_CURVE_create_ocf_feature函数创建“在面上偏置”特征

使用UF_CURVE_create_ocf_feature函数创建“在面上偏置”特征。

王牌飞行员_里海的博客 850

附录一源码阅读路线与断点索引

本索引固定于Boot 3.5.7与Framework 6.2.12。先选择要解释的现象,再打开对应源码。表中观察对象是逻辑名称,不保证在所有重载中都是同名局部变量。抽象接口和注解用于阅读契约,不提供可执行方法体断点。

weixin_45476869的博客 162

一条时间轴上的商品供给:商品供给域事件全景、八大子域事件清单与事件契约规范的工程推演

本文以虚构连锁零售企业“青禾鲜市”为例,用事件风暴重新梳理商品供给域:先剖析同词异义、状态模糊、隐式依赖与被动兜底四类冲突,再以时间轴、八条子域泳道与关键事件铺出全景地图,确立一个事件只有一个户口;随后为总店商品、门店商品、价格、库存、质量、标签、变更通知与操作日志列出聚合、事件、命令与策略,并统一命名、信封结构、版本与幂等规范。程序体检把初稿14个问题清零,仿真显示按聚合版本号更新可售视图可将误判从两位数百分比降到0.019%。文末给出四轮工作坊节奏与新品引入、全国调价、批次召回走查剧本。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 5万+

软件测试用例模板怎么写:从用例设计到执行记录的全套指南

测试用例是测试工作的核心产出,它决定测试覆盖了多少、漏掉了什么。但大多数人的测试用例写得像流水账——只有正常路径,没有异常场景;只有操作步骤,没有预期结果;只有功能测试,没有非功能测试。本文拆解测试用例的标准结构,说明每个字段的含义和写法,给出覆盖功能测试、性能测试、安全测试的完整用例范例,并列出测试用例设计的五个高频遗漏点。

wuwangzhiduoshao的博客 153

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MCP实战06:传输实战、测试与部署

你的 MCP Server 写完了,怎么确认它真的能被宿主正确调用?这课给传输层实战三件套:MCP Inspector 可视化调试、协议级自动化测试(pytest 断言 JSON-RPC 报文结构)、stdio/HTTP 双传输部署。测试不是可选项——工具描述错一个字段宿主就调不对,你能给 Server 建起自己的回归测试。

Blockbuster-drug 782

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

大型高复杂度互联网项目管理经验心得

复杂项目,管理的核心不是管人,而是管理依赖和变更简单项目重点是排任务、盯进度;多端多关联系统的大型项目,大部分延期、故障根源都来自依赖失控、变更失控。项目经理首要工作是把看不见的依赖显性化,把随意变更变成受控变更,而不是单纯催开发进度。分批上线不是降低标准,而是拆分风险,小步可控很多人觉得分批上线麻烦,希望攒到一起发布。但集中上线会把所有风险集中在同一个窗口,一旦出问题,排查范围巨大、影响面广。分批发布本质是风险隔离,每一批只承载有限的变更,出问题更容易定位、回滚、止损。

zyx980193917的博客 191

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

电芯串并联与BMS保护

串联升压、并联扩容,规则一句话,但整包能用多少由最弱的那节电芯说了算。这篇先算最弱电芯的账,再讲清三层保护,最后给对应的BMS测试用例:欠压、压差、均衡怎么测。BMS项目里有个常见场面:两台同配置的样车,电芯是同一批的,跑出来续航和限功率点却对不上。拆包量单体,一台里有一节电芯的容量比其他低了8%。整包表现被一节拖住,就是串并联的规矩在起作用。这篇先把规则和算例讲清,再讲保护分层,最后落到测试用例。

qq_43241255的博客 233

[LLM Wiki理论与实践-09]将OpenWiki融入Coding Agent为你节省Token

针对OpenWiki的整合则将Coding Agent的执行模式升级为**先读知识库、再精准修改代码**。OpenWiki预置概念文档、测试说明、页面清单与更新时间,让Agent快速理解业务意图、定位相关代码与测试、判断信息新旧,减少Token与时间开销,降低理解偏差和跨文件遗漏,使改动更一致、可复现,文档与代码同步维护。

JaydenAI的博客 413

MyBatis 入门核心教程:原生接口与 Mapper 代理双模式实战

MyBatis 是 Java 生态中应用最广泛的半自动化持久层框架,它在封装 JDBC 冗余模板代码的同时,将 SQL 的编写权完全交给开发者,兼具开发效率与性能优化空间,是国内企业级项目的主流持久层方案。MyBatis 提供了两种核心开发模式:原生接口模式适合理解框架底层执行原理,Mapper 代理模式是企业开发的标准规范。本文从基础概念出发,完整覆盖环境搭建、两种模式的代码实现、底层原理、事务机制与高频问题排查,所有代码均可直接运行,适合系统入门与实战参考。原生接口模式。

2401_87069538的博客 973

SpringBoot 的那些常用扩展点

JsonPropertySourceLoader,实现PropertySourceLoader接口@Override//这个方法表明这个类支持解析以json结尾的配置文件@Override//将文件内容读到 ByteBuffer 中//将读出来的字节转换成字符串// 将字符串转换成 JSONObject//将 json 的键值对读出来,放入到 map 中。

sxlishaobin的博客 87

高远-无网环境智能化测试用例下发:让智驾测试在无网环境也能闭环跑通

智能驾驶测试常发生在地下车库、隧道、野外、沙漠等弱网或无网场景。用例在云端、现场断网打不开,缺陷只能纸笔记录、回网手工补录,耗时且易错。本文以 高远-无网环境智能化测试用例下发 为例,拆解一套"出发前下发用例、现场离线记录、回网一键回写"的闭环方案,并给出可直接落地的工程实现。

2601_96352604的博客 260

FastAPI

FastAPI 是一个基于 Python 类型提示构建的现代、高性能 Web 框架,专门用于快速开发 API。它的核心设计理念是让你用标准 Python 写代码,就能同时获得数据校验、自动文档和编辑器支持。

hcgeng的专栏 308

从软件工程 1.0 到 3.0:研发方式如何演进,工程体系如何延续

一个退款功能,从提出需求到上线,需要完成多少工作?业务人员可能只说了一句“用户付款后可以申请退款”,团队就要继续明确:发货后还能退吗?允许部分退款吗?重复提交会不会重复退款?支付平台超时后,订单应该处于什么状态?规则明确之后,还要设计模块协作、实现代码、验证结果、安排发布,并观察上线后的行为。它把业务诉求转化为可运行、可验证、可持续维护的软件,并协调参与其中的人、技术和资源。《软件工程 3.0》用三个阶段描述这一体系的演变。

hiliang521的博客 413

Spring 高频面试题:用一次用户注册串起 IoC、AOP、事务和 MVC

学 Spring 时,我最容易混淆的是这些「看起来一样」的操作:调用业务方法和向容器取 Bean,调用目标对象和调用代理,方法正常返回和事务成功提交。把它们放进同一个例子里,很多面试题就能顺着调用路径推出来。假设我们要实现一个注册接口:前端发来,Controller 接收用户名,Service 在数据库里创建用户和默认资料。下面用这条链路理解 Spring 的几个核心机制。代码是用于讲解的片段,省略了导入、依赖声明和数据库实现。

weixin_42927227的博客 340

CI-CD详解-从GitLab流水线到Runner自动化部署

代码从提交到上线,中间隔着检查、构建、部署一长串重复动作,靠人盯既慢又容易出错。CI/CD 就是把这套流程自动化、标准化的工程实践。本文以 GitLab 为例,从概念、流水线、Runner 一直讲到怎么把 Claude Code 这类 AI 工具挂进流水线,把整个机制串清楚。把"用了 GitLab"等同于"全流程自动化":有些公司只做了 MR 自动检查;有些做到镜像构建;有些能自动部署生产。自动化到哪一步,取决于配置,不取决于工具。别想当然。流水线通过 ≠ 业务正确。

勇往直前的博客 399

SCA:五、配置统一网关geteway

本文基于SpringBoot 4与SCA 2025.1.0.0,结合Nacos、OpenFeign,演示了Gateway模块的完整搭建流程:创建gateway-server模块,配置POM依赖(含WebMvc网关、Nacos发现、负载均衡等),编写YAML路由配置(实现路径映射与负载均衡),添加启动类并启用服务发现。通过访问/provider/hello/jangle测试网关路由转发功能,验证了基于Nacos的服务注册与动态路由能力,实现了微服务统一入口的高效集成。

博风_刺耳的博客(网络记事本) 212
上一篇: shellcode绕过kav6
下一篇: Microsoft Excel 2000/2003 Sheet Name Vulnerability PoC
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值