摘要:
最近做一些难的题目,越来越自闭,感觉自己的基础知识还有待补充,索性暂停源短时间做题,先把一些基础知识理一理。本系列博客以《ctf-in-all》以及i春秋的《linux pwn基础入门》为基础开始学习。 第一篇博客,来理一理如何利用漏洞获取libc。 首先,libc是什么? libc 即在 Linu 阅读全文
摘要:
nc 一下给的地址和端口号 看一下源文件 看到了熟悉的gets()函数,通常一看到这个函数就八成有缓冲区溢出漏洞,可以看出程序为v5开辟了40H的存储空间,所以输入长度超过40H即可造成溢出,再看sprint()函数 可以看到这个函数是获取flag的关键点,程序会打印出此函数的位置,即0x40060 阅读全文
摘要:
nc 一下给的地址和端口号,大概这个样子。 看一下源文件什么样子。 这是第一个溢出点,里面没什么东西。 第二个溢出点。 距离32的地方,有个0x54的函数指针 exp: 喜提flag。 阅读全文
摘要:
nc一下给的地址和端口号,大概这个样子。 IDA Pro 看一下源文件 看一下sub_A20()函数,就是比较了你输入的数与随机数是否相同 如果五十次都相同,就输出flag。 我们要做的就是,将seed覆盖掉,并且去预测生成的随机数。 这边就可以看到,buf覆盖0x40位就能覆盖到seed。 exp 阅读全文
摘要:
nc了一下平台给的端口号,大概这个样子。 在用ida pro看一下源文件的样子。 寻找一下溢出点。 很明显的栈溢出漏洞,但是没有system函数和/bin/sh字符串了 这里有一个新的模式,泄露函数got表中的地址获取到库中某个函数的真正加载地址,通过偏移找出函数的库,通过然后找出其他函数的真正加载 阅读全文
摘要:
nc 一下所给的地址,大概就是这样。下面用ida pro看一下文件的源码。 乍一看,并没有看出什么问题。 这是write函数,没有什么破绽。 下面看一下vulnerable_function() 这有一个read,可以利用这个buf进行溢出,覆盖掉返回地址,劫持程序执行流,执行我们想执行的方法。通常 阅读全文