PWN January 03, 2020

canary崩坏技巧

Words count 62k Reading time 56 mins.

题目1:bin

方法介绍:leak canary

利用格式化字符串漏洞,泄露出canary的值,然后填到canary相应的位置从而绕过保护实现栈溢出。

开始分析:

常规操作,先checksec下,再ida静...

Read article

PWN January 03, 2020

canary崩坏技巧

Words count 62k Reading time 56 mins.

题目1:bin

方法介绍:leak canary

利用格式化字符串漏洞,泄露出canary的值,然后填到canary相应的位置从而绕过保护实现栈溢出。

开始分析:

常规操作,先checksec下,再ida静态分析




很明显有格式化字符串漏洞和栈溢出漏洞,但是开了栈溢出保护,程序有2个输入,第一次输入可以先泄露cananry,第二次直接覆盖canary就可以栈溢出了,简单明了,gdb动态调试,可以看到canary在格式化字符串的偏移为7,

在第二个次输入中,我们需要输入到canary进行覆盖工作,这是可以...

Read article

PWN January 03, 2020

dl_runtime_resolve总结

Words count 43k Reading time 40 mins.

一、前置知识:

程序:hhh

常规思路,先检查再分析逻辑:

很简单,就只有堆栈不可执行的保护,一个write函数,还有一个read函数栈溢出(0x24,0x80)。

一想到这里,思路就是栈迁移用write先泄露libc_start_main的真实地址,再onegadget即可getshell,但是今天要学习的是不用泄露就可getshell的做法:dl_runtime_resolve

做题前先了解下前置知识:随便找个程序:666分析,看到第一次调用puts函数。

查看内存可知,就是push ...

Read article

PWN January 03, 2020

house of force初探

Words count 12k Reading time 11 mins.

house of force介绍:

通俗的讲就是通过修改topchunk的size字节来控制malloc的返回地址,从而达到修改任意地址内容的目的:

具体原理分析:

因为从topchunk的切割是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
p = av->top;
size = chunksize (p);
/* check that one of the above allocation paths succeeded */
if ((unsigned long) (size) >= (unsigned...
Read article

PWN January 03, 2020

0CTF复现zero

Words count 53k Reading time 48 mins.

zerostorage

前言:这道题是2016年的0CTF的一道pwn,带了点内核的考点在里面,主要是unsorted_bin的攻击。

1、分析保护机制

保护全开,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
__int64 __fastcall main(__int64 a1, char **a2, char...
Read article

PWN October 08, 2019

Largebin attack从原理到做题

Words count 208k Reading time 3:09

一、largebin的原理学习

大于512(1024)字节(0x400)的chunk称之为large chunk,large bin就是用于管理这些large chunk的

Large bins 中一共包括 63 个 bin,index为64~126,每个 bin 中的 chunk 的大小不一致,而是处于一定区间范围内

largebin 的结构和其他链表都不相同,更加复杂

largebin里除了有fd、bk指针,另外还有fd_nextsize 和 bk_nextsize 这两个指针,因此是有横...

Read article

PWN October 01, 2019

House of romain

Words count 14k Reading time 12 mins.

一、原理

House of romain简称为爆破法,是一种简单粗暴的方式,结合了fastbin attack(UAF)+unsortedbin attack(获取真实地址),特征就只有一个:

UAF漏洞+堆溢出(能修改size就行),没有puts函数

攻击流程:

申请fastbin大小的chunk1,先free掉fastbin中的chunk1,然后由前一个chunk0堆溢出改chunk1大小,使其落入unsorted bin,再free掉unsortedbin中同一chunk1(UAF实现double...
Read article
0%