https://blog.csdn.net/think_ycx/article/details/84405387


本关信息

伏地魔吧自己分裂的灵魂藏在了7哥魂器中…这个描述666。本关要求我们找到所有的魂器然后ROP似乎就可以拿flag了。本关没有给源码,上IDA分析吧。本地运行前安装32位libseccomp库,apt-get install libseccomp-dev:i386。

init初始化abcdefg7个int值,保存在bss段,并计算sum。abcdefg的值生成时使用随机数做为种子再调用rand函数生成,因此随机不可预测。

ropme函数输入abcdefg的值,就可以调用相应的打印函数。gets函数输入sum的值就可以进入输出flag的流程。由于gets存在栈溢出,因此可以劫持返回地址。

利用思路很简单,劫持返回地址跳转输出abcdefg的值,就可以计算sum,之后把sum转化成字符串后输入给atoi即可。

注意有几个坑点:

1、gets函数遇到a newline character比如\x0a就会截断(遇到\x00 \t不会截断,gets可以读入),ropme函数起始地址是0x080A0009,不能直接跳转到ropme函数中执行代码。可以直接跳到ABCDEFG函数里面获取abcdefg的值。
2、atoi函数将int转化为字符串,如果数字超过int范围转化失败返回-1。
此外,由于0xa不能输入,find查看了stack中是有0x080a的值的,如果栈溢出溢出低位几个字节为打印flag的低位,再rop到该处应该也可以直接读flag。

exp

【pwnable.kr】 horcruxes相关推荐

  1. 【pwnable.kr】Toddler‘s Bottle-[flag]

    目录导航 下载题目文件 二进制分析 获取flag gdb调试 下载题目文件 Papa brought me a packed present! let's open it.Download : htt ...

  2. 【pwnable.kr】passcode

    pwnable从入门到放弃,第六题. ssh passcode@pwnable.kr -p2222 (pw:guest) 完全是'&'的锅. #include <stdio.h> ...

  3. 【pwnable.kr】day8:leg

    pwnable:leg pwnable.kr:leg 题目链接 question Daddy told me I should study arm. But I prefer to study my ...

  4. 【pwnable.kr】leg

    pwnable从入门到放弃第八题. Download : http://pwnable.kr/bin/leg.c Download : http://pwnable.kr/bin/leg.asm ss ...

  5. 【pwnable.kr】 alloca

    https://www.anquanke.com/post/id/170288 前言 最近在刷pwnable.kr [Rookiss],题目都好有意思,一其中题alloca虽然分值不高,但分析过程很值 ...

  6. 【pwnable.kr】Toddler‘s Bottle-[passcode]

    目录导航 进入服务器 下载文件 反编译分析 EXP TIPS 进入服务器 Mommy told me to make a passcode based login system. My initial ...

  7. 【pwnable.kr】Toddler‘s Bottle-[random]

    目录导航 Target & Download Analysis & IDA Debug & writeup TIPS Target & Download Daddy, ...

  8. 【pwnable.kr】Toddler‘s Bottle-[bof]

    目录导航 打开题目审题 nc 命令介绍 获取服务器文件 源代码分析 ELF分析构造payload 解题 打开题目审题 Nana told me that buffer overflow is one ...

  9. 【pwnable.kr】Toddler‘s Bottle-[fd]

    目录导航 打开题目审题 找到突破口 相关c语言知识 源代码分析 找到FLAG 打开题目审题 Mommy! what is a file descriptor in Linux?* try to pla ...

最新文章

  1. 随机梯度下降分类器(SGDClassifier)
  2. vscode进行远程服务器 An SSH installation couldn't be found、
  3. 我的名片能运行Linux和Python,还能玩2048小游戏,成本只要20元
  4. eclipse目录出现重复情况 解决
  5. Qt消息机制和事件、事件过滤
  6. uva 242——Stamps and Envelope Size
  7. 想要转人工智能,程序员该如何学习?
  8. Atitit  自动化gui 与 发帖机 技术
  9. matlab 结构体遍历,matlab 遍历结构体struc的成员
  10. powerbuilder mysql_powerbuilder+mysql5.0的连接过程 | 学步园
  11. POJ2545-丑数
  12. python绘制小狗_SAI教程:绘画小狗手绘板教程
  13. 怎么开发qq群自动回复机器人呢?我教你
  14. 关于神经网络中隐藏层和神经元的深入理解
  15. 用python编写倒计时_python如何倒计时
  16. Java——面向对象(1)
  17. linux内部网关协议igp,OSPF基础知识概述
  18. 苹果支付在哪里设置_你会用苹果手机吗?这些快捷指令快速设置一下,好用度提升10倍...
  19. 前端对接微信公众号网页开发流程,授权对接
  20. 从小程序快速扫码进微信群聊

热门文章

  1. Active Directory证书服务的安装与配置
  2. oracle 设置监听和服务,oracle服务端和客户端之间的网络监听如何设置呢?
  3. 假设有一段英文,将单词当中英文小写字母i 写成大写字母I,请编写程序纠正
  4. 项目错误日志之Error running ‘DictDAOTest.testCount‘: Failed to resolve org.junit.platform:junit-platf
  5. 是个有趣的实验(10 interesting experiments)
  6. 基于java+springmvc+mybatis+vue+mysql的网络视频播放器
  7. 桌面版 ChatGPT 来了!
  8. 来吧,一文彻底搞懂Java中的Comparable和Comparator
  9. mysql如何用first函数_mysql FIRST()函数 语法
  10. 如何成为写SQL高手(下)