xman 厦门邀请赛 pwn1 babystack writeup

2023-11-03

题目描述:

这个题目针对现在的我还是有点难度的,花费了我三天的时间,最后发现原因竟是因为字符转化为整型的过程中多加了好多0.

分析思路:

1、首先查看文件的详细信息:

tucker@ubuntu:~/xman/pwn/pwn1$ file babystack
babystack: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 2.6.32, BuildID[sha1]=d1d54a6fc21f6c1d9a92f4f3bfafadd44683afd4, stripped
tucker@ubuntu:~/xman/pwn/pwn1$ checksec babystack
[*] '/home/tucker/xman/pwn/pwn1/babystack'
    Arch:     amd64-64-little
    RELRO:    Full RELRO
    Stack:    Canary found
    NX:       NX enabled
    PIE:      No PIE (0x400000)

是一个64bit的二进制文件,没有开启PIE,但是开启了canary保护,因此我们首先想到的就是绕过canary保护。

2、使用IDA打开:

__int64 __fastcall main(__int64 a1, char **a2, char **a3)
{
  int v3; // eax
  char s; // [rsp+10h] [rbp-90h]
  unsigned __int64 v6; // [rsp+98h] [rbp-8h]

  v6 = __readfsqword(0x28u);
  setvbuf(stdin, 0LL, 2, 0LL);
  setvbuf(stdout, 0LL, 2, 0LL);
  setvbuf(stderr, 0LL, 2, 0LL);
  memset(&s, 0, 0x80uLL);

  while ( 1 )
  {
    puts_info();
    v3 = j_read();
    switch ( v3 )
    {
      case 2:
        puts(&s);
        break;
      case 3:
        return 0LL;
      case 1:
        read(0, &s, 0x100uLL);
        break;
      default:
        j_puts("invalid choice");
        break;
    }
    j_puts((const char *)&unk_400AE7);
  }
}

从中我们很容易看到并且在puts(&s)中我们也可以控制s的值,从而打印出我们需要的信息。在前面的memset中仅仅初始化了0x80个字节,但在read(0, &s, 0x100uL)读取了0x100个字节,因此存在栈溢出漏洞。

