leakless
- x86 elf | nx
- 漏洞 : 棧溢出
- 利用 :
- 使用 puts leak libc , 并第二次進(jìn)入漏洞函數(shù)
- system("/bin/sh") getshell
casino
- x64 elf | full relro , canary , nx
- 漏洞:
- 格式化字符串
- 使用 time(0) 作為隨機數(shù)種子 , unix 時間戳 10秒內(nèi)不變
- 利用過程:
- 使用 格式化字符串 修改全局變量 bet 使其大于 1
- 使用 cdll 導(dǎo)入 libc 的庫 山卦, 從而使猜對99 次后涯穷,得到的點數(shù) 99 * bet 大于 100 立轧,滿足 點數(shù)大于 100 , 獲取flag
babyheap
- x64 elf | nx
- 功能分析:
- create , edit , delete , show 正常功能 , 分配的 size 固定為0x60 , 輸入的 size 固定為 0x40
- 特別的限制 : 每個函數(shù)有一個 flag 標(biāo)志 , 使用之后flag = 1 ,限制不能使用
- delete 函數(shù) 會將 create 的函數(shù)標(biāo)志 設(shè)置為 false , 使其可再次被使用
- bak_malloc , 輸入的數(shù)字 為 1337 時, 可使用后備的malloc 函數(shù), 多分配一次
- 漏洞:
- delete函數(shù) uaf
- 利用思路:
- 根據(jù) uaf 使用 fastbin attack 分配 chunk 到 (0x602095 - 8)
- 覆蓋 buf 地址 為 got 表地址 , 并重置所有標(biāo)志為 false
- 使用 show 函數(shù) 泄露 libc
-
- 使用 edit 函數(shù)劫持 got 表, 從而執(zhí)行 one_gadget 或者 system("/bin/sh")
- 4.1 system("/bin/sh") , 劫持 atoi
quote_list
- x86 elf | Full Relro , canary , nx , pie
- 漏洞點:
- edit 函數(shù)可以多輸入一個字符 , off by one
- 利用思路
- 使用 off by one 進(jìn)行 chunk overlap , 從而造成堆溢出
-
- 利用 unsorted bin attack leak libc 地址
- tip:此處 chunk 需要大于 0x400
- 根據(jù) 堆溢出 使用 fastbin attack 進(jìn)行 __realloc_hook 劫持 (直接劫持 __malloc_hook 不滿足使用條件) , 從而使用 one_gadget
- 調(diào)用 create 觸發(fā)