随笔分类 - CTF
摘要:感觉这个题目并不值500分,有些地方比较牵强,漏洞也比较明显,解题方法有多种,出题者把堆的布局随机化了,不过使用fastbin doublefree的话,可以完全忽视被打乱的堆。
阅读全文
摘要:Pages 题目来自于CCS 2016 《Prefetch Side-Channel Attacks: Bypassing SMAP and Kernel ASLR》,利用intel prefetch指令来区分mmaped memory和empty memory。 Choices 想找时间再分析分析
阅读全文
摘要:Recurse 好记性不如烂笔头。当时没有记录,现在趁着有时间简单写一写,为以后留备份。 这个题目当时并没有队伍做出来,赛后作者发布了题目的源码和解答。看了之后发现是一个UAF漏洞,不过漏洞很不好找。直接用IDA的F5看代码会感觉怪怪的,这是因为程序的编译用到了safestack,safestack
阅读全文
摘要:TEA 感觉这个题目出得很不错。先运行程序了解基本功能,程序可以读取对系统上存在的文件的内容,如果文件不存在的话,直接退出。 使用IDA打开后,发现父进程通过clone api克隆出一个子进程,主要的功能都是子进程中实现的。子进程的栈是父进程通过mmap一段可读可写的内存所提供的,栈的地址是mmap
阅读全文
摘要:抽出世间将UCTF Final中的hackventure给记录下,算是个总结。题目是有一个游戏,游戏地图是随机生成的,用户可以攻打Server,如果3个Server都被攻占的话,那么用户就赢了,但是并没有Flag。 题目以及IDB见:http://files.cnblogs.com/files/wa
阅读全文
摘要:抽时间将XCTF Final中Richman这个题总结了下。题目及ida idb所在的链接在:http://files.cnblogs.com/files/wangaohui/richman-blog.zip 在比赛中,我们很快地就Fuzz到了漏洞所在的位置,但是可能是由于现场的环境和平常线上赛的环
阅读全文
摘要:比赛过去了两个月了,抽出时间,将当时的PWN给总结一下。 和线上塞的题的背景一样,只不过洞不一样了。Checksec一样,发现各种防护措施都开了。 程序模拟了简单的堆的管理,以及cookie的保护机制。漏洞是一个内存未初始化漏洞,就是申请内存的时候,上一次的内存还未清0,这个时候通过构造特定输入可以
阅读全文
摘要:上上周参加了阿里的CTF,靠着最后绝杀队伍有幸拿到了国内第一名,也顺利进入了XCTF Final。把自己做的几个题简单写了下,发出来也算个总结吧。 PWN-FB 经典的null byte overflow加上unlink,覆盖下一个堆块SIZE字段的pre_inuse字段,free时造成后向融合,u
阅读全文
摘要:Kali下使用libheap 在github上,可以libheap用来帮助调试堆溢出。链接见:https://github.com/cloudburst/libheap 但是最后一次更新在一年前了,我直接拿着在Kali 2.0上使用时,会出错,比如: 我就对其进行了修改,保证可以在Kali 2.0下
阅读全文
摘要:续上次,在ubuntu server 14.04交叉编译好后,下一步就是在windows上使用了。 在windows上,我主要是用python进行分析程序,因此我最初安装的是官网上的 unicorn-0.9-python2.7-win32.exe。至于我为什么要用32位的版本,因为64位的版本不能在
阅读全文
摘要:Ubuntu server 14.04 交叉编译Unicorn-engine 编译的过程基本上按照的是unicorn/COMPILE-WINDOWS.md描述的进行编译的,不过还是改了一些地方。在Ubuntu 14.04 server上交叉编译Unicorn给windows使用。 第一步就是按照Mi
阅读全文
摘要:CCTF-PWN1&&PWN3 PWN1比较有意思,在得到输入的数据后使用shutdown将标准输入,标准输出和标准错误关闭了读写功能的读。也就是不能进行交互了,要保证一次输入就能拿到flag。后来听joker师傅说可以用dl-resolve来做,有时间了准备试试。 题目可以进行信息泄露,所以我就单
阅读全文
摘要:SSCTF-Final-Re-Play 比赛时花了一晚上搞定了,结果写脚本的时候发送的内容忘记base64加密然后异或8了,手动测试的时候当然是这样做了,写脚本的时候脑抽了。这个题只有forx做出来了,白白损失了一个打全场的机会,赛后大家估算了下要是没弄错了的话,应该是在前5名。补丁打好了,但是这个
阅读全文
摘要:和线上赛的题目差别不大,但是需要自己去泄露堆的地址。除了线上赛的溢出之外,还多了一个Use After Free的洞。我写了两种利用方法。 线上赛writeup见:http://www.cnblogs.com/wangaohui/p/5211672.html 信息泄露可以通过格式化字符串的洞来完成。
阅读全文
摘要:Pwn-ruin 用几个词来概括下漏洞原理:Arm+heap overflow(house of force)+dl-resolve Info leak: 在printf key8时,泄漏堆上地址(secret里放的是堆上地址)。 增大top chunk的大小 可以保证下一次malloc时,申请到任
阅读全文
摘要:程序很小,读写操作直接通过int 80h系统调用完成。栈溢出漏洞很明显,能溢出20字节。提示由于沙盒的保护只能来读取/home/warmup/flag文件。那么思路就很清楚了,打开flag文件,读取flag文件到内存,写内存到标准输出。现在遇到了第一个问题,打开文件的系统调用是5,系统调用号要放在e
阅读全文
摘要:Simple Calc 明显的memcpy栈溢出,是一个静态链接的程序所以没给libc。发现里面有: 参数a1应该为_libc_stack_end的地址了。_stack_prot通过rop修改为0x7即111b,这样的话stack就是可执行的了,然后就可以执行shellcode啦! 1 #!/usr
阅读全文
摘要:前几天比赛的PWN题,简单写了下。 PWN400 漏洞是一个数组越界访问造成的任意地址读写。在对数据排序后,对数据进行查询和更新时,可以访问到数组以外一个元素(4个字节)。 程序中存在3种数据结构,第一种是用于存储排序数据的基本块。可以定义为: typedef struct chunk1{ int
阅读全文
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 这道压轴的题也是名副其实,很有分量。这也是自己第二次做C++类型的PWN。含有两个漏洞,缺一不可,一个漏洞将指定位置覆盖为对象虚表的地址,另外一个漏洞用来堆溢出(DW-Shoot)。 第一个漏洞所在位置: 第二个漏洞所在位置:如果连续对一种食物编
阅读全文
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 最近有了点时间,把ZCTF的pwn总结了下,就差最后一个pwn500,另找时间总结。 文件打包:http://files.cnblogs.com/files/wangaohui/attach.zip Pwn100 很明显栈溢出,但是有canary
阅读全文