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

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

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


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

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


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


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


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

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

成功了!!

也就是说刚刚手改是正确的,这里我建议最好自己手改几次,对这个原理理解透彻,才能更好的学习,只会不停的用工具,而不懂原理这样的学习是没有太大意义的
格式化字符串走过的坑........
格式化字符串走过的坑 pwn109的更多相关文章
- Qt sprintf_s函数格式化字符串出错
Qt sprintf_s函数格式化字符串出错 问题的出现: 我在VS上用c C++写的跨平台的函数 移植到Qt 上面 出现sprintf_s 函数格式化出错. 开始以为是编码问题 反复查找Qt乱码问 ...
- php支付走过的坑(支付宝篇 注册 秘钥 环境等等配置)
支付这东西,说容易也容易,说难也难 代码这玩意还比较好说 但是 如果没有demo 直接去看官方文档 十有八九一脸懵逼 今天就整理一下 支付这块走过的坑 涉及 微信h5支付 支付宝h5支付 (api文档 ...
- [二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇
目录 [二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇 格式化输出函数 printf函数族功能介绍 printf参数 type(类型) flags(标志) number(宽度) precisi ...
- VBA 格式化字符串 - Format大全
VBA 格式化字符串 VBA 的 Format 函数与工作表函数 TEXT 用法基本相同,但功能更加强大,许多格式只能用于VBA 的 Format 函数,而不能用于工作表函数 TEXT ,以下是本人归 ...
- Python中用format函数格式化字符串
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 1.百分号方式 语法:%[( ...
- C#定义类型转化 及 格式化字符串
operator 关键字 operator 关键字用来重载内置运算符,或提供类/结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用 ...
- 关于printf错用格式化字符串导致double和long double输出错误的小随笔
[题外话] 以前用HUSTOJ给学校搭建Online Judge,所有的评测都是在Linux下进行的.后来为了好往学校服务器上部署,所以大家重新做了一套Online Judge,Web和Judge都是 ...
- .NET中DateTime.Now.ToString的格式化字符串
.NET中DateTime.Now.ToString显示毫秒:DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") DateTime.N ...
- Python格式化字符串~转
Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作 ...
- %----format 格式化字符串---- 生成器---- 迭代器
%方式格式化字符串 顺序传参数 o转换8进制x转换十六进制 tp1 = "i am %s" % "alex"tp2 = "i am %s age %d ...
随机推荐
- React同级组件传值
在React中同级组件本身是没有任何关联的,要想有联系只能通过共同的父组件传值,一个子组件将数据传递到父组件中,父组件接收值再传入另一个子组件中 <!DOCTYPE html> ...
- 第125篇: 期约Promise基本特性
好家伙,本篇为<JS高级程序设计>第十章"期约与异步函数"学习笔记 1.非重入期约 1.1.可重入代码(百度百科) 先来了解一个概念 可重入代码(Reentry cod ...
- 【应用服务 App Service】 App Service Rewrite 实例 -- 限制站点的访问
问题描述 在Azure App Service中,当需要限制某些特殊的情况对其进行访问时候,可以通过IP限制,逻辑代码判断,或者Rewrite规则.通过IP限制则需要知道客户端访问的IP,而通过逻辑代 ...
- 6、zookeeper应用场景-分布式唯一ID
分布式唯一id案例 原理:使用zookeeper有序节点,节点后会加上有序的id,用这个id来当唯一ID 在过去的单库单表型系统中,通常第可以使用数据库字段自带的auto_ increment属性来自 ...
- 使用 ASP.NET Core MVC 创建 Web API 系列文章目录
使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使用 ASP.NET Core MVC 创建 Web API(三 ...
- 快速带你入门css
css复习笔记 1. css样式值 1.1 文字样式 1 p{ 2 font-size: 30px;/*设置文字大小*/ 3 font-weight: bold;/*文字加粗*/ 4 font-sty ...
- 5-事件组&任务通知
获取某个事件 获取若干事件中的某个事件 获取若干事件中的全部事件 !!!!不可获得若干事件中的几个事件 创建事件组,设置事件,等待事件 static EventGroupHandle_t xEvent ...
- xp 下对 pdfjs-dist 库的支持 49的chrome xp壳
公司下壳的版本非常低,不支持es6 chromium Version = 49.0.2623.87 早先是 require('pdfjs-dist'),但是这里面都是es6的代码,xp下直接就崩溃了, ...
- InputNumberZen.vue 数字输入 支持两位小数
<template> <span style="width: 200px; display: inline-block;"> <Input v-mod ...
- electron程序运行在某些 windows 上白屏
现象: 打包后的 electron 程序 运行在某些 windows 上白屏 项目情况: vue3.0 项目使用 vue-cli 创建 使用 vue add electron-builder 添加打 ...