Fedora系统下做缓冲区溢出

时间:2022-05-08 01:46:56

这是一篇很短的文章,因为主要就是介绍一下如何在Fedora的系统下关闭堆执行保护然后呢,实行简单的注入

华丽丽的分割线————————————————————————————————————————

这是我第一次用Fedora系统,真是每个系统都有自己的个性的说。。。

非管理员身份登录,辣么,就一定要先进入root,不然怎么该权限哩

命令:su,然后让你输密码,然后就root啦啦啦

但是,我的Fedora系统的命令,基本都有加/sbin的路径才行。。。如果实验碰到cannot find the command的话,可以试试看“which 命令”查看一下路径,或者“whereis 命令”查找它的位置

这个事情告诉我们:如果跑不通,先检查权限,再检查命令是否真的输对了。。。

华丽丽的分割线————————————————————————————————————————

好了,可以下一步了,关闭堆栈执行保护,表示不同的系统好像用的都不一眼哦,我觉得,结合网上的一些常用的,加你自己去找找看,就可以了,

你可以用这个命令“sysctl  -a”查看一下所有的设置的值(如果是没找到命令,路径路径路径!!!)

大概哪些选项是你要考虑的呢,

参阅1:Problems with Security Settings in Fedora Core    这是一篇全英文章,其中我得到的有用信息是,如果你要修改的选项系统根本没有,那么它就会返回“XXX is an unknown key”一类的。这个时候,你就可以用sysctl  -a | grep rand(我没记错的话)来查看一下本机到底是什么选项

参阅2:Linux下基本栈溢出攻击  这篇写得挺好的,我觉得放这个OK了。

参阅3:缓冲区溢出漏洞  这个也不错

其实只要能找到sysctl命令,就没什么问题了,不像我,呜呜呜,实在不明白为什么它居然控告我系统没有sysctl。。。我恨路径。

不华丽丽的分割线————————————————————————————————————————

地址

关闭堆栈执行保护后,你可以为所欲为了,然后我只能非常弱的做一个很simple的实验,真的simple,特别适合我这种入门级的

想要做攻击,有一个东西你必须知道——地址怎么获得呢?

比如我写过一个heap.c的文件,内容很简单,就是malloc就,strcpy,然后free制造缓冲区溢出的漏洞。

如果你想知道某某函数的GOT地址,可以用:objdump -R obj的文件名 | grep 某某函数名

Fedora系统下做缓冲区溢出

我们可以用如下命令查看第一块分配的内存的地址:

ltrace ./heap ruaanan | grep 666

Fedora系统下做缓冲区溢出 

得到其值为 0x08049608

暂时就知道这么多,以后还有什么命令再加

再一次不华丽丽的分割线————————————————————————————————————————

调试

如果想调试程序,用gdb的一些比较simple的命令

gdb ./obj文件  进入调试

(gdb) l  打印代码——注意,是小写"L"

(gdb) b 行数 加断点

(gdb) run 跑起来~

(gdb) p &地址 :char buf[444]; p &buf这种用法,查看buf字符的地址

(gdb) x/20x 0x地址值 :上一条查到是0x80497e0,这一条就应该这么写:x/20x 0x80497e0,查看buf的内容

(gdb) q  退出

以后再有碰到别的再加,其实用help命令可以知道所有的,但是我还是觉得放上自己用过的会更好。

没有形容词的分割线————————————————————————————————————————

再有内容再加