任务11:Linux缓冲区溢出-Fuzzing调试

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






上面测试有溢出漏洞,下面就是精确到哪里有溢出了。



下面的脚本得多留意一下。

运行上面的脚本之后,看下面的图:


另外,这里有点奇怪的是,只有发送4379个字符才会溢出,而不是说超过4379就能溢出。和之前的windows差距比较大。windows是只要超过一定的数值,就能溢出了。所以,这里要注意。还有,如何知道是4379个字符是溢出的???(crossfire程序的服务比较奇怪,必须要是一个固定的数值,才会溢出。至于怎么测试到时4379的,没有细说)

我估计,是利用唯一字符法,先找到EIP里面的地址,然后,逐步测试ESP里面的值。由于是四个一组,每次测试都是都是加4,4368+4=4372,4372+4=4376,这里已经到了ESP的前四个字符了。后面再测试4380估计失败了。于是又减少字符量,测试到4379刚好溢出成功。EIP也准确写入四个字符。我估计是这么回事。

由于必须精确字符数量,这就导致了在ESP中只能存7个字符,存7个字符又无法写shellcode。所以,思路是找到一个固定的地址,能存入shellcode的地址。因此,现在的问题就是如何找到这个地址。

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

推荐阅读更多精彩内容