看到题目的内容,就知道大概是格式化漏洞了,

马上扔到IDA看个究竟。

不出所料,就是printf的格式化输出漏洞

思路:

1、利用格式化漏洞覆盖任意地址的值,这里我们需要覆盖secret的值,所以先要找到secret的地址,在IDA中,可以看到secret在bss段:

得到secret的地址后,我们就可以对它的值进行覆盖,覆盖成192

2、利用%k$n(k$用于获取格式化字符串中的指定参数)对指定地址进行覆盖

(%n,不输出字符,但是把已经成功输出的字符个数写入对应的整型指针参数所指的变量

3、在栈中找到format的位置和 char s的位置,计算出他们的偏移

我们用gdb把断点定在printf处

然后运行,提示输出后,我就随便输入一个 %d%d

观察栈的信息:

可以看出,printf的第一个参数(format)地址为:0xffffd920

这个format指向0xffffd94c,指向的这个就是我们char s的地址

有了这两个地址后,我们就可以计算format与char s的地址偏移,

offset = 0xffffd94c - 0xffffd920 = 0x2c = 44

由于这是32位程序,所以每个format参数占4个字节,即有44/4=11个参数,也就是说,第11个参数的地址,就是我们char s开始的地址。

所以 k=11。

我们把secret的地址放到char s开始的地方,那第11个参数的内容就是secret的地址。

这样,我们的%11$n就会把输出字符的个数写进secret。

所以们需要在 %11$n 构造 192 个字符,即%192d,

但由于我们在char s开始的地方放下了secret的地址,占了4个字节,所以只需要填充188个字符即可,也就是%188d

payload:

from pwn import *
io=process('./format')
io=remote('117.50.13.182', 33865)
payload = p32(0x0804A048) + '%188d' + '%11$n'
io.sendline(payload)
io.interactive()

本人萌新,大佬可以不看。- -

2018 百越杯 pwn(format WriteUp)相关推荐

  1. 2018 百越杯 pwn(Boring Game Write up)

    拿到题目,发现有libc库,想到应该就是要用到ret2libc了 先把pwn扔到IDA看看先 发现有明显的溢出漏洞. 发现程序是32位,且只开启了NX保护 利用思路: 1.泄漏__libc_start ...

  2. 2018福建省“百越杯”CTF初赛writeup

    2018福建省"百越杯"CTF初赛writeup PWN Boring Game 题目描述 nc 117.50.59.220 12345 解题经过下载下来后有两个文件pwn和lib ...

  3. 2018“百越杯”第四届福建省高校网络空间安全大赛部分题目writeup

    2018"百越杯"第四届福建省高校网络空间安全大赛writeup 0x00题目存档: 链接: https://pan.baidu.com/s/1v59VfheEC5XY8vyKvg ...

  4. 第五届百越杯线上赛部分WP

    Web BabyPHP 一访问容器就给了PHP代码 <?php error_reporting(1); class Read {private $var;public function file ...

  5. 百越杯 Reverse (crazy write up)

    拿到程序后,先常规跑一跑: 然后我就把它扔到IDA看看 IDA SHIFT + F12 看到flag关键字,于是我就点击进去,并查看交叉引用 由此分析可以得出,flag可能是在if判断正确后输出的 于 ...

  6. 2019百越杯初赛——哈尔的移动城堡

    0x04 哈尔的移动城堡 操作内容:下载文件,得到一个压缩包,压缩包里有两张图片,第一张 102%,打开winhex,改文件头 把89474E50改为89504E47,再把文件的后缀名改为" ...

  7. 2018湖湘杯海选复赛Writeup

    2018湖湘杯Writeup 0x01 签到题 0x02 MISC Flow 0x03 WEB Code Check 0x04 WEB Readflag 0x05 WEB XmeO 0x06 Reve ...

  8. 2018“云移杯- 景区口碑评价分值预测

    2018"云移杯- 景区口碑评价分值预测 (初赛第9) github链接:https://github.com/demonSong/DF_CCF_CONTEST 前言 实在太忙,找实习,天池 ...

  9. 2018年华为杯数学建模获奖名单挖掘分析

    2018年"华为杯"数学建模获奖名单挖掘分析 本文针对2018年"华为杯"数学建模6张拟获奖名单做一次简单的统计分析,以下分析结果仅代表思路,勿要以假乱真,权威 ...

最新文章

  1. 计算机网络课程复习大纲
  2. C++中无符号数与有符号数的转换
  3. Linq to Sql : 动态构造Expression进行动态查询
  4. Android -- 再来一发Intent
  5. linux内核杂记(4)-线程(1)
  6. ubuntu下使用apt安装mysql_Ubuntu下通过apt包管理安装mysql
  7. 将基于 .NET Framework 的 WPF 项目迁移到基于 .NET Core 3
  8. SAP BSP应用configuration的加载原理
  9. 用计算机怎么弹离人愁数字,拇指琴新手入门曲谱——离人愁
  10. linux 关闭scp服务器,Linux系统如何关闭scp和sftp命令
  11. 看看大货车到底有多少盲区,肯定用得到!救命的!
  12. GP学习(十)-Mosaic raster datasets to a file raster format
  13. php Tsocket read 0,thrift 返回 TSocket read 0 bytes 求助!!!!汗血宝马
  14. 计算机自动关机命令,电脑自动关机命令是什么?你都知道吗?
  15. 《高等代数学》读书笔记前言
  16. python卸载pip_python 怎样卸载pip
  17. 破解Windows系统密码---利用PE系统破解
  18. 攻防世界----confusion1
  19. 在linux虚拟机中进行jdk1.8的安装与环境变量的配置
  20. 基于大数据的中文舆情分析

热门文章

  1. AI一分钟|百度与中国联通成立“5G+AI联合实验室”;SpaceX将向国际空间站发送AI机器人...
  2. 上海大学建了一个“突发事件语料库”,包括地震、恐怖袭击等5大类
  3. TensorFlow 1.8.0正式发布,Bug修复和改进内容都在这里了
  4. 9名华人当选,包揽总人数1/6!2017 ACM Fellow名单公布,华人强势亮相
  5. MyBatis 一个简单配置搞定数据加密解密!
  6. Netty结合Protostuff传输对象案例,单机压测秒级接收35万个对象
  7. 又一款Markdown组合神器!!!
  8. Java泛型背后是什么?
  9. 关于 CPU 的一些基本知识总结
  10. 图解Transformer(完整版)!