利用binfmt_misc机制加快CGI的调试
Android保护机制及内核漏洞利用总结
qwb2024_prpr
GeekCon2024 AVSS Writeup
GEEKCON 2024 TI C2000 DSP Chip Hacking: 绕过德州仪器C2000芯片的CSM/DCSM安全保护机制
Palo Alto CVE-2024-3400漏洞分析
WebAssembly安全研究总结
WebAssembly 安全研究总结
WebAssembly是什么
WebAssembly(简称wasm) 是一种可移植、体积小、加载快并且能够在浏览器上运行的一种程序文件。其能够在JavaScript通过接口进行调用执行。开发者们一直都比较关心JS的运行速度问题,V8引擎在JS的运行速度方面做了巨大的优化,但是少数情况下我们进行大量本地运算的时候,仍然可能遇到性能瓶颈,这个时候webassembly的作用就凸现出来了。例如AutoCAD利用编译器将其沉淀了30多年的代码直接编译成WebAssembly,同时性能基于之前的普通Web应用得到了很大的提升。
C/C++/Rust源代码可以被编译为WebAssembly文件,然后JS层就可以对其进行调用。WebAssembly文件中存储着字节码,位于JavaScript引擎中的WebAssembly虚拟机将会执行字节码。字节码的执行有两种方式,一种是在运行时边读取opcode边执行,另一种则是在执行前将整个WebAssembly JIT翻译为本地汇编代码,然后直接跳转到汇编代码执行。V8采用的是第二种方式。
qwb2023_warmup23
菜单题,add功能有一个off by null,glibc为2.35

Glibc 2.25 会检查P->fd->bk == P && P->bk->fd == P && size == prev_size,可以将large bin申请回来后,利用原来残留在fd_nextsize,bk_nextsize的指针来作为fakechunk的fd和bk,那么只需要在fd_nextsize对应堆块的bk位置低字节覆盖指向P,同理bk_nextsize对应堆块的fd位置低字节覆盖指向P,由于add时会添加’\0’,因此覆盖最少为2字节,这会导致指针的第2字节固定为0,那么就需要构造堆风水使得fakechunk的地址以X0YY结尾,由于ASLR的原因,X可以出现为0的时候,成功率为1/16。
伪造好chunk以后,利用off by null修改下一个堆块的prev_in_use,然后释放后unlink构造overlap chunk,最后先申请到_IO_2_1_stdout_劫持,泄漏environ拿到栈地址,然后申请到栈上写ROP。