Linux下fastbin利用小结——fd覆盖与任意地址free

linux下的fastbin是ctf中pwn题的重点出题点。去年(2015)中,XCTF就有两站是使用fastbin的利用作为pwn400的压轴题来出现,这也是我刚开始接触fastbin的利用,参考了k0sh1师傅写在freebuf上的一篇文章。我写了几个demo来说明问题。

目录

1.关于fastbin

2.覆盖fd指针实现利用

3.任意地址free实现利用(House of Spirit)

1.关于fastbin

我们一般熟悉的堆都是双链表的chunk,但是对于大小为(16 Bytes~ 80 Bytes)的堆块来说则是使用fastbin来进行管理的。

fastbin的堆块结构与常规的chunk是完全一样,除了使用的是单链表。

如上图就是一个正在使用中的fastbin块的结构

这是使用fastbin

时间: 2024-10-21 19:13:56

Linux下fastbin利用小结——fd覆盖与任意地址free的相关文章

FEKO 6.0 电磁仿真软件在 Linux下安装以及破解详细步骤(附下载地址和注册程序)

FEKO6.0各版本下载地址(来源于寺院的研究僧): Intel/AMD (32-bit x86) Windows (XP, Vista, Windows 7, Server 2003) feko_distrib_6.0_win32.exe (320 MByte) Linux feko_distrib_6.0_LINUX.tar.gz (392 MByte) Intel/AMD (64-bit x86_64) Windows (XP, Vista, Windows 7, Server 2003,

Linux下链接问题小结(undefined reference)

一直以来对Linux下编译链接产生的问题没有好好重视起来,出现问题就度娘一下,很多时候的确是在搜索帮助下解决了BUG,但由于对原因不求甚解,没有细细研究,结果总是在遇到在BUG时弄得手忙脚乱得. 甚至有时候为了一个问题查了半天的资料,好不容易解决了,却因为没有记录下来或者没有弄清楚真实原因,结果第二次碰到还是要去重复前次的折腾,很是尴尬无奈. 虽然,同样的错误信息,其产生的原因不一而足,但是,总结一下终归是好的,使不知变知之,只要不在同一件事情上重复同样的错误,发现的问题越多,解决的问题越多,未

Linux下cp -rf总是提示覆盖的解决办法

通常情况下使用cp -rf进行文件或者文件夹的管理时一般就不再提醒是否覆盖.然而在内网的一台机器上使用cp -rf却提示是否覆盖.难道和常用的命令不同? [[email protected] test]# cp -rf ./files/ ./bak/ cp:是否覆盖"./bak/files/test.txt"? cp:是否覆盖"./bak/files/hh.txt"? cp:是否覆盖".www.1.qixoo.com/bak/files/child/chi

CTF中做Linux下漏洞利用的一些心得

其实不是很爱搞Linux,但是因为CTF必须要接触一些,漏洞利用方面也是因为CTF基本都是linux的pwn题目. 基本的题目分类,我认为就下面这三种,这也是常见的类型.

linux下网卡问题小结

Q:备份之后在恢复系统,网卡编号变为eth1而不是eth0 A:修改udev规则文件,删除 /etc/udev/rule.d 目录下的70-persistent-net.rules 文件,然后重新启动 对于一些特殊的应用,例如U盘linux系统,删除该文件之后可以在目录下建立一个同名的文件夹 mkdir 70-persistent-net.rules,这样每次启动之后都不会再生成一个udev规则文件了. Q:单网卡设置多个IP地址 A:需要再在/etc/sysconfig/network-scr

Linux下mysql基本操作小结

shell> mysql -uroot -p       //以root用户连接mysql,默认密码为空 注意:mysql的大部分命令都需以";"(分号)结束:对大小写不敏感! mysql> show databases;    //显示数据库列表mysql> use 数据库名          //选中指定的数据库mysql> show tables;           //显示选中数据库中的数据表列表mysql> select * from 表名; 

linux下使用ifconfig和route设置临时ip地址和子网掩码以及默认网关

使用的命令行为:         ifconfig eth0 192.168.1.110 netmask 255.255.255.0         route add default gw 192.168.1.1

linux 下C实现获取网卡IP和MAC地址

本文使用getifaddrs 函数获取网卡的IP和MAC地址.getifaddrs函数有个特点,就是获取地址时以链表方式返回,且每个链表节点要么是IP,要么是MAC,所以如果要将网卡的IP和MAC地址同时返回的话,需要对对返回链表进行查找和重新组合.本文实现目的,在于以网卡名方式返回IP和MAC地址.代码如下: #ifndef _MYLIB_H #define _MYLIB_H #include <stdlib.h> #include <errno.h>   #define err

linux 下查看硬件信息(mac,IP地址,硬盘型号,序列号等)

一.查看网卡mac地址 #安装lshw [[email protected] ~]# yum install lshw #使用方法 [[email protected] ~]# lshw -c network *-network:0 description: Ethernet interface product: NetXtreme II BCM5709 Gigabit Ethernet vendor: Broadcom Limited physical id: 0 bus info: [ema