调试crash的准备工作
下载 Webkit 源代码并编译:
1 | -> git clone git://git.webkit.org/WebKit.git WebKit |
切换到漏洞影响的分支
1 | git checkout -b localname commithash |
调试
使用的调试器是 lldb. 通过以下命令运行 Safari:
1 | -> Tools/Scripts/run-safari |
或者获取源码后直接在xcode里打开webkit,
测试
测试,找一个poc运行,可以看到asna打印uaf。
run-jsc
通过run-jsc这个script我们能打印出JIT的log
1 | sakura@sakuradeMBP:~/WebKit/Tools/Scripts$ pwd |
for-in-side-effects.js
1 | // Regression test for bug 179212 |
jsc运行报错
1 | sakura@sakuradeMBP:~/WebKit/WebKitBuild/Debug$ export DYLD_FRAMEWORK_PATH=~/WebKit/WebKitBuild/Debug |
其他
https://webkit.org/blog/6411/javascriptcore-csi-a-crash-site-investigation-story/