跟随他们 初步公告 和最近 PS4 WebKit 7.00-7.02利用Talos WebSocket漏洞探针 ,今天 abu_y0ussef 和 0xdagger 通过 突触 分享于 黑帽欧洲2020 Webkit利用 6.XX PS4固件上的任意R / W(读/写)权限 对于 PS4场景 开发人员进一步检查。 
下载: PS4-webkit-exploit-6.XX-master.zip / GIT / eu-20-Meffre,这是为玩家开发的Webkit-0day-Playstation4.pdf
这是继续 PS4 6.XX JSC_ConcatMemcpy WebKit漏洞利用PoC, PS4 6.20 WebKit代码执行漏洞利用PoC, 适用于PlayStation 4固件6.XX的PS4 Webkit Bad_Hoist漏洞利用 和 适用于7.02固件的PS4内核利用(KEX) 与开发商 sleirsgoevy 分享这个 此链接 通过 推特 那 越狱PS4 5.05控制台 所有者可以访问以帮助收集统计信息以用于移植 BHEU漏洞利用 到7.02系统软件。
以下是总结 这是针对Pwners的:在PlayStation 4中利用WebKit 0-day 来自的演讲 突触 .com, 去引用:
代码执行
PS4浏览器不允许分配RWX内存页面。但是通过任意R / W,我们可以控制RIP寄存器。例如,我们可以覆盖先前喷洒的HTMLTextAreaElement之一的vtable指针,使其指向我们控制的数据。在HTMLTextAreaElement上调用JavaScript方法将导致对我们控制下的地址的调用。从那里,我们可以重复使用代码(例如ROP或JOP)来实现下一阶段。
该漏洞可在以下网址获得: 突触 的Github存储库.
在7.xx固件上移植漏洞利用程序
由于ASLR实施存在缺陷,因此我们能够成功利用6.xx固件上的错误,从而可以预测HTML对象的地址。可预测的地址在漏洞利用程序中进行了硬编码,并且由于使用了不正确的漏洞利用程序而已被识别。但是,在没有内存映射的先验知识的情况下,确定所喷洒的HTMLElement对象的地址的唯一方法是强行使用该地址。
由于浏览器需要用户交互才能重新启动,因此PS4上的暴力破解非常乏味。我们的想法是插入充当PS4键盘的Raspberry Pi。其主要目标是在崩溃后定期(5s)按下Enter键以重新启动浏览器。强制暴力地址在每次尝试时都会更新,并存储在cookie中。
不幸的是,到目前为止我们没有得到任何结果。我们可能没有足够长的时间来运行蛮力来覆盖整个地址空间。
从 Pastebin.com:
一些有效的7.02地址:
下载: PS4-webkit-exploit-6.XX-master.zip / GIT / eu-20-Meffre,这是为玩家开发的Webkit-0day-Playstation4.pdf
这是继续 PS4 6.XX JSC_ConcatMemcpy WebKit漏洞利用PoC, PS4 6.20 WebKit代码执行漏洞利用PoC, 适用于PlayStation 4固件6.XX的PS4 Webkit Bad_Hoist漏洞利用 和 适用于7.02固件的PS4内核利用(KEX) 与开发商 sleirsgoevy 分享这个 此链接 通过 推特 那 越狱PS4 5.05控制台 所有者可以访问以帮助收集统计信息以用于移植 BHEU漏洞利用 到7.02系统软件。

以下是总结 这是针对Pwners的:在PlayStation 4中利用WebKit 0-day 来自的演讲 突触 .com, 去引用:
代码执行
PS4浏览器不允许分配RWX内存页面。但是通过任意R / W,我们可以控制RIP寄存器。例如,我们可以覆盖先前喷洒的HTMLTextAreaElement之一的vtable指针,使其指向我们控制的数据。在HTMLTextAreaElement上调用JavaScript方法将导致对我们控制下的地址的调用。从那里,我们可以重复使用代码(例如ROP或JOP)来实现下一阶段。
该漏洞可在以下网址获得: 突触 的Github存储库.
在7.xx固件上移植漏洞利用程序
由于ASLR实施存在缺陷,因此我们能够成功利用6.xx固件上的错误,从而可以预测HTML对象的地址。可预测的地址在漏洞利用程序中进行了硬编码,并且由于使用了不正确的漏洞利用程序而已被识别。但是,在没有内存映射的先验知识的情况下,确定所喷洒的HTMLElement对象的地址的唯一方法是强行使用该地址。
由于浏览器需要用户交互才能重新启动,因此PS4上的暴力破解非常乏味。我们的想法是插入充当PS4键盘的Raspberry Pi。其主要目标是在崩溃后定期(5s)按下Enter键以重新启动浏览器。强制暴力地址在每次尝试时都会更新,并存储在cookie中。
不幸的是,到目前为止我们没有得到任何结果。我们可能没有足够长的时间来运行蛮力来覆盖整个地址空间。
Code:
// code from the black hat repository
function sprayHTMLTextArea() {
textarea_div_elem = document.createElement("div");
document.body.appendChild(textarea_div_elem);
textarea_div_elem.id = "div1";
var element = document.createElement("textarea");
/* Add a style to avoid textarea display */
element.style.cssText = 'display:block-inline;height:1px;width:1px;visibility:hidden;';
/*
* This spray is not perfect, "element.cloneNode" will trigger a fastMalloc
* allocation of the node attributes 和 an IsoHeap allocation of the
* Element. The virtual page layout will look something like 那 :
* [IsoHeap] [fastMalloc] [IsoHeap] [fastMalloc] [IsoHeap] [...]
*/
对于 (let i = 0; i < 0x6000; i++)
textarea_div_elem.appendChild(element.cloneNode());
}
// end copy-paste
sprayHTMLTextArea();
var pr_buf = '';
function buf_print(s, last)
{
pr_buf += s + '\n';
}
function dumpAddresses()
{
对于 (var i = 0; i < textarea_div_elem.childNodes.length; i++)
{
var addr1 = addrof(textarea_div_elem.childNodes[i]);
var addr2 = read_ptr_at(addr1 + 0x18);
buf_print(i+" 0x"+(new Number(addr1)).toString(16)+" 0x"+(new Number(addr2)).toString(16), i == textarea_div_elem.childNodes.length - 1);
}
}
dumpAddresses();
print(pr_buf);
- 0x200eb00d8
- 0x200f300d8
- 0x200fb00d8
- 0x2011100d8
Code:
Fix 对于 the crash in leakJSC(): after debug_log("[+] 走 t a relative read"); insert var tmp_spray = {}; 对于 (var i = 0; i < 100000; i++) tmp_spray['Z'.repeat(8 * 2 * 8 - 5 - LENGTH_STRINGIMPL) + (''+i).padStart(5, '0')] = 0x1337;