【PWN】学习笔记(三)【返回导向编程】(下)

目录

  • 课程
  • 回顾
  • ret2libc![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ebe1a9a9e54f4319946621dbe89c5774.png)
    • 做题
  • ret2libc2
  • ret2libc3

课程

课程链接:https://www.bilibili.com/video/BV1854y1y7Ro/?vd_source=7b06bd7a9dd90c45c5c9c44d12e7b4e6
课程附件: https://pan.baidu.com/s/1vRCd4bMkqnqqY1nT2uhSYw 提取码: 5rx6

回顾

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ret2libc在这里插入图片描述

.got.plt中存放的是代码的地址
在这里插入图片描述
nop滑梯,什么都不做执行下一个指令
在这里插入图片描述
一路nop到shellcode,只要指向nop区域即可;使得地址随机化变得低效
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

做题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

即使程序中没有call system指令,同时也不知道system libc的真实地址;但是我们一定会有system@plt,只要这个程序在任何地方引用过system这个函数
虽然secure函数中system(“shell?!”)没有任何用处,但是system()被放在了plt;如果连这一项都没有就需要在攻击之前泄露大量的信息,把真实地址泄露出来
在这里插入图片描述
在这里插入图片描述
还需要加上溢出ebp的四个字节,所以这里又是112
在这里插入图片描述
这里的padding 就是112个垃圾数据
在这里插入图片描述
可以简化成这个形式,都不需要exit了,不需要老老实实退出程序
在这里插入图片描述
逆向题入门也可以这样做
在这里插入图片描述

ret2libc2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
找不到/bin/sh
在这里插入图片描述
考虑写入进bss
在这里插入图片描述
在这里插入图片描述

值得注意的是这里调用了gets函数做了两次交互,而不是像之前的题目只发过去payload完事,最后一次交互需要输入/bin/sh
在这里插入图片描述
elf.symbols是程序编译链接时的粘合剂,每一个函数名和变量名都指代了自己存在的位置,在编译时对应名称的符号写入对应的内容
buf2属于变量名也是一个符号
在这里插入图片描述
这里老师是直接再输入了一次,我是在交互时输入
在这里插入图片描述

ret2libc3

在这里插入图片描述
在这里插入图片描述
先把四行字符串放在stdout缓冲区中,使用fflush将缓冲区清空再一口气把这些字符串输出在屏幕上
在这里插入图片描述
考虑到实际题目的代码量,这里可以按n修改这个这个变量的名称
找栈溢出的技巧:在每一个能输入的地方输入超长的数据,一旦崩溃就可能存在栈溢出漏洞
在这里插入图片描述
这里随机输入一个地址程序崩溃,但是这并不是栈溢出的崩溃,这里是地址无效导致的,所以需要找一个有效地址
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在继续输入超长数据时出问题了
在这里插入图片描述
在这里插入图片描述
main函数中用于保存局部变量的区域
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

首先调用子函数为其创建栈帧,将相关信息压栈
在这里插入图片描述
dest的空间是0x38,src的大小的0x100,将其通过strcpy(dest, src);覆盖会导致导致栈溢出
在这里插入图片描述
显然无法完成ret2systemcall
接下来就是ret2libc
plt是代码的填写者,got是代码的保存者
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中f7开头都是libc中的地址,80开头的都是elf本身的地址
在这里插入图片描述
这些f7开头的地址表示这些函数被调用过了,在libc中的地址已被填写,由此我们可以泄露这里面的地址以获取libc中的地址;这里我们选取puts,因为其地址位置高,所以我们在read的时候直接把puts对应的gots表中的起始地址传入
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
值得注意的是我们还有libc的拷贝,只要我们知道偏移量和其中一个值,system的值就可以推导出来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本地还是没打通

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/283872.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互联网加竞赛 python 机器视觉 车牌识别 - opencv 深度学习 机器学习

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于python 机器视觉 的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:3分 🧿 更多资…

4.配置系统时钟思路及方法

