【pwnable.kr】 horcruxes
https://blog.csdn.net/think_ycx/article/details/84405387
![](https://github.com/thinkycx/pwnable.kr/raw/master/toddler/21-horcruxes/img/image-20181123143621965.png)
本关信息
伏地魔吧自己分裂的灵魂藏在了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相关推荐
- 【pwnable.kr】Toddler‘s Bottle-[flag]
目录导航 下载题目文件 二进制分析 获取flag gdb调试 下载题目文件 Papa brought me a packed present! let's open it.Download : htt ...
- 【pwnable.kr】passcode
pwnable从入门到放弃,第六题. ssh passcode@pwnable.kr -p2222 (pw:guest) 完全是'&'的锅. #include <stdio.h> ...
- 【pwnable.kr】day8:leg
pwnable:leg pwnable.kr:leg 题目链接 question Daddy told me I should study arm. But I prefer to study my ...
- 【pwnable.kr】leg
pwnable从入门到放弃第八题. Download : http://pwnable.kr/bin/leg.c Download : http://pwnable.kr/bin/leg.asm ss ...
- 【pwnable.kr】 alloca
https://www.anquanke.com/post/id/170288 前言 最近在刷pwnable.kr [Rookiss],题目都好有意思,一其中题alloca虽然分值不高,但分析过程很值 ...
- 【pwnable.kr】Toddler‘s Bottle-[passcode]
目录导航 进入服务器 下载文件 反编译分析 EXP TIPS 进入服务器 Mommy told me to make a passcode based login system. My initial ...
- 【pwnable.kr】Toddler‘s Bottle-[random]
目录导航 Target & Download Analysis & IDA Debug & writeup TIPS Target & Download Daddy, ...
- 【pwnable.kr】Toddler‘s Bottle-[bof]
目录导航 打开题目审题 nc 命令介绍 获取服务器文件 源代码分析 ELF分析构造payload 解题 打开题目审题 Nana told me that buffer overflow is one ...
- 【pwnable.kr】Toddler‘s Bottle-[fd]
目录导航 打开题目审题 找到突破口 相关c语言知识 源代码分析 找到FLAG 打开题目审题 Mommy! what is a file descriptor in Linux?* try to pla ...
最新文章
- 随机梯度下降分类器(SGDClassifier)
- vscode进行远程服务器 An SSH installation couldn't be found、
- 我的名片能运行Linux和Python,还能玩2048小游戏,成本只要20元
- eclipse目录出现重复情况 解决
- Qt消息机制和事件、事件过滤
- uva 242——Stamps and Envelope Size
- 想要转人工智能,程序员该如何学习?
- Atitit 自动化gui 与 发帖机 技术
- matlab 结构体遍历,matlab 遍历结构体struc的成员
- powerbuilder mysql_powerbuilder+mysql5.0的连接过程 | 学步园
- POJ2545-丑数
- python绘制小狗_SAI教程:绘画小狗手绘板教程
- 怎么开发qq群自动回复机器人呢?我教你
- 关于神经网络中隐藏层和神经元的深入理解
- 用python编写倒计时_python如何倒计时
- Java——面向对象(1)
- linux内部网关协议igp,OSPF基础知识概述
- 苹果支付在哪里设置_你会用苹果手机吗?这些快捷指令快速设置一下,好用度提升10倍...
- 前端对接微信公众号网页开发流程,授权对接
- 从小程序快速扫码进微信群聊
热门文章
- Active Directory证书服务的安装与配置
- oracle 设置监听和服务,oracle服务端和客户端之间的网络监听如何设置呢?
- 假设有一段英文,将单词当中英文小写字母i 写成大写字母I,请编写程序纠正
- 项目错误日志之Error running ‘DictDAOTest.testCount‘: Failed to resolve org.junit.platform:junit-platf
- 是个有趣的实验(10 interesting experiments)
- 基于java+springmvc+mybatis+vue+mysql的网络视频播放器
- 桌面版 ChatGPT 来了!
- 来吧,一文彻底搞懂Java中的Comparable和Comparator
- mysql如何用first函数_mysql FIRST()函数 语法
- 如何成为写SQL高手(下)