格式化字符串走过的坑 pwn109

今天做的一道题有一个坑我调试半天终于打通了,格式化字符串的坑,确实不少,东西也比较多容易忘记,怎么说呢,功夫在平时,经验少了

老规矩先看一下保护

Full RELRO意味着got不能修改也就是不能通过格式化字符串漏洞来改got表,但是nx保护关闭了,也就是我们可以通过修改返回地址到我们写的shellcode上就好了

iad打开

选项2printf打印你写的数据(格式化字符串漏洞)选项1是往栈上写数据,而且他还把栈地址给你了,就不需要额外泄露了

首先计算一下我们输入的数据偏移

那既然有栈地址了还有偏移了直接构造payload

但是却失败了,怎么回事,难道我手工改失败了用工具再试一遍

依旧失败,这里我选择一步步去调试了,我首先怀疑返回地址填充的数据不够,因为ida静态毕竟没有动态更能体现返回地址的问题

奇怪的是返回地址是正确的,然后我选择3退出的时候看一下返回地址

发现返回地址并不是刚刚的地址而是这个地址,那么我们把找到的ret_addr + 0x10

成功了!!

也就是说刚刚手改是正确的,这里我建议最好自己手改几次,对这个原理理解透彻,才能更好的学习,只会不停的用工具,而不懂原理这样的学习是没有太大意义的

格式化字符串走过的坑........

格式化字符串走过的坑 pwn109的更多相关文章

  1. Qt sprintf_s函数格式化字符串出错

    Qt sprintf_s函数格式化字符串出错 问题的出现: 我在VS上用c C++写的跨平台的函数 移植到Qt 上面 出现sprintf_s 函数格式化出错. 开始以为是编码问题  反复查找Qt乱码问 ...

  2. php支付走过的坑(支付宝篇 注册 秘钥 环境等等配置)

    支付这东西,说容易也容易,说难也难 代码这玩意还比较好说 但是 如果没有demo 直接去看官方文档 十有八九一脸懵逼 今天就整理一下 支付这块走过的坑 涉及 微信h5支付 支付宝h5支付 (api文档 ...

  3. [二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇

    目录 [二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇 格式化输出函数 printf函数族功能介绍 printf参数 type(类型) flags(标志) number(宽度) precisi ...

  4. VBA 格式化字符串 - Format大全

    VBA 格式化字符串 VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT ,以下是本人归 ...

  5. Python中用format函数格式化字符串

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 1.百分号方式 语法:%[( ...

  6. C#定义类型转化 及 格式化字符串

    operator 关键字 operator 关键字用来重载内置运算符,或提供类/结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用 ...

  7. 关于printf错用格式化字符串导致double和long double输出错误的小随笔

    [题外话] 以前用HUSTOJ给学校搭建Online Judge,所有的评测都是在Linux下进行的.后来为了好往学校服务器上部署,所以大家重新做了一套Online Judge,Web和Judge都是 ...

  8. .NET中DateTime.Now.ToString的格式化字符串

    .NET中DateTime.Now.ToString显示毫秒:DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") DateTime.N ...

  9. Python格式化字符串~转

    Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...

  10. %----format 格式化字符串---- 生成器---- 迭代器

    %方式格式化字符串 顺序传参数 o转换8进制x转换十六进制 tp1 = "i am %s" % "alex"tp2 = "i am %s age %d ...

随机推荐

  1. React同级组件传值

         在React中同级组件本身是没有任何关联的,要想有联系只能通过共同的父组件传值,一个子组件将数据传递到父组件中,父组件接收值再传入另一个子组件中 <!DOCTYPE html> ...

  2. 第125篇: 期约Promise基本特性

    好家伙,本篇为<JS高级程序设计>第十章"期约与异步函数"学习笔记 1.非重入期约 1.1.可重入代码(百度百科) 先来了解一个概念 可重入代码(Reentry cod ...

  3. 【应用服务 App Service】 App Service Rewrite 实例 -- 限制站点的访问

    问题描述 在Azure App Service中,当需要限制某些特殊的情况对其进行访问时候,可以通过IP限制,逻辑代码判断,或者Rewrite规则.通过IP限制则需要知道客户端访问的IP,而通过逻辑代 ...

  4. 6、zookeeper应用场景-分布式唯一ID

    分布式唯一id案例 原理:使用zookeeper有序节点,节点后会加上有序的id,用这个id来当唯一ID 在过去的单库单表型系统中,通常第可以使用数据库字段自带的auto_ increment属性来自 ...

  5. 使用 ASP.NET Core MVC 创建 Web API 系列文章目录

    使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使用 ASP.NET Core MVC 创建 Web API(三 ...

  6. 快速带你入门css

    css复习笔记 1. css样式值 1.1 文字样式 1 p{ 2 font-size: 30px;/*设置文字大小*/ 3 font-weight: bold;/*文字加粗*/ 4 font-sty ...

  7. 5-事件组&任务通知

    获取某个事件 获取若干事件中的某个事件 获取若干事件中的全部事件 !!!!不可获得若干事件中的几个事件 创建事件组,设置事件,等待事件 static EventGroupHandle_t xEvent ...

  8. xp 下对 pdfjs-dist 库的支持 49的chrome xp壳

    公司下壳的版本非常低,不支持es6 chromium Version = 49.0.2623.87 早先是 require('pdfjs-dist'),但是这里面都是es6的代码,xp下直接就崩溃了, ...

  9. InputNumberZen.vue 数字输入 支持两位小数

    <template> <span style="width: 200px; display: inline-block;"> <Input v-mod ...

  10. electron程序运行在某些 windows 上白屏

    现象: 打包后的 electron 程序 运行在某些 windows 上白屏 项目情况: vue3.0  项目使用 vue-cli 创建 使用 vue add electron-builder 添加打 ...