Binary Exploitation - Linux - Basic

tags: Security PWN

Online Resources

Angelboy/stack overflow Angelboy/ROP Angelboy/Sigreturn Oriented Programming Angelboy/Return to dl-resolve

Vulnerability

Stack Overflow

Fuzzing

如果一次塞太多 overflow 可能會造成不在預期的結果,還是要漸進式的把 overflow 的數量加上去。

Format String

GOT Hijacking

Return Oriented Programming

ret2shellcode

ROP gadget

ret2plt

ret2libc

OneGadget

Return to dl-resolve

ret2csu

位於 __libc_csu_init ,尾端有一段很好用的 gadget

  • 透過控制 rbp rbx r12 r13 r14 r15 registers 的值,跳至 gadget 開頭, r13 r14 r15,分別放置前三個參數 rdi rsi rdx,此部分解決了很少找到 pop rdx gadget, ROP 很難控制第三個參數的問題
  • 控制 r12 rbx 來指定任意記憶體位置 call [r12+rbx*8]
  • 將 rbx 設為 0,將 rbp 設為 1,在 call 完後使 rbx == rbp == 1, jne 不會 take,而繼續執⾏行後面的連續 pop register,如此可重複使用,達到任意 ROP

Sigreturn Oriented Programming

Return to vDSO

Stack Pivoting (Stack Migration)