3、我们需要注意,程序为了防止canary泄露,canary的第一个字节为\x00,因此我们首先我们构造payload&#x

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xman 厦门邀请赛 pwn1 babystack writeup 的相关文章

  • 2020ciscn wp

    目录 1 签到电台 2 基于挑战码的双向认证 1 2 3 web Ezpo 4 基于挑战码的双向认证3 5 ISO9798 6 问卷调查 7 ez usb 8 login nomal 1 签到电台 操作内容 根据公众号提示 知道了模十的算法
  • fileclude(文件包含漏洞及php://input、php://filter的使用)

    先介绍一些知识 1 文件包含漏洞 和SQL注入等攻击方式一样 文件包含漏洞也是一种注入型漏洞 其本质就是输入一段用户能够控制的脚本或者代码 并让服务端执行 什么叫包含呢 以PHP为例 我们常常把可重复使用的函数写入到单个文件中 在使用该函数
  • 第十五届全国大学生信息安全竞赛(ciscn初赛) 部分writeup

    杂项的附件地址 https share weiyun com BZyngGSZ CISCN web Ezpop misc everlasting night ez usb 问卷调查 pwn login nomal crypto 签到电台 基
  • 第 46 届世界技能大赛浙江省选拔赛“网络安全“项目C模块任务书

    第46届世界技能大赛浙江省选拔赛 网络安全 项目C模块 夺旗行动 CTF 挑战 第46届世界技能大赛浙江省选拔赛 网络安全 项目C模块 第一部分 WEB 第二部分 CRYPTO 第三部分 REVERSE 第四部分 MISC 第五部分 PWN
  • 用gdb.attach()在gdb下断点但没停下的情况及解决办法

    在python中 如果导入了pwntools 就可以使用里面的gdb attach io 的命令来下断点 但是这一次鼠鼠遇到了一个情况就是下了断点 但是仍然无法在断点处开始运行 奇奇怪怪 这是我的攻击脚本 我们运行一下 可以看到其实已经运行
  • [西湖论剑2021中国杭州网络安全技能大赛]Yusa的秘密 writeup

    西湖论剑2021 Yusa的秘密 Sakura组织即将进攻地球 此时你意外得到了该组织内某个成员的电脑文件 你能从中发现本次阴谋所用的关键道具吗 注 题目中包含了五个彩蛋 且彩蛋对解题本身没有任何影响 快去发现吧 附件 Who am I z
  • ctf.show web入门(信息搜集) 1~20

    目录 web1 源码 web2 源码 web3 抓包 web4 robots web5 index phps web6 解压源码泄露 web7 git泄露 web8 svn泄露 web9 vim缓存 web10 cookie web11 域
  • 某**集团夺旗赛的一道隐写题

    解压压缩包 解压出来一个文件file 使用file命令进行查看 发现是data 010查看也无果 看到标题是logistic联想到是否与xor文件有关 遂使用工具xortool 工具在此 xortool file 选概率最大的那个 13 x
  • BUUCTF:[GXYCTF2019]BabyUpload1

    文件上传漏洞 不过这里我要吐槽一下 这个题首先他不允许传 png文件 再者 jpg文件不能大 打了也报错 传不上去 可想而知 我当时在做这个题的时候跟见了鬼一样难受 什么文件都传不了 接着做题吧 试着传一个PHP文件 告诉我不能传ph开头的
  • Burp Suit+Phpstudy+Pikachu搭建Web安全练习环境

    1 软件安全测试工具Burp Suit安装 1 1 社区版 进入官网 Download Burp Suite Community Edition PortSwigger 进行下载安装即可 1 2 专业版 搜索Burp Suit2 0 11从
  • CTF-----RE练习题(二)

    学习打卡篇八 每天学习一点点 认识壳 在一些计算机软件里有一段专门负责保护软件不被非法修改或反编译的程序 它们一般都是先于程序运行 拿到控制权 然后完成它们保护软件的任务 由于这段程序和自然界的壳在功能上有很多相同的地方 所以就把这样的程序
  • 安恒10月夺旗赛

    概述 昨天参加的比赛 这个比赛是信安之路微信公众号和安恒合作的一个比赛 是个人赛 作为一个大一的嫩鸡 还是搞web的 对于re和pwn毫无办法 所以昨天最终的结果是这样的 过程 这一次部分题需要用VPN内网访问 但是不知道为什么刚开始的时候
  • CTF入门学习笔记——Crypto密码(古典密码)

    文章目录 CTF入门学习笔记 Crypto密码 古典密码 凯撒密码 看我回旋踢 摩斯密码 摩斯 维吉尼亚密码 Vigen re 栅栏密码 篱笆墙的影子 栅栏密码 篱笆墙的影子 猪圈密码 待补充 CTF入门学习笔记 Crypto密码 古典密码
  • [2021首届“陇剑杯”网络安全大赛] SQL注入

    2021首届 陇剑杯 网络安全大赛 SQL注入 题目描述 某应用程序被攻击 请分析日志后作答 黑客在注入过程中采用的注入手法叫 布尔盲注 格式为4个汉字 例如 拼搏努力 黑客在注入过程中 最终获取flag的数据库名 表名和字段名是 Sqli
  • disabled_button 攻防世界

    1 第一步还是看题目 重要知识点 按钮按不下去 前端知识 例如下面的代码
  • F5杯—网络是有记忆的

    0x00 前言 CTF 加解密合集 CTF 加解密合集 0x01 题目 网络有记忆 我也有 所以 我想她了 提示 1 题目既提示 2 flag包括小写字母 单词 下划线 IDEgOChWMyVNM1wtGVhbI1NeMCE0Vy9RHVB
  • 攻防世界 Web simple_php

    攻防世界 Web simple php 1 分析源代码 2 得到flag 1 分析源代码 a 和 b 都是通过GOT传入 第一个if可以获取flag1 但是要求a0 atrue 但是如果
  • BUUCTF [极客大挑战 2019] Http

    BUUCTF 极客大挑战 2019 Http 启动环境 主页为三叶草技术小组纳新 查看网页源码 发现隐藏的页面 div class image img src images pic01 jpg alt div div class conte
  • [SHCTF 2023]——week1-week3 Web方向详细Writeup

    Week1 babyRCE 源码如下
  • 【CTF必看】从零开始的CTF学习路线(超详细),让你从小白进阶成大神!

    最近很多朋友在后台私信我 问应该怎么入门CTF 个人认为入门CTF之前大家应该先了解到底 什么是CTF 而你 学CTF的目的又到底是什么 其次便是最好具备相应的编程能力 若是完全不具备这些能力极有可能直接被劝退 毕竟比赛的时候动不动写个脚本

随机推荐

  • 【echarts】图表网址,里面有很多例子

    网址
  • 查看MySQL当前实时的连接数

    mysql gt show status like Threads Variable name Value Threads cached 58 Threads connected 57 这个数值指的是打开的连接数 Threads creat
  • (Deepin)Linux中超常用快捷键

    命令行中常用快捷键 Ctrl Shift C复制 Ctrl Shift V粘贴 D删除整行 X删除单个字符 查看之前使用过的命令 Ctrl L快速清屏 Deepin中的快捷键 Ctrl Alt F2进入命令行界面 Ctrl Alt T 打开
  • 连接服务器显示出现内部错误怎么解决方案,远程连接服务器提示“出现了内部错误”解决方法锐讯网络罗海清...

    远程连接服务器提示 出现了内部错误 解决方法 解决方法 Win R键 打开DOS窗口 输入 ncpa cpl 并敲击回车 紧接着会看到 本地连接 或 以太网 右键 禁用 后在右键 启用 解决方法 Win R键 打开DOS窗口 输入 nets
  • js获取对象值的两种方式

    var obj abc ss nn 90 var v1 obj abc 使用点的方式 var v2 obj abc 使用中括号的方式 console log v1 console log v2 3 for i in obj console
  • 【大前端】android怎么获取本地视频及封面的正确姿势

    话不多说 直接贴核心代码 获取手机中所有视频的信息 private void getAllVideoInfos List
  • 一个图形爱好者的书架.-也来介绍一下我的藏书.

    1 一个图形爱好者的书架 也来介绍一下我的藏书 http blog csdn net nhsoft article details 22992 2 关于计算机图形学的学习的书籍推荐 http www opengpu org forum ph
  • Android混合开发快速上手掌握

    目录 一 混合开发简介 二 Android Js互调 2 1 准备自己的html文件 2 2 WebView控件的准备设置 2 3 Android调用Js代码 2 4 Js调用Android方法和传参数 三 常用的几个方法和注意点 3 1
  • 计算机概论抱佛脚

    操作系统 1 提供了在用户和电脑硬件之间的接口 2 没有操作系统的时候是人工设置接线板 直接使用计算机硬件系统 后来是批处理系统 3 软件分类 软件应用软件 系统软件 系统软件工具软件 操作系统 操作系统 外壳 核心 4 Shell是用户和
  • KDB数据库的简单入门

    公司从sybase换到kdb 高度类似oracle 网上资料少找到一些命令 一 下面普及一下KDB产品基本操作 1 K DB启动 kdboot h kdboot 2 k db关闭 kddown kddown h 3 k DB登陆 kdsql
  • WPF编程学习——窗口

    本文目录 1 窗口的外观 2 窗口的位置 3 窗口的大小 4 窗口的可见性和状态 5 窗口的生命周期 1 窗口的外观 WPF中默认窗口框架的外观 主要取决于Icon Title WindowsStyle ResizeMode等属性 Icon
  • Python自然语言处理 NLTK 库用法入门教程【经典】

    本文来源于公众号 csdn2299 喜欢可以关注公众号 程序员学府 本文实例讲述了Python自然语言处理 NLTK 库用法 分享给大家供大家参考 具体如下 在这篇文章中 我们将基于 Python 讨论自然语言处理 NLP 本教程将会使用
  • 在开发过程中应该如何管理枚举类型数据[onJava8] [GPT-4]

    时间 2023 04 12 标签 Java 枚举类型 在开发过程中 为了保持代码的整洁和可维护性 我们可以采用以下几种方式来管理不同的枚举类型数据 单独创建枚举类文件 将每个枚举类型放在一个单独的 Java 文件中 这种方式可以让枚举类型更
  • 对于模板class里输入输出运算符的重载

    先看代码 pragma once include
  • 【C++】C++入门

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 命名空间 1 作用域限定符 二 命名空间namespa
  • [Data Structure]图的建立与遍历(c语言)

    图的建立 图的建立过程 初始化一个没有边的图 插入边构件图 一 邻接矩阵表示法 邻接矩阵表示法 通过一个矩阵来表示一张图 以下是结构体构建过程 typedef struct GNode PtrToGNode typedef PtrToGNo
  • 6 款 超好用的 Python 时间库

    六个Python的时间日期库 Dateutil Arrow Moment Maya Delorean Freezegun 内建的 datetime 模块 在介绍其他库之前 让我们回顾以下如何使用datetime模块将日期字符串转换为Pyth
  • java实现postman中form-data传参方式

    postman中几种传参方式区别 1 form data form data主要是以键值对的形式来上传参数 同时参数之间以 分隔符分开 同时也可以上传文件 文件上传要指定文件类型 具体可以看下面的图 2 x www form urlenco
  • 电脑低配,电脑配置低怎么办 如何让电脑运行速度加快

    电脑配置低怎么办 有一些电脑由于配置比较低 所以电脑的运行速度就会变的很慢 如果想要加快电脑在运行时候的速度 那么就需要在硬件或者软件上面进行优化或者提升 那么今天小编就从几个方面来解决配置低的电脑应该如何加快电脑的运行速度 电脑配置低怎么
  • xman 厦门邀请赛 pwn1 babystack writeup

    题目描述 这个题目针对现在的我还是有点难度的 花费了我三天的时间 最后发现原因竟是因为字符转化为整型的过程中多加了好多0 分析思路 1 首先查看文件的详细信息 tucker ubuntu xman pwn pwn1 file babysta