0x00 giaopwn
ret2text,没什么好讲的。有个cat flag的字符串,直接用。
1 | from pwn import * |
ret2text,没什么好讲的。有个cat flag的字符串,直接用。
1 | from pwn import * |
magic gadget其实是一类gadget的统称,指可以巧妙地实现某些目的的gadget。这里要讲的gadget只是众多magic gadget中的其中一个,可以在没法泄露libc地址的时候达到能够使用libc地址的目的。
这里要讲的gadget位于程序的__do_global_dtors_aux
函数中,偏移是0x18。
非常经典的没有回显的0x10字节溢出,栈迁移。第一件事就要先考虑怎么泄露出libc地址。我们选择将栈劫持到bss段。从汇编代码可知vuln函数栈帧开辟了0x30大小,所以把rbp劫持为某个选定的bss段+0x30,这样rbp就会跳到bss+0x30。
之前傻乎乎的在网上找资料学习的时候学得一头雾水,最近才忽然想到为什么不去roderick师傅的博客直接看本人的分析呢。然后发现roderick师傅写的是最详细最易懂的,推荐正在学习apple2的师傅直接去看。
我这里据两道题来分析,记录一下学习的过程。