当前位置:首页 > 实用技巧 >

webkit代码调试

来源:原点资讯(www.yd166.com)时间:2023-06-18 18:29:11作者:YD166手机阅读>>


webkit代码调试,(1)

今年的Pwn2Own比赛刚刚结束,在Pwn2Own温哥华站的比赛中,Fluoroacetate团队所使用的一个Webkit漏洞成功吸引了我的注意。这个漏洞是一个价值五万五千美金的漏洞利用链的一部分,在这篇文章中,我将会对这个漏洞进行深入分析,并对漏洞进行验证和研究。

当然了,在开始深入分析之前,我们先把该漏洞的概念验证PoC提供给大家:

webkit代码调试,(2)

首先,我们需要对受该漏洞影响的WebKit版本进行编译,即Safari v12.0.3版本,根据苹果的版本发布信息,该版本对应的是修订版v240322。

svn checkout -r 240322 https://svn.webkit.org/repository/webkit/trunk webkit_ga_asan

我们可以使用AddressSanitizer(ASAN)来完成编译操作,它可以允许我们在发生内存崩溃的时候第一时间检测到错误信息。

ZDIs-Mac:webkit_ga_asan zdi$ Tools/Scripts/set-webkit-configuration --asan ZDIs-Mac:webkit_ga_asan zdi$ Tools/Scripts/build-webkit # --jsc-only can be used here which should be enough

我们将使用11db来进行调试,因为macOS本身就自带了这个工具。由于PoC中没有包含任何的呈现代码,因此我们需要在11db中使用JavaScriptCore(JSC)来执行它。为了在11db中执行jsc,我们需要调用它的二进制代码文件,而不是之前的脚本run-jsc。这个文件可以从 WebKitBuild/Release/jsc路径获取,并且需要正确设置环境变量。

env DYLD_FRAMEWORK_PATH=/Users/zdi/webkit_ga_asan/WebKitBuild/Release

我们可以在11db中运行这条命令,或者把它放在一个文本文件中,然后传递到11db -s中。

ZDIs-Mac:webkit_ga_asan zdi$ cat lldb_cmds.txt
env DYLD_FRAMEWORK_PATH=/Users/zdi/webkit_ga_asan/WebKitBuild/Releaser

好的,接下来,我们可以开始调试了:

webkit代码调试,(3)

我们可以看到,代码在0x6400042d1d29处发生了崩溃:mov qword ptr [rcx 8rsi], r8,经分析后我们确认为越界写入所导致的内存崩溃。栈追踪分析显示,它发生在虚拟机环境中,也就是编译过程或者JITed代码出了问题。我们还注意到的rsi索引,它包含了0x20000040,这个数字我们在PoC中是有见过的。

webkit代码调试,(4)

栏目热文

实验性webkit功能怎么设置(如何恢复试验性webkit设置)

实验性webkit功能怎么设置(如何恢复试验性webkit设置)

苹果于北京时间2020年2月6日凌晨推送了 iOS 13.4 的第一个 beta 版本。随着几天的应用,又发现了一些更新...

2023-06-18 18:25:01查看全文 >>

webkit怎么设置(safari怎么设置为webkit)

webkit怎么设置(safari怎么设置为webkit)

IE与WebKit内核Windows系统上的浏览器目前使用比较多的有两大内核,分别是Trident(也称之为IE内核)和...

2023-06-18 18:29:11查看全文 >>

webkit功能(webkit功能选项详解)

webkit功能(webkit功能选项详解)

导语:本文从市面主流的浏览器及相应的内核引擎开始,介绍了Chromium为代表的浏览器架构及Blink内核的功能架构。C...

2023-06-18 17:57:21查看全文 >>

webkit开发教程(WEBKIT用什么语言开发的)

webkit开发教程(WEBKIT用什么语言开发的)

在这篇教程中,我们会用 Python 的 PyQt 框架编写一个简单的 web 浏览器。关于 PyQt ,你可能已经有...

2023-06-18 18:22:58查看全文 >>

试用性webkit功能怎么设置

试用性webkit功能怎么设置

Safari 对于 iPhone 用户来说一定不陌生。作为内置浏览器,Safari 干净、安全、迅速又强大。无论是网页搜...

2023-06-18 17:50:41查看全文 >>

webkit浏览器设置(safari浏览器webkit改了怎么恢复)

webkit浏览器设置(safari浏览器webkit改了怎么恢复)

作为一个广受好评的浏览器引擎,其网页布局的质量(包括速度、效率、符合标准度等)往往是其关键,那么WebKit究竟是如何布...

2023-06-18 18:32:17查看全文 >>

webkit使用说明书(webkit功能可以全部关闭吗)

webkit使用说明书(webkit功能可以全部关闭吗)

使用模拟浏览器作为爬虫手段的原因:使自己的爬虫更像用户的操作行为和往往在异步加载中某些请求很难构造;在我们日常开发中,经...

2023-06-18 18:21:13查看全文 >>

webkit应用(webkit有哪些)

webkit应用(webkit有哪些)

整理 | 祝涛 出品 | CSDN(ID:CSDNnews)著名的苹果博主John Gruber最近掀起了一场网络纷争,...

2023-06-18 18:10:25查看全文 >>

webkit怎么调整(webkit是什么功能)

webkit怎么调整(webkit是什么功能)

导读目前,在两大主流移动智能操作系统iOS和Android上,默认的浏览器内核都是WebKit,而且分别以Framewo...

2023-06-18 18:29:02查看全文 >>

webkit 手册(webkit功能需要全部打开吗)

webkit 手册(webkit功能需要全部打开吗)

openKylin用户手册是详细描述openKylin操作系统的功能和用户界面,让用户了解如何使用该软件的说明书。通过阅...

2023-06-18 18:22:12查看全文 >>

文档排行