任务12:Linux缓冲区溢出-Fuzzing思路

注:学习笔记来自安全牛课堂。感谢倪群主,感谢苑老师!

前面一节中,最大的问题就是如何找到能写入shellcode的内存地址?

由于ESP只能存入7个字符,所以无法写入shellcode,因此只能在其他几个寄存器中逐个寻找。


但是,这里做实验的机器找到了能存入shellcode的内存地址,如果换个环境,地址就又会发生变化。

所以,得想方法每次都能跳转到EAX寄存器中。并且还要偏移12个字节。一旦没有偏移,覆盖了EAX原有的12个字符,那么就有可能会出错。



开始运行脚本,然后去调试器上看是否成功。

到目前为止,还是比较理想的。之前在windows上的时候,用的是mona脚本,去找系统模块,在系统模块里面找汇编指令。但是,在linux环境中,只能用下面这种方法了。


点击之后,就到了下面这个界面:


由于是ESP和EIP之间的跳转,所以上图得设置一下。同时那里选择第一行的原因我估计是可读可执行。。。


根据这个指令的内存地址。进行跳转。

总体思路如下:
溢出到EIP----精确溢出EIP----将ESP中溢出"偏移12个字符 JMP EAX 并且 \x90\x90"(因为一旦溢出了EIP范围,就会溢出到ESP中,但是现在还无法百分百到达ESP寄存器中)----将EIP中存储数据溢出成“JMP ESP指令”的地址----下面,就差找出坏字符和进行shellcode的编写了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 缓冲区溢出(Buffer Overflow)是计算机安全领域内既经典而又古老的话题。随着计算机系统安全性的加强,传...
    Chivalrous阅读 5,105评论 0 5
  • title: 缓冲区溢出date: 2016-06-15 20:30tags: Kali渗透测试 0x00 缓冲区...
    曼路x_x阅读 5,921评论 0 5
  • 原文地址:C语言函数调用栈(一)C语言函数调用栈(二) 0 引言 程序的执行过程可看作连续的函数调用。当一个函数执...
    小猪啊呜阅读 10,166评论 1 19
  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,591评论 8 114
  • 1.买东西总觉得差不多得了,坏了可以修,凑活也能用。找对象却幻想着一蹴而就,我就这样儿,就这脾气,就这观念,就这生...
    就怕不够浪阅读 1,384评论 0 0