前言: 比起之前用过的三星的猎户座4412芯片,STM32F4的系统时钟可以说是小巫见大巫,首先我们需要清晰时钟产生的原理:几乎大多数的芯片都是由晶振产生一个比较低频的频率,然后通过若干个PLL得到单片机能承受的频率&…

模拟IC设计-学习笔记

写在前面:本文是我自己学习b站上up主(jrilee讲电路)的模集课程时记的笔记,原课程:模拟IC设计 第一讲 -- Device and modeling (I)_哔哩哔哩_bilibili 目录 器件基础 求输出电阻 MOS管的小信号模型,拉扎维书上常用的是π模型&am…

Flutter ios 使用ListView 。滚动时 AppBar 改变颜色问题

在Ios 中 列表滚动条向下滚动一段距离后 会导致 AppBar 颜色改变 可以给 AppBar 或者 AppBarTheme。 scrolledUnderElevation: 0.0 属性 全局: MaterialApp(theme: ThemeData(appBarTheme: AppBarTheme(scrolledUnderElevation: 0.0)) ) 局部: App…

硬件基础-电阻

电阻 1.品牌 厚声、风华,三星、罗姆、松下、KOA 2.分类 插件 碳膜电阻:精度-5 J 是在高阻,高压和高温应用中 属负温度系数电阻 金属膜:-1 F 贴片 电阻标识:(含义:阻值大小和精度&a…

keithley 吉时利6221源表

特点 优势 10 14 Ω 输出阻抗 提供广泛的输出阻抗,确保负载中有稳定的电流源。 65000 点源内存 允许直接从电流源执行全面的测试电流扫描。 输出 0.1V 至 105V 的恒流电压,10mV 步长 防止潜在损坏对过电压敏感的设备。 源交流电源范围为 4pA 至…

AI聊天伴侣的语料采集大揭秘:OpenCV如何轻松识别聊天图片?

最近,负责元宇宙中AI聊天伴侣的语料数据采集,这些数据主要用于AI虚拟角色聊天的训练和测试。虽然语料获取有多种渠道,但由于部分数据涉及隐私,这里就不多说了(感兴趣的朋友可以私聊我)。今天,我…

权重衰减weight_decay

查了好几次了,一直忘,记录一下 使用L 2 范数的一个原因是它对权重向量的大分量施加了巨大的惩罚。这使得我们的学习算法偏向于在大量特征上均匀分布权重的模型。在实践中,这可能使它们对单个变量中的观测误差更为稳定。 相比之下&#xff0c…

linux gdb反汇编定位问题

日前解决一现网问题遇到补丁加载未生效现象,想要验证流程是否走进补丁代码,由于补丁函数和原函数名称一样,且修改代码较少,通过普通gdb方法难以看出是否走进补丁,但可用gdb反汇编方法来验证。 gdb该进程,之…

干货下载丨不分业态、不关注核心需求,怎么做得好项目管理?!

项目管理:装备制造业的破局利刃 对于装备制造行业而言,每一笔订单都是非标定制、小批量制造。这种特性决定了其行业企业普遍存在新品开发周期长、生产效率低、质量不稳定、交货期不稳定、成本预算难控制、非标品报价慢等问题。 如何提升企业的管理水平…

【TOP解刊】IEEE旗下中科院2区,无需版面费,IF持续上涨,见刊快,值得投吗?

工程综合类 • 好刊解读 今天小编带来IEEE旗下工程领域高分区好刊,如您有投稿需求,可作为重点关注!后文有相关领域真实发表案例,供您投稿参考~ 01 期刊简介 IEEE Sensors Journal ✅出版社:IEEE ✅ISSN&#xff1a…

第15章 《乐趣》Page355~375 纹理,渲染器,代码简化版

运行效果&#xff1a;全屏了 简化之后的代码如下&#xff1a; //main.cpp #include <iostream> #include <SDL2/SDL.h> #include "sdl_initiator.hpp" #include "sdl_error.hpp" #include "sdl_window.hpp" #include "sdl_sur…