type
status
date
slug
summary
tags
category
icon
password
之前做堆的题总是会与到与libc版本的相关问题,这里开一篇新文,讲一讲目前遇到的有关于在做题的的libc版本不同的问题与解决方案。
patchelf
这个可以说是做堆题的必备神器,大多数的堆的漏洞与版本有关,不同的版本的堆题对bin和chunk的管理方式各不相同,故很多题目在附件中会一同把libc版本一同下发,遇到这种事便可以直接在我们本地的libc库中寻找到相应的版本然后直接patchelf上题就行。关于这个工具的使用具体可以看之前的有篇文章,写的有这里不细讲
食用方法
寻找libc
有的题目并不会直接把libc文件下发,而是同题目一起发一个libc.so.6文件,这个文件其实也能看出这道题要使用的libc版本,不过要使用一个命令。
这样也能知道这个的libc版本为
Ubuntu GLIBC 2.31-0ubuntu9.2
然后在patchef相应的libc做这道题就行。libc版本下载
关于libc版本的的下载,这个确实在glibc-all-in-one这里面就已经有大部分的libc版本。
先讲这个里面有的libc版本的食用吧
这是里面有的文件,在这里面的libc文件夹里面就是我们已经下了的libc文件,如果里面没有我们需要的libc版本,这我们可以这里在个页面下,
先使用
cat list
查看我们可以再这里面下的版本,先确定要下的版本的名字后使用下面这个命令下载像这样就算这个版本下好了,然后便可以去之前那个的libc文件夹中食用了。
出了这些之外,还可以使用宁外一个命令查看和下载宁外一些版本
这里面也有一些版本的现在,不过由于是过时的版本所以加上了old,
同样的在下载时也要用不同的命令下载
这样下好之后就可以去libc文件夹中食用了。
如果你发现这两个里面都没有你所要的libc版本(有的题目是真的ex,非要用一些小版本)
那便要去网上下相应的文件解压食用了。
拿上面的需要的libc2.31的9.2版本来说,这个版本在我们的这里是没有的我们只能去网上找了下来用,
在之前的文件中有一个debs的文件夹其中放着的就是各个libc版本的deb文件,我们要下的也是这种文件,
可以在这个网站上下载
把这个标黄的下载来就行
拖动到之前的那个debs文件夹中便是这个样子,
然后解压就行,
以下来源
这篇文章。
1.首先下载deb包,比如:将其放在 /home/tools/ 根目录下:
2.进入到tools根目录下的终端,输入下面命令创建文件夹extract,并在extract文件夹下创建DEBIAN文件夹
3.将deb包解压到extract文件夹下
4.解压deb包中的control信息(包的依赖在这里面的control文件中)
5.创建build文件夹
6.将解压到extract文件夹中所有的内容重新打包为deb包
7.安装deb包
8.卸载deb包
常用命令参数实例
我们只要运行的第四部就可以食用了
打开同目录的extract文件夹,在打开里面的lib文件夹里面的那个就存放这我们要的libc版本,然后使用相同的patchelf就可以开始食用题目了。
📝 主旨内容
观点1
引用的话语
观点2
引用的话语
🤗 总结归纳
总结文章的内容
📎 参考文章
- 一些引用
- 引用文章
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
- 作者:wgiegie
- 链接:https://tangly1024.com/article/08ab3e41-7ead-466c-89c8-1f7f903ad520
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。