bsauce / blog-comment

0 stars 0 forks source link

【Exploit trick】利用poll_list对象构造kmalloc-32任意释放 — bsauce #40

Open bsauce opened 2 years ago

bsauce commented 2 years ago

https://bsauce.github.io/2022/11/11/CoRJail/

【Exploit trick】利用poll_list对象构造kmalloc-32任意释放 (corCTF 2022-CoRJail)保护机制:SMAP, SMEP, KPTI, KASLR 及常用的保护机制,禁用了 msgget() / msgsnd() / msgrcv()。源码文件下载:https://github.com/bsauce/CTF源码文件下载:https://github.com/bsauce/CTF漏洞分析:kmalloc-4096 中的 off-by-one 漏洞,溢出写入一个NULL字节。利用总结:利用 poll_list 对象来构造任意释放,取代 msg_msg。需要用到子线程进行堆喷时(特别是喷射 poll_list 对象时会有阻塞,必须用子线程),调用 pthread_setaffinity_np() 将线程绑定到 core 0,进行无关操作(例如创建子线程的操作)则绑定到其他 core。 (1)泄露内核基址:通过溢出篡改 poll_list->next 构造任意释放,释放 user_key_payload 对象后,泄露重叠的 seq_operations->show 指针。 (1-1)喷射2048个 seq_operations 对象(位于 kmalloc-32)。注意,需打开