好久没玩cuit,今年重拾ctf,入坑pwn,据说cuit题目出的不错,我不管,对本人来讲,能学到东西的题目就是好师傅,下面看题:
题目就给了一个地址,没有任何附件,于是用nc连上去看看:
好久没玩cuit,今年重拾ctf,入坑pwn,据说cuit题目出的不错,我不管,对本人来讲,能学到东西的题目就是好师傅,下面看题:
题目就给了一个地址,没有任何附件,于是用nc连上去看看:
对于这一题(出自iscc2017)我是又爱又恨,爱是因为它帮助我去学习了一直以来没去实践过的堆分配策略、double free漏洞等相关的经典知识,恨是因为个人水平有限被这道题整整虐了五天,每次觉得突破了一个关卡后面又等着一个坑,让人欲罢不能,最终也实在无奈又好奇地去求教一些大佬才得以解惑,也着实受益匪浅。下面分享一下这题的心路历程吧~
先看一下程序的功能,每次会输出包含4个选项的菜单,分别是1、create(创建内存堆块并保存输入数据)2、read(读取某堆块内存的数据)3、free(释放某堆块的内存数据)4、bye(退出):
有了第一次做题经验后,便对pwn变得异常的喜欢。ssctf2017的这题pwn虽然说很简单,但对于本人这种新手来说绝对爱不释手。程序漏洞逻辑很简单,先输入要输出字符串的大小,分配对应的内存后存储输入字符串,然后再进行输出:
代码如下,这里本身没有漏洞,但是在输出的时候故意使用了个自定义的漏洞函数:
这是我做的第一道pwn的题目(出自iscc2017),一看代码便知道是考察格式化字符串漏洞的利用。于是搜索相关的资料,学习具体如何解题。然后发现目前做pwn类的题目都流行写python脚本,并使用python的一个第三方工具库“pwntools”,该工具库的理念就是为了方便写exp。于是在kali linux 上试着装一下pwntools,刚开始可能由于依赖环境比较复杂会失败,多重试几遍即可。接着就迫不及待学着用这个工具来写exp了。
该题目是一个简单的交互程序,让用户选择输入自己的名字并输出应答语句:
本文已发表于“安全客”,转载请注明出处。
这一期的漏洞分享给大家带来的是CVE-2015-1641的学习总结,这个漏洞因其较好的通用性和稳定性号称有取代CVE-2012-0158的趋势。该漏洞是个类型混淆类漏洞,通过它可以实现任意地址写内存数据,然后根据漏洞的特点,再结合一些典型的利用手法可以达到任意代码执行。
这个漏洞的常见样本是rtf文档格式的文件,这点和下文的漏洞利用有关,主要原因是rtf方便构造利用组件(当然这并不绝对)。然而,漏洞的原理其实和rtf文档格式无关,而是与office的open xml文档格式的实现有关。这种文档格式常见的word文档拓展名就是docx,实际上是一个使用open xml组织文档内部资源后的zip压缩包。