Bruce Felix Blog

“知足且坚定 温柔且上进”

Scroll Down

PWN-栈溢出入门-进阶篇

最近花了一段时间深入学习了ctf-wiki中pwn部分,重点学习了其中关于栈溢出相关的知识,并接着Sven分享的栈溢出入门-基础篇,整理了下最近学习的知识点为本进阶篇,推荐组合阅读。

PWN-基础ROP

随着 NX 保护的开启,以往直接向栈或者堆上直接注入代码的方式难以继续发挥效果。攻击者们也提出来相应的方法来绕过保护,目前主要的是 ROP(Return Oriented Programming),其主要思想是在栈缓冲区溢出的基础上,利用程序中已有的小片段( gadgets )来改变某些寄存器或者变量的值,从而控制程序的执行流程。

PWN-格式化字符串漏洞原理介绍

格式化字符串函数可以接受可变数量的参数,并将第一个参数作为格式化字符串,根据其来解析之后的参数。几乎所有的 C/C++ 程序都会利用格式化字符串函数来输出信息,调试程序,或者处理字符串。

PWN-ZCTF2017-Login

Canary 绕过技术之劫持__stack_chk_fail函数。 Canary 失败的处理逻辑会进入到__stack_chk_fail函数,__stack_chk_fail函数是一个普通的延迟绑定函数,可以通过修改GOT表劫持这个函数。利用方式是通过fsb漏洞篡改__stack_chk_fail的GOT表,再进行ROP利用。

PWN-Canary栈溢出保护

Canary 的意思是金丝雀,来源于英国矿井工人用来探查井下气体是否有毒的金丝雀笼子。工人们每次下井都会带上一只金丝雀。如果井下的气体有毒,金丝雀由于对毒性敏感就会停止鸣叫甚至死亡,从而使工人们得到预警。