「 RE 」
January 03, 2020
Words count
58k
Reading time
53 mins.
一、逆向 1、re 第一题,拖进ida发现是打不开的,怀疑题目加壳了,elf文件加壳的话,拖进虚拟机,直接打命令:
strings re
看到:
UPX的壳直接脱了,upx -d 文件名
看到函数名被隐藏了,但是很简单,直接shift +f12查找字符串,input flag,双击定位到那里,查看引用,ctrl + x,就可以定位到主逻辑了,F5,就是上面的界面了,接着分析一波,看到correct,直接进去:
可以知道是除法,但是少了a1[6]的检验,出题粗心吧?!直接脚本搞出来,a1[6]...
Read article
「 密码学 」
January 03, 2020
Words count
1.1k
Reading time
1 mins.
一、MAC的原理和分析 MAC算法结合了md5和sha算法的优势,并加入密钥的支持,是一种更为安全的消息摘要算法,MAC是含有密钥的散列函数算法,兼容了md5和sha算法的特性,并在此基础上加入了密钥。
经过mac算法得到的摘要值也可以用16进制编码表示,其摘要值长度与参与实现的摘要值长度相同,例如,HmacSHA1算法得到的摘要长度就是SHA1算法得到的摘要长度,都是160位二进制,换算成十六进制编码为40位。
多对一函数的话,可以知道一般比较难破译,正常来说,可以分为3种类型,如图所示:
...
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
「 PWN 」
January 03, 2020
Words count
14k
Reading time
12 mins.
一、神奇的gadget:
这个gadget一般存在于__do_global_dtors_aux中,可能是出题人自己写的gadget吧~适用于no leak类型的题目。
拿一道题看看吧:
no_leak 先看看保护机制:
got表不可改,NX保护,庆幸的是没有canary保护和pie,比较友好,先看看ida:
Read article
「 PWN 」
January 03, 2020
Words count
49k
Reading time
45 mins.
一、题目 library 先checksec下:
除了pie没有开,其他保护都开了,got表不可改,那么只能改malloc_hook和free_hook了,这题ida看下逻辑:
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 int __cdecl __noreturn main (int argc, const char **argv, const char...
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
15k
Reading time
14 mins.
Pwn题目:story
![image.png](https://upload-images.jianshu.io/upload_images/9085575-5c9429d71ed20cb7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这题一看除了没开内存地址随机化,其他都开了,分析逻辑发现漏洞点,格式化字符串漏洞,还有栈溢出漏洞,可以泄露真实地址和canary。v1=1024个字节,在strdup这个copy函数可以实现...
Read article
「 PWN 」
January 03, 2020
Words count
6.6k
Reading time
6 mins.
一、原理:
先来看下small bin中的源码:
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 if (in_smallbin_range(nb)) { idx = smallbin_index(nb); bin = bin_at(av, idx);
Read article
「 PWN 」
January 03, 2020
Words count
21k
Reading time
19 mins.
一、原理介绍:
1、修改size:
1 2 3 4 5 6 7 8 9 10 11 12 #include "stdio.h" #include "string.h" int main () {unsigned long * chunk1=malloc (0x40 ); unsigned long * chunk2=malloc (0x40 ); malloc (0x10 );free (chunk1);free (chunk2);chunk1[-1 ]=0xa1 ; malloc (0x1000 );&...
Read article
「 PWN 」
January 03, 2020
Words count
84k
Reading time
1:17
一、第一种类型的原理 House of Orange 的利用比较特殊,首先需要目标漏洞是堆上的漏洞但是特殊之处在于题目中不存在 free 函数或其他释放堆块的函数。我们知道一般想要利用堆漏洞,需要对堆块进行 malloc 和 free 操作,但是在 House of Orange 利用中无法使用 free 函数,因此 House of Orange 核心就是通过漏洞利用获得 free 的效果。如我们前面所述,House of Orange 的核心在于在没有 free 函数的情况下得到一个释放的堆块...
Read article