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