<aside>
💡 Fortigate 经典的三个 RCE 漏洞。
距离笔者复现这些漏洞已经过去了数月有余,但是考虑到 VPN 设备漏洞的稀缺,以及复现过程中确实遇到了很多困难,积累了很多经验,故还是将其梳理成一篇文章。
鉴于许多文章已经对这几个漏洞做了非常详尽的分析,本文就只是简单的记录复现的过程,提及一些其他文章可能忽略的细节。
</aside>
Environment Setup
CVE-2022-42475
CVE-2023-27997
CVE-2024-21762
Conclusion
这几个漏洞各有侧重,不但很适合用来了解固件 HTTP 协议漏洞分析,同样也很适合作为练习漏洞利用技巧的题目:
- 漏洞一是 HTTP 协议解析层面比较简单的漏洞,漏洞利用关注了栈迁移和在固件环境的 ROP 编写技巧,很适合作为初步接触固件漏洞的练习。
- 漏洞二则是一个 HTTP 应用接口处理层面的漏洞,漏洞利用非常巧妙地利用了该漏洞的特性实现越界写,并且探讨了 jemalloc 上的堆风水技巧。
- 漏洞三是 HTTP 协议解析中逻辑比较复杂的漏洞,受限的缓冲区溢出使得漏洞利用非常具有技巧性,无论是覆盖指针的选择还是多级指针的解引用利用。
漏洞一和漏洞三都很适合作为特定的模式来在其他设备上做变种分析,以及用来增加 FUZZ 自动化揭露这些类型漏洞的能力。
References