find
题目分析:
start函数存在栈溢出
题目给出了后门函数,该函数的str全局变量的内容为/bin/sh
直接采用ret2text即可
exp:
|
|
sys
题目分析:
打开ida,发现存在很多函数,初步判断是静态链接的题目,其中start函数存在栈溢出
同时题目给出后门函数
正常打ret2text即可
exp:
|
|
ezUAF
题目分析:
ida打开题目,可以发现是堆题。漏洞点在del_note
通过观察add_note函数,新增的A堆块会通过另一个B堆块存储A堆块地址。其中B[0]存储print_note_content函数地址,b[1]存储A堆块地址。
通过阅读print_note函数发现,输出堆块内容的方式是通过调用B[0]存储的函数地址,输出B[1]地址指向的内容
同时本题提供了后门函数的利用
因此本题可以利用堆风水布局,申请B堆块空间,将B[0]更改为后门函数地址,同时利用UAF漏洞,调用后门函数。
exp:
|
|
chunk1
题目分析:
从vuln函数可看出,存在两次格式化字符串漏洞,并且两次读取都存在溢出。
题目给出了后门函数
同时本题的canary保护开启、PIE保护关闭,因此可以利用第一次格式化字符串,泄露canary值,第二次直接通过溢出覆盖vuln函数返回地址为后门函数地址即可。
exp:
|
|
try_sandbox
题目分析:
一道沙箱题,禁用了execve。
题目使用mmap开辟了一段rwx权限的空间(0x166000)
查看sub_40129e伪代码,存在栈溢出
因此利用思路是利用一次栈迁移,重复调用read(0,buf,0x80),将shellcode(orw)写入0x166000的地方,然后通过ret2text执行shellcode。
exp:
|
|
unk
题目分析:
打开后发现是堆题,题目同时存在UAF和堆溢出,没有额外限制(所以就不贴图了),同时远程libc版本为2.23-0ubuntu11.3_amd64,本题解题方法较多:
我这边采用UAF漏洞,通过unsortedbin chunk 泄露libc地址,然后通过fastbin attack改写__malloc_hook为one_gadget
exp:
|
|