
一个利用 CVE-2018-4441 在 PS4 6.20 上实现远程代码执行(RCE)的 WebKit 漏洞利用程序。
该仓库包含一个针对固件 6.20 的 PlayStation 4、利用 CVE-2018-4441 的概念验证(PoC)RCE 漏洞利用程序。该漏洞利用首先在 wkexploit.js 中建立任意读/写原语以及任意对象地址泄露。随后它会在 index.html 中搭建一个用于运行 ROP 链的框架,并默认提供两个用于运行测试 ROP 链的超链接——一个用于运行 sys_getpid() 系统调用,另一个用于运行 sys_getuid() 系统调用,以分别获取进程的 PID 和用户 ID。
每个文件顶部都包含一段注释,简要说明文件内容以及漏洞利用的工作原理。该漏洞的发现归功于 Google Project Zero (p0) 的 lokihardt。漏洞报告可以在此处找到。
注意:该漏洞已在 6.50 固件更新中修复。
文件按名称字母顺序排列如下;
index.html - 包含漏洞利用后的代码,从任意读/写通向代码执行。rop.js - 包含 ROP 链的框架。syscalls.js - 包含用于漏洞利用后操作的(不完整的)系统调用列表。wkexploit.js - 包含 WebKit 漏洞利用的核心。p.launchchain() 方法可能需要替换。syscalls.js 只包含少量系统调用的部分原因。使用 xampp 或你选择的任何其他程序,在 localhost 上搭建一个托管这些文件的 Web 服务器。另外,你也可以将其托管在服务器上。你可以通过以下任一方式在 PS4 上访问它:
伪造 DNS 欺骗,将手册页面重定向到漏洞利用页面,或者
使用 Web 浏览器导航到漏洞利用页面(并非总是可行)。
我编写了该漏洞利用程序,但我并未发现该漏洞。如上所述,该漏洞(CVE-2018-4441)由 Google Project Zero (p0) 的 lokihardt 发现,并通过 Chromium 公共漏洞跟踪器公开披露。
Chromium 漏洞报告 - 该漏洞。
Phrack: Attacking JavaScript Engines by saelo - 救命稻草。没有这篇神作,利用这个漏洞的难度将提高大约 1500 倍。
lokihardt - 漏洞发现
st4rk - 漏洞利用方面的帮助
qwertyoruiop - WebKit School
saelo - Phrack 论文