WP_OVERFLOW2

拿到程序,首先放到我们的kali里面看看是多少位的程序,然后在看看有没有什么安全属性

64位程序,并且开启了RELRO,NX

也就是说,这道题我们需要使用ROP绕过

使用ida64打开这个程序,对这个程序的伪代码进行分析

首先看看main函数

发现最开始定义的buf是32个字节

然后在memset中讲buf给清空了,然后read函数讲100字节的数据丢给了buf,这里可以产生栈溢出漏洞

我们在函数列表中可以发现我们无法找到/bin/sh这个函数,这里有两个方法可以找到bin/sh

  1. shift+F12,可以找到一些关键词
  2. 使用ROPgadget进行过滤

我们看第一种方法的效果

然后我们在看到第二种方法的效果

知道了/bin/sh的地址以后

我们还需要找system的地址

现在我们有了system的地址,/bin/sh的地址也有的,我们要将/bin/sh的地址传递给system需要知道RDI寄存器的地址

这里是这样解释的

system()函数的第一个参数需要通过RDI寄存器传递。如果没有使用pop rdi; ret的ROP gadget,就无法将/bin/sh字符串的地址加载到RDI寄存器中,也就无法调用system()函数。

这里我们需要继续使用到ROPgadget了

为什么是POP rdi而不是直接rdi

原因:pop rdi 是一条汇编指令,它的作用是将栈顶的值弹出并存储到寄存器 RDI 中。而 rdi 是 RDI 寄存器本身。

Exp构造:

随机推荐

  1. Spring boot 2.0 之优雅停机

    spring boot 框架在生产环境使用的有一段时间了,它"约定大于配置"的特性,体现了优雅流畅的开发过程,它的部署启动方式(java -jar xxx.jar)也很优雅.但是我 ...

  2. Qt项目升级到Qt6吐血经验总结

    Qt的版本发布越来越频繁,Qt6发布已经有一段时间了,越来越多的人咨询之前的代码是否可以增加对Qt6的支持,包括开源的项目QWidgetDemo(一年时间超过2.6K star),近期百忙之中,对所有 ...

  3. IM跨平台技术学习(十三):从理论到实践,详细对比Electron和Tauri的优劣

    本文由京东技术王泽知分享,原题"基于Web的跨平台桌面应用开发",下文进行了排版和内容优化. 1.引言 近些年来,跨平台跨端一直是比较热门的话题,Write once, run a ...

  4. IM消息ID技术专题(六):深度解密滴滴的高性能ID生成器(Tinyid)

    1.引言 在中大型IM系统中,聊天消息的唯一ID生成策略是个很重要的技术点.不夸张的说,聊天消息ID贯穿了整个聊天生命周期的几乎每一个算法.逻辑和过程,ID生成策略的好坏有可能直接决定系统在某些技术点 ...

  5. Linux 终端

    在 Linux 系统中,终端设备通常分为主设备和从设备.这是一种特殊的设备对的概念,其中: 主设备: 主设备也称为 "master device". 它是终端设备的控制端,用于与用 ...

  6. Solution Set - “伸手向着拉格朗日点作别”

    目录 0.「UR #9」「UOJ #133」电路手动分析 1.「UR #9」「UOJ #134」App 管理器 2.「UR #10」「UOJ #152」汉诺塔 3.「UNR #2」「UOJ #312」 ...

  7. CDS标准视图:功能位置种类描述 I_FlocCategoryText

    视图名称:功能位置种类描述 I_FlocCategoryText 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'Functional Location - Tex ...

  8. c# 判断当前用户是否是管理员权限启动应用程序。

    . using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; u ...

  9. Idea创建maven项目流程、修改默认配置、及注意事项

    这里所演示的环境: windows7+jdk1.7.0_80+tomcat8.5.41+maven3.0.5+idea2017.3.6 1.idea使用指定maven版本 打开idea,使用快捷键ct ...

  10. Redis的高可用?(主从、哨兵、集群)

    高可用有两个含义:一是数据尽量不丢失,二是保证服务尽可能可用. AOF 和 RDB 数据持久化保证了数据尽量不丢失,那么多节点来保证服务尽可能提供服务. 一般在实际生产中,服务不会部署成单节点,主要是 ...