当前位置: 首页 > news >正文

网络攻防快速入门笔记pwn | 02 栈溢出题型 | 2.1 ret2text和ret2shellcode

上一篇:网络攻防快速入门笔记pwn|01 Pwn栈溢出基础

下一篇:网络攻防快速入门笔记pwn | 02 栈溢出题型 | 2.2 ret2libc

欢迎关注~

一、ret2text

(一)题目中提供了system和/bin/sh

  1. 基本步骤:
  1. 检查二进制文件信息
  2. 打开IDA查看二进制的反汇编代码
  3. 编写exp脚本
  4. 开启靶机,进行远程连接
  5. 利用exp脚本打通远程,获取flag
  1. 原理

将返回地址覆盖为程序.text段中已有代码的地址,从而执行本身的代码,由于我们要获得shell,二进制文件中本身就含有一个可以直接获取权限的函数,然后我们通过栈溢出漏洞,控制程序执行留,将返回地址覆盖为这个函数的地址让文件运行这个获取权限的函数,我们就可以拿到权限,进而获取flag

  1. 例题
    例题:polarctf靶场——小狗汪汪汪
    【解答】
    拿到二进制文件,首先检查二进制文件:
    在这里插入图片描述
    No canary,说明可以进行栈溢出
    然后用IDA打开二进制文件进行分析
    在这里插入图片描述
    点进init函数中分析,这是一个初始化函数
    在这里插入图片描述
    点进dog函数中分析,有一个gets函数,有可能存在栈溢出:
    在这里插入图片描述
    Shift+F12,查看字符串,发现/bin/sh字符串,顺着字符串发现了getshell函数:
    在这里插入图片描述
    /bin/sh是可以获取系统的shell权限,也就是提权,这个函数是获取系统权限的关键点:
    在这里插入图片描述所以这里的思路就是把dog函数的返回地址设置成getshell函数的地址,当我们执行dog函数的时候,就会自动跳到执行getshell函数,从而来获取系统的shell。
    先找到getshell地址:
    在这里插入图片描述
    在这里插入图片描述

编写脚本:

from pwn import * #从pwn库中导入所有的函数
#io = process('./code/pwn/ret2text/woof') #本地连接二进制文件进行测试
#远程连接
io = remote('1.95.36.136',2060)
getshell_addr = 0x0804859b #getshell函数地址
padding = 4 + 9 #填入的数据长度
payload = b'a'*

相关文章:

  • 鸿蒙Next-开发版本升级,API升级(例如API12升API16)
  • 前端界面在线excel编辑器 。node编写post接口获取文件流,使用传参替换表格内容展示、前后端一把梭。
  • Django学习笔记
  • 第二章:基础页面实现 - 第一节:登录与注册页面 - 表单与身份验证UI
  • 飞腾派OS(无桌面版本基于Debian11)安装weston桌面及Qt
  • LLM应用层推荐 -- 基于文档的问答tools Web UI 框架 开源向量库 -- 推荐、对比
  • 飞速(FS)HPC无损组网:驱动AI高性能计算网络转型升级
  • Qt笔记----》不同环境程序打包
  • 【docker】将docker容器中的文件复制到宿主机的方法
  • centos线程数查看
  • Typora 小乌龟 git 上传到gitee仓库教程
  • git push失败的解决办法
  • 北斗导航 | THE GNSS AMBIGUITY RATIO-TEST REVISITED: A BETTER WAY OF USING IT【论文要点】
  • linux-core分析-柔性数组越界访问
  • c++中int、float、double类型数据与string类型数据相互转换
  • 一文掌握 Velox orderby 算子的排序算法
  • AWS S3 和 Lambda 使用
  • 【超详细】讲解Ubuntu上如何配置分区方案
  • 简单总结比较TCP,UDP,Socket协议
  • SQLServer常用日期时间格式转换及常用日期和时间函数
  • 央视315晚会曝光“保水虾仁”后,湛江4家涉事企业被罚超800万元
  • 云南一男子酒后经常殴打七旬母亲,被警方拘14日罚600元
  • 打造多元文旅消费场景,第四届长三角城市戏剧节启幕
  • 长三角铁路五一假期发送旅客超2000万人次,同比增幅超一成
  • 什么让翻拍“语文”成为短视频新风潮
  • 上海今日降雨降温,节后首个工作日气温回升最高可达28℃