这是段错误导向编程(Segmentation Fault-Oriented Programming)利用技术的工件(artifacts)仓库。
这里我们简要描述本仓库中的工件。总共有八个不同的工件,包含六个 PoC 漏洞利用程序和两个针对真实世界程序(Nginx 和 Ladybird)的漏洞利用程序:
PoC:
bSFOP_ek:完整的 bSFOP 漏洞利用程序,使用一个链(chain)来注册信号,并通过 Early Kill 发起攻击。bSFOP_fixed:更易于调试的 bSFOP,手动注册信号并手动设置故障小工具(faulty gadget)来发起攻击。bSFOP_multistage:与 bSFOP_fixed 相同,但整个载荷不是在开始时一次性传输,而是分多个部分读取。chain:使用一条链注册 sigaction 的独立示例。fSFOP_ek:完整的 fSFOP 漏洞利用程序,使用一个链来注册信号,并通过 Early Kill 发起攻击。fSFOP_fixed:更易于调试的 fSFOP,手动注册信号并手动设置故障小工具(faulty gadget)来发起攻击。vulnerable-nginx:带有 CVE-2013-2028 漏洞的 Nginx 修改版本。展示了使用自定义信号注册链和 Early Kill 的 fSFOP。
vulnerable-ladybird:带有 CVE-2021-4327 漏洞的 SerenityOS 修改版本。展示了使用自定义信号注册链和 Early Kill 的 fSFOP。
每个文件都附带自己的 README。
每个 PoC 都已容器化(dockerized)。Docker 是唯一的软件要求。
运行 PoC 需要启用 CET。
为此:
我们的实验已在多台机器上测试,包括: