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相关推荐

  1. BUUCTF Pwn warmup

    BUUCTF Pwn warmup 1.题目下载地址 2.checksec检查保护 3.IDA静态分析 4.exp 1.题目下载地址 点击下载题目 2.checksec检查保护 啥都没开,果然是war ...

  2. 持续更新 BUUCTF——PWN(一)

    文章目录 前言 test_your_nc rip warmup_csaw_2016 ciscn_2019_n_1 pwn1_sctf_2016 jarvisoj_level0 [第五空间2019 决赛 ...

  3. TAMU ctf pwn部分wp+赛后

    TAMU ctf pwn部分wp 国外的题目,终端连不上就很gan ga...... Tr*vial 大水题,栈溢出,ret2text exp from pwn import *context(arc ...

  4. [pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglement wp

    [pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglement wp 文章目录 [pwn]星号格式化串:2020网鼎杯白虎组pwn quantum_entanglemen ...

  5. buuctf pwn bjdctf_2020_babyrop

    buuctf pwn bjdctf_2020_babyrop 1.checksec 2.IDA分析 ropper 3.exp 1.checksec 运行一下 2.IDA分析 这里调用了vuln函数 我 ...

  6. buuctf pwn wp(第四波)格式化字符串漏洞系列

    这里是一个总的分类,一个类型的第一道题目会详细介绍,后面的类型相同的会简略介绍(不过这是第一波,都是最简单的,原理可以看我前面的文章,后面难一点的题目我再讲原理.) 这一波题都是无脑AAAA的类型,它 ...

  7. BUUCTF pwn wp 76 - 80

    cmcc_pwnme2 int __cdecl userfunction(char *src) {char dest[108]; // [esp+Ch] [ebp-6Ch] BYREFstrcpy(d ...

  8. [BUUCTF]PWN——pwnable_orw

    pwnable_orw 附件 步骤: 例行检查,32位程序,开启了canary 本地运行一下程序,看看大概的情况,提示我们输入shellcode 32位ida载入,检索字符串,没看见什么可以直接利用的 ...

  9. 持续更新 BUUCTF——PWN(二)

    文章目录 前言 0ctf_2017_babyheap ciscn_2019_s_9 hitcon2014_stkof roarctf_2019_easy_pwn picoctf_2018_shellc ...

最新文章

  1. Java中的访问限制符
  2. c# 写文件注意问题及用例展示
  3. htmlcss实例小项目_小程序websocket心跳库——websocket-heartbeat-miniprogram
  4. 利用扩展欧几里得算法编程求逆元
  5. php属性赋值吗,php – 设置类中属性的默认值
  6. Oracle 创建磁盘组报错ORA-15137的问题分析与解决思路
  7. oracle sysdate 截取年月日,oracle中extract()函数----用于截取年、月、日、时、分、秒...
  8. 丝蛋白行业调研报告 - 市场现状分析与发展前景预测
  9. 工作 10 年,月薪过万者不足三成,程序员却笑了!
  10. MySQL中查询字段为空或者为null方法
  11. spring 事务传播行为类型
  12. noip模拟赛 蒜头君打地鼠
  13. 变压器绕组降低邻近效应_低频变压器初级短路的原因及解决方案
  14. net.sf.json与fastjson两种jar包的使用
  15. 对lua 实现面向对象的理解
  16. 数据库系统工程师教程目录
  17. 一对一社交app源码开发关于社交系统中视频添加功能
  18. 希腊计数法罗马计数法
  19. NetBIOS name
  20. String s1 = new String(abc)到底创建了几个对象?底层原理是什么?

热门文章

  1. Unity UGUI实现分段式血条
  2. 数学空间 Space
  3. linux命令行下载工具
  4. 英语作业 计算机科学与应用,计算机专业英语作业及答案(42页)-原创力文档...
  5. MySQL优化之硬件篇
  6. 3年级计算机教案,3年级计算机教案.doc
  7. linux 动态库构造函数,Linux动态库函数的详解
  8. ccf-201512-2 消除类游戏
  9. web前端工程师怎么写月报_Web开发人员月报2018年8月
  10. Qt Creator 5.14版下载及安装——MSVC