原创作者:萌新

0x01前言

这一系列文章为pwnable.krToddlr’s Bottle的全部题解,其中有三道题目相对而言稍难或者说比较经典,单独成篇,其他题目的题解放在一起发出来。

本文涉及知识点靶场练习——缓冲区溢出基础与实践:主要介绍了缓冲区溢出基础与实例,通过本实验的学习,你能够了解缓冲区溢出的原理与危害,掌握防范缓冲区溢出的基本方法,学会进行常见的缓冲区溢出攻击。

0x02fd

Ssh连接

看一下目录

我们需要执行flag,或者查看flag的内容

看题目的提示就知道这题和文件描述符有关

看看源码

在代码中我们可以看到要通过strcmp()比较后会输出

查看strcmp的用法

可知,strcmp()中,若参数s1和s2字符串相同则返回0,s1大于s2则返回大于0的值,s1小于s2则返回小于0的值。

代码中要cat flag执行的话if语句应满足strcmp返回0,即buf的内容应为LETMEWIN

那么buf的值哪来的呢

man read可知

buffer的值由read控制,从fd读入count个字节内容

fd在代码中的值为atoi(argv[1])-0x1234

atoi()用于把字符串转换为整数

由linux下文件描述符可知(源码在/usr/include/unistd.h)

即文件描述符0表示标准输入,也就是我们可以从命令行中控制的。

Atoi接收的参数我们可以控制,只要令argv[1]为0x1234(argv[0]为程序名称,argv[1]为输入参数),0x1234十进制为4660,经过运算最后赋值给fd的就是0,然后再传入read(),由于fd为0,所以我们在命令行中输入什么,则在buffer中写入的就是什么,只要输入LETMEWIN就可以了

分析完毕,接下来测试一下

通过,logout关闭ssh连接

0x02collision

看题目描述应和哈希碰撞相关

看看源代码

在main()中看到传入的argv[1]需要满足条件:

长度为20字节,传给check_password后的返回值为硬编码的0x21dd09ec

那么我们需要来看一下check_password的逻辑

可以看到传参为char型指针,在逻辑中被强制类型转换为int型指针

从大小的角度来看即1字节转换为4字节,一共20字节,20/4=5,刚好对应for循环里的5次,for循环是做了个累加的操作,即累加和等于0x21DD09EC即可

emmm简单理解,就是说输入20字节,每4字节一组,共5组,5组相加后等于0x21dd09ec即可。

这就很简单了

我设16个字节为0x1,那么另外的4字节应为差值0x1dd905e8,又因为小端序,所以写的时候倒过来写即可,如下所示

0x03bof

根据题目描述这是一道缓冲区溢出的题目

下载bof及其代码

看看源码

看到main中调用了func,传参为0xdeadbeef

而func()中可以看到需要传参为0xcafebabe才可以getshell

我们注意到func中我们可以通过gets控制输入,gets像本题的这种用法是非常危险的,容易造成缓冲区溢出攻击,这次我们就来pwn掉它

我们尝试输入写字符看看

那么基本的思路有了,就是找到确定的偏移,然后使用0xcafebabe覆盖0xdeadbeef。

偏移是多少呢

配合gdb来看看

在main下断点

输入r启动

在断点处停下了

我们反汇编func看看比较key和0xcafebabe指令在哪儿

看到上图的红框中的cmp指令了,这就是关键

可以看到地址是0x56555654

在这里下个断点

按c继续执行

命中第二个断点后,我们来看看栈的布局

可以看到0xdeadbeef在0xffffd330,而我们输入的A是从0xffffd2fc开始

emmm,数一下,从最开始的0x41到0xdeadbeef之前查了13*4=52个字节,在53-56处写入0xcafebabe覆盖掉原有的0xdeadbeef即可

编写pwntools脚本

from pwn import *payload = 'A' * 52 + '\xbe\xba\xfe\xca'shell = remote('pwnable.kr',9000)shell.send(payload)shell.interactive()

测试如图,打回了一个shell

未完待续!

实践操作——《缓冲区溢出基础与实践》:主要介绍了缓冲区溢出基础与实例,通过本实验的学习,你能够了解缓冲区溢出的原理与危害,掌握防范缓冲区溢出的基本方法,学会进行常见的缓冲区溢出攻击。

实验:http://www.hetianlab.com/expc.do?ec=9613f998-8cd2-4981-9bc5-9900c97371de

