摘要: 在protostar的stack6练习中,提到了ret2libc,所以这里先对这种攻击手段做一个介绍,学习来源https://www.shellblade.net/docs/ret2libc.pdf,仍旧是在protostar的虚拟机上进行的实验。 阅读全文
posted @ 2018-05-01 09:28 s1len0eye 阅读(1578) 评论(0) 推荐(0) 编辑
摘要: 这次练习只有buffer一个变量,所以不能再通过覆盖变量值应该程序执行逻辑了,这次我们可以直接覆盖main函数的返回地址,那么它的返回地址在哪里呢? 阅读全文
posted @ 2018-04-30 17:23 s1len0eye 阅读(352) 评论(1) 推荐(0) 编辑
摘要: 这个练习需要找到函数的起始地址,并用该地址覆盖栈中的函数指针。 阅读全文
posted @ 2018-04-30 16:07 s1len0eye 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 这次练习通过环境变量设置buffer的值,所以我们需要在exploit中设置一个大于64字节的环境变量。 阅读全文
posted @ 2018-04-30 15:16 s1len0eye 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 上一个练习我们通过利用栈溢出漏洞修改了栈中变量modified的值,但是我们并没有控制将modified修改成什么值。在这个练习中我们会试图将modified修改为特定的值,这就需要我们了解变量在内存中是怎样存储的。 阅读全文
posted @ 2018-04-30 15:14 s1len0eye 阅读(687) 评论(0) 推荐(1) 编辑
摘要: 练习地址:https://exploit-exercises.com/protostar/ 我们知道,当程序执行进入一个新的函数时,系统会为函数在栈上分配一块空间,用来存储函数中使用的参数和局部变量信息,用寄存器ESP和EBP指示空间范围,当从函数返回时,这块空间也会被抛弃,实际上就是修改ESP和EBP寄存器中的值。这个练习说明了变量在栈的分配情况,以及怎样突破ESP和EBP对空间的限制,修改分配空间外的数据,使得函数的执行逻辑发生变化。 阅读全文
posted @ 2018-04-30 14:56 s1len0eye 阅读(476) 评论(0) 推荐(0) 编辑