「 兴趣研究 」
May 13, 2020
Words count
6.4k
Reading time
6 mins.
一、什么是angr?
angr 是一个功能强大的二进制程序分析框架,可用于程序的静态分析和动态符号执行。支持 x86、ARM、MIPS 和 PPC 架构中 32 bit 和 64 bit 可执行程序的分析,是一款非常强大的python库。
二、angr怎么安装?
1、安装 virtualenvwrapper
virtualenv 是一个可以在同一台计算机中隔离多个 Python 环境的工具。它能够用于创建独立的 Python 环境,使得多个 Python 环境互不影响。virtualenvwrapper...
Read article
「 CTF比赛 」
January 03, 2020
Words count
68k
Reading time
1:02
1、task_main(强网先锋)
分析算法可知是base64加密:
提取字符,’ZmxhZ3ttYWZha3VhaWxhaXFpYW5kYW9ifQ==’
直接在线解密:
1
| flag{mafakuailaiqiandaob}
|
2、JustRe:
进入主逻辑,分析程序:
这里可知道有2关,先看第一关:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48... |
Read article
「 CTF比赛 」
January 03, 2020
Words count
32k
Reading time
29 mins.
一、Pwn
1、HackNote | solved
这题什么保护也没有开,分析程序发现是常见的菜单题:
![57371788851](/blog_img/1573717888513.png)
漏洞点在于edit函数:
![img](/blog_img/1573717896780.png)
会计算输入的字符个数作为下一次edit的size,这里只要申请时0xx8形式的大小,这样就会连着下一个chunk的size,因为计算时看0截断的,也就是说size会被算进去,实现offbyone的漏洞,就可以利用...
Read article
「 CTF比赛 」
January 03, 2020
Words count
64k
Reading time
59 mins.
一、Pwn
1、three | solved
这题看到程序输入3字节后有个call指令,可以执行命令:
所以填入机器码,利用mov指令跳转到ecx寄存器(rcx正好有我们后面的输入的bss的地址),就可跳到bss地址执行我们的静态ropchain,直接getshell~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61... |
Read article
「 CTF比赛 」
January 03, 2020
Words count
28k
Reading time
25 mins.
前言
这场比赛打了2天,学到了东西,在这里做下总结,方便后续学习。
一、Pwn方向
1、playfmt
这次的pwn题很不友好,只有这题能做,菜鸡Orz,先检查保护机制:
got表不可改,堆栈不可执行,看名字知道是格式化字符串漏洞的题目~ida分析一波:
可以看到申请了堆块去存放flag的内容,然后进去logo函数的do_fmt函数,里面有格式化字符串漏洞:
漏洞点就是格式化字符串,这里能读入0xc8字节,而且是个死循环,除非你输入quit手动退出,很明显了,但是buf不是栈,是bss段地址,也...
Read article
「 CTF比赛 」
January 03, 2020
Words count
60k
Reading time
55 mins.
一、Pwn
1、login
先看保护机制:
除了pie,其他保护全开,这题因为pie是关的,但是做太多保护全开的题目,下意识已经觉得堆的地址是变的了,但是堆地址是不变的,所以饶了下弯路才走出来,下面进入正题:
熟悉的菜单堆题,这里漏洞点主要在于free函数,有个UAF的漏洞,还有在login时可以打印出密码,这里应该是泄露地址的地方
但是按照一般的方式去unsorted bin的attack不行,这里利用pie关闭,可以采用爆破的方式去泄露地址,一个字节一个字节地去泄露,从而得到libc_base...
Read article
「 RE 」
January 03, 2020
Words count
656k
Reading time
9:56
一、前言
前段时间一直碰到vm的pwn题,之前打re也是,遇到就懵,所以花时间好好整理下这部分知识点。
二、VM下的逆向
首先需要搞清楚的是,vm是一种逻辑,就是自己实现一个小型的虚拟机来实现简单的操作,有点自己开发计算机的感觉。
下面一步步讲解下最重要的内容:
1、register
1 2 3 4 5 6 7
| enum regist { R1 = 0xe1, R2 = 0xe2, R3 = 0xe3, R4 = 0xe5, };
|
这是我们虚拟机的寄存器,想要的数量和类型可以自己设置,这里我们枚举...
Read article