萌新带你开车上p站(一)相关推荐

  1. 萌新带你开车上p站(二)

    本文作者:萌新 前情提要:萌新带你开车上p站(一) 0x04flag  看题目描述似乎是一个和脱壳相关的逆向题目 按照给出的地址先下载过来 file看看 是个可执行文件 执行之 emm什么都看不出来, ...

  2. 萌新带你开车上p站(完结篇)

    本文原创作者:萌新 前情提要: 萌新带你开车上p站(一) 萌新带你开车上p站(二) 萌新带你开车上P站(三) 萌新带你开车上P站(IV) 回顾一下前篇,我们开始新的内容吧 0x16memcpy 源码在 ...

  3. 萌新带你开车上p站(Ⅳ)

    本文原创作者:萌新 前情提要: 萌新带你开车上p站(一) 萌新带你开车上p站(二) 萌新带你开车上P站(三) 回顾一下前篇,我们开始新的内容吧 0x12 登录后看源码 通读程序,逻辑是这样子的: 输入 ...

  4. 萌新带你开车上p站(三)

    本文原创作者:萌新 前情提要: 萌新带你开车上p站(一) 萌新带你开车上p站(二) 0x08 题目给的提示是和运算符优先级有关 登录后直接看源码 mistake@pwnable:~$ lsflag m ...

  5. 萌新带你开车上p站(终极番外)

    本文由"合天智汇"公众号首发,作者:萌新 0x01前言 这关其实和pwn关系不大,主要考察的都是linux下一些函数的操作,考察linux的基本功.涉及到的知识点包括一些经典的函数 ...

  6. 萌新带你开车上p站(番外篇)

    前言 这道题目应该是pwnable.kr上Toddler's Bottle最难的题目了,涉及到相对比较难的堆利用的问题,所以拿出来分析. 登录 看看源程序 程序中有几点要注意的地方: 1. 定义的OB ...

  7. 萌新学习Python爬取B站弹幕+R语言分词demo说明

    代码地址如下: http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这 ...

  8. 【新手宝典】一篇博文带萌新建站并了解建站体系流程和对萌新友好的便捷方式,这篇博文很有可能是你的启蒙文

    前言 本片博文主要面向于还没接触过web开发的萌新,以及想知道整体流程并且完成建站的萌新:如果你是个大佬,就没必要看下去了. 本篇博文没有难啃的骨头,请各位萌新放心食用. 本篇博文采用通俗易懂的方式讲 ...

  9. 萌新卷妹带你逃出算法无名岛第五站

    萌新卷妹带你逃出算法无名岛第五站

最新文章

  1. android学习笔记之ImageView的scaleType属性
  2. 【并发编程】Atomic与CAS
  3. 1.A+B Problem
  4. - (NSString *)description
  5. centos mysql 安装 yum源_Linux - CentOS 7 通过Yum源安装 MySql 5.7
  6. python问题分享_零基础入门Python常见问题分享
  7. 数据创建表 修改列 新增列
  8. 14. Window clearInterval() 方法
  9. 安卓rom制作教程_【教程】一加5/5T刷入第三方ROM教程
  10. 二次录入已经OUT! 4S店销售用小帮软件机器人教你做人!
  11. 计算机组成原理(第3版)唐朔飞著 知识点总结 第五章输入输出系统
  12. 视频教程-一小时搞定简单VBA编程 Excel宏编程快速入门-Office/WPS
  13. 前端实现动画的7种方式
  14. 主流移动开发平台介绍
  15. 中等分辨率卫星影像幅宽大比拼
  16. Android定制开机动画与logo
  17. 当 Spring Cloud 遇上 SOFAStack | Meetup#2 回顾
  18. source not found解决方法(亲测)
  19. 利用Python转换密文
  20. 算法高级(20)-集群容错算法

热门文章

  1. 阿里企业邮箱smtp设置(实践)
  2. 极客日报第 37 期:苹果官网出现价格 Bug;大众 CEO点评“苹果造车”;Spring Cloud 2020.0 正式发布
  3. EGo1下板_数码管动态显示
  4. 企业微信开发(自建应用h5)
  5. 离散型随机变量及其分布列
  6. MySQL笔记(狂神说)
  7. Captura – 带键盘按键录制的录屏工具,支持直播[Windows]
  8. gitlab-runner 三种runner创建和和使用
  9. 【探花交友DAY 08】左滑不喜欢右滑喜欢以及附近的人
  10. 帝国塔防2 empire defence 2的攻略