BUUCTF PWN rip1 WP
BUUCTF PWN rip 1
这是一个WP,也是一个自己练习过程的记录。
- 先把文件放入pwn机中检查一下,发现并没有开启保护,所以应该是一道简单题
我们运行一下试试,它让你输入一段字符然后将字符输出。
- 把文件放在ida中查看一下
发现main函数并不复杂,只是定义了一个 s ,而且我们很容易就能找到栈溢出的点,我们都知道gets函数是一个危险函数,对于我们来说它可以接受到无限的字符,所以这里就是我们要pwn掉的点。
我们双击 s ,看它有多少空间
从图中不难看出 s 有15个字节的空间
与此同时,我在main函数的下面发现了一个可疑的函数,fun函数。双击打开它
果然,它的返回地址是/bin/sh,也是我们想要的地址。并且我们可以得到fun的起始地址。
- 编写脚本
有了以上的地址我们就可以编写脚本来pwn掉这个程序拿到flag了
我们先用15个A来填充S,然后用8个a来填充rbp(因为是64位文件,如果是32位就用4个字符填充ebp),最后加上fun函数的起始地址。
至于这里要+1是为了堆栈平衡,想要详细了解可以学习大佬的文章http://blog.eonew.cn/archives/958 (这个是在别人的wp中找到的)
// 这里为什么+1我也还在学习,当我在网上找了一段时间后,发现与我的脚本相似的都加了1,所以我也加了1,然后脚本就通了。
我们运行脚本试一试
OK,成功拿到flag!
- 总结
这虽然只是一道最基本最简单的题,但是其中包含的知识却不少,对于我这个pwn新手来说也是有一点的挑战性。
为了提高自己的水平,在这里立一个flag
每天解一道PWN题,或者学俩小时PWN课。
BUUCTF PWN rip1 WP相关推荐
- BUUCTF Pwn warmup
BUUCTF Pwn warmup 1.题目下载地址 2.checksec检查保护 3.IDA静态分析 4.exp 1.题目下载地址 点击下载题目 2.checksec检查保护 啥都没开,果然是war ...
- 持续更新 BUUCTF——PWN(一)
文章目录 前言 test_your_nc rip warmup_csaw_2016 ciscn_2019_n_1 pwn1_sctf_2016 jarvisoj_level0 [第五空间2019 决赛 ...
- TAMU ctf pwn部分wp+赛后
TAMU ctf pwn部分wp 国外的题目,终端连不上就很gan ga...... Tr*vial 大水题,栈溢出,ret2text exp from pwn import *context(arc ...
- [pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglement wp
[pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglement wp 文章目录 [pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglemen ...
- buuctf pwn bjdctf_2020_babyrop
buuctf pwn bjdctf_2020_babyrop 1.checksec 2.IDA分析 ropper 3.exp 1.checksec 运行一下 2.IDA分析 这里调用了vuln函数 我 ...
- buuctf pwn wp(第四波)格式化字符串漏洞系列
这里是一个总的分类,一个类型的第一道题目会详细介绍,后面的类型相同的会简略介绍(不过这是第一波,都是最简单的,原理可以看我前面的文章,后面难一点的题目我再讲原理.) 这一波题都是无脑AAAA的类型,它 ...
- BUUCTF pwn wp 76 - 80
cmcc_pwnme2 int __cdecl userfunction(char *src) {char dest[108]; // [esp+Ch] [ebp-6Ch] BYREFstrcpy(d ...
- [BUUCTF]PWN——pwnable_orw
pwnable_orw 附件 步骤: 例行检查,32位程序,开启了canary 本地运行一下程序,看看大概的情况,提示我们输入shellcode 32位ida载入,检索字符串,没看见什么可以直接利用的 ...
- 持续更新 BUUCTF——PWN(二)
文章目录 前言 0ctf_2017_babyheap ciscn_2019_s_9 hitcon2014_stkof roarctf_2019_easy_pwn picoctf_2018_shellc ...
最新文章
- Java中的访问限制符
- c# 写文件注意问题及用例展示
- htmlcss实例小项目_小程序websocket心跳库——websocket-heartbeat-miniprogram
- 利用扩展欧几里得算法编程求逆元
- php属性赋值吗,php – 设置类中属性的默认值
- Oracle 创建磁盘组报错ORA-15137的问题分析与解决思路
- oracle sysdate 截取年月日,oracle中extract()函数----用于截取年、月、日、时、分、秒...
- 丝蛋白行业调研报告 - 市场现状分析与发展前景预测
- 工作 10 年,月薪过万者不足三成,程序员却笑了!
- MySQL中查询字段为空或者为null方法
- spring 事务传播行为类型
- noip模拟赛 蒜头君打地鼠
- 变压器绕组降低邻近效应_低频变压器初级短路的原因及解决方案
- net.sf.json与fastjson两种jar包的使用
- 对lua 实现面向对象的理解
- 数据库系统工程师教程目录
- 一对一社交app源码开发关于社交系统中视频添加功能
- 希腊计数法罗马计数法
- NetBIOS name
- String s1 = new String(abc)到底创建了几个对象?底层原理是什么?