-
-
[原创]pwnable.kr uaf
-
发表于: 2018-11-30 17:36 8857
-
Pwnable.kr之uaf
UAF漏洞的利用:
(1) 先制造一个迷途指针
(2) 利用我们构造的数据去填充被释放的内存
Human中有两个虚函数,然后human就会有一个虚表,虚表会记录类中所有虚函数的函数指针,可以看到human里面有一个system(“/bin/sh”);这就是我们利用的最终目的,但现在我们还没办法利用,我们接着往下看
接着我们看到man类,他会继承父类的vtable(虚表),同时子类的introduce()的函数的地址会替换父类在introduce()在虚表中的位置.
在分析之前,我们需要有一定的基础知识如下图
把编译好的可执行文件拖入IDA中分析, F5后我们看伪代码,看到v11,我们输入1时执行的是下面的语句,因此可以猜到v11就是vptr,然后转换为指针,取其中的内容就是vtable的第一个值,再加8就是第二个值,真好是introduce的函数指针
一共申请了30h大小的内存,所以我们的长度参数应该传48, V11的值就是rbp-60h处的值
因此我们在此处下断点
b *main+101
V11的值也就是rbx的值为0x555555768e70;
查看0x555555768e70,虚表的地址为0x555555755c88;
看到这里引用的是虚表处偏移8处的函数指针
本来虚表处偏移8是 introduce()的指针,我们把虚表前移8个字节,虚表偏移8处就是 give_shell()的函数指针了
因此我们构造如下数据写入内存
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- [原创]reversing.kr position 7667
- [求助]怎么突破视频播放器的限制 3195
- [分享]某论坛找的160个crackme,希望能帮到新手 12076
- [原创]pwnable.kr uaf 8858
- [原创]pwnable.kr passcode 14730
谁下载
无
看原图
赞赏
雪币:
留言: