Poison null byte



Project Zero released a post about a GLIBC NULL byte off-by-one exploitation in 2014,Poison null byte 是一种利用off-by-null即可实现的heap based漏洞利用技术,它的基本思想是通过one-by-null覆盖next chunk的SIZE,构造fake chunk利用unlink,最终构造Chunk overlap。
它是Shrink freed chunk的加强版,能够bypass libc unlink中对的nextchunk的prev_size与chunk的size的检查。

Continue reading

Chunk Overlaping



chunk overlap 堆块重叠,是一种用于漏洞利用的堆排布技术,无论是能够造成8~16字节以上的大范围溢出,还是仅溢出一个字节的off-by-one,都有可能造成chunk overlap,灵活运用堆排布构造chunk overlaping 能够得到很powerful的漏洞利用效果。

Continue reading

Pwnable.tw BookWriter

Continue reading

ICQ Baidu December Pwn



what_the_fuck

Continue reading

ICQ Baidu November Pwn



pwnme

Continue reading

Pwnable.tw start-orw-calc



start

题目的binary很小
没有开启NX,考虑注入shellcode,思路大致如下:

  • 1.泄露栈地址leak stack
  • 2.控制shellcode,由于程序溢出最多60个字节,shellcode尽量控制在30个字节以内,否则会被截断
  • 3.计算offset,跳转到stack上执行shellcode

orw

程序写shellcode地址,之后跳转到shellcode执行,shellcode地址在bss段上,所以程序开启的canary没有意义

由于限制了只能够使用open,read,write等syscall,所以也就是需要自己写shllcode,大致流程如下:

由于flag比较长,至少0x30才能够接收到完整的flag

calc



reverse

题目实现了一个简单的计算器解释器,是通过两个栈来实现的,一个栈保存运算的结果,另一个栈保存所有的运算符。

Continue reading