PWN January 03, 2020

offbyone引发的一连串问题

Words count 61k Reading time 56 mins.

一、题目:Book

先来看看保护机制:

栈溢出保护没开(这是一道堆题。。),其他保护全开

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...
Read article

PWN January 03, 2020

offbyone引发的一连串问题

Words count 61k Reading time 56 mins.

一、题目:Book

先来看看保护机制:

栈溢出保护没开(这是一道堆题。。),其他保护全开

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
__int64 __fastcall main(__int64 a1, char **a2, char **a3)
{
__int64 savedregs; // [rsp+20h] [rbp+0h]

setvbuf(stdout, 0LL, 2, 0L...
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

PWN January 03, 2020

unlink初探

Words count 217k Reading time 3:17

一、源码介绍:

当需要合并相邻的freechunk时用到unlink:

前言:P的选取一定是你要unlink合并后的P的地址,不是随便选取的~

1、向后合并:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!c
/*malloc.c int_free函数中*/
/*这里p指向当前malloc_chunk结构体,bck和fwd分别为当前chunk的向后和向前一个free chunk*/
/* consolidate backward */
if (!prev_inuse(...
Read article

RE January 03, 2020

VM下的RE和PWN学习

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

Article January 03, 2020

2019roarCTF二进制部分题解

Words count 129k Reading time 1:57

一、PWN

1、easy_pwn

这题是简单题,漏洞点在edit函数:

当我们edit时输入的size大于malloc申请时输入的size,多出10即可实现offbyone,这里malloc时只能小于0x100,所以很明显直接extend我们的chunk,先扩大然后free再malloc回来即可实现下溢出修改,大概思路如下:

1、extend the chunk,切割放真实地址到我们的used的chunk,泄露出来

2、修复chunk,再free,然后通过下溢出修改这个free的chunk,实...

Read article

感悟 January 03, 2020

第一篇github博客

Words count 58k Reading time 52 mins.

第一次搭建自己的个人github博客,前前后后用了大概有2天的时间吧,

下载软件+建立库+修改主题+主题配置+文章的攥写

最头疼的是各种玄学问题的出现,让人很无语,找了各种资料去解决,收获了很多知识,也学到了很多东西,实践出真知,多实践真的很好!

配置推荐

关于博客的搭建,网上有一大把教程,这里就不多说了,这里分享一个大佬的基本主题配置,很受用:https://www.jianshu.com/p/3a05351a37dc

代码测试

pwn代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18...
Read article

PWN January 03, 2020

堆进阶学习之4大利器

Words count 60k Reading time 54 mins.

一、Tcache攻击

前言:

​ 之前打比赛一直都是做ubuntu16.04的,很少做ubuntu18下的(有tcache机制),护网杯有道题是libc-2.27.so,我一开始不会做tcache,学了一晚上,理解了基础的原理和攻击方式,这里做个小小的总结。

首先是tcache的原理,这个在ctfwiki上讲的挺透彻的,这里做个复习。

1、重点需要理解的2个函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#堆块free后放入tcache
static void
tcache_put...
Read article

PWN January 03, 2020

32位、64位下arm_pwn学习

Words count 28k Reading time 25 mins.

前言:

pwn的学习之路一直在进行,今天看了arm_pwn,搞环境就搞了半天,琢磨工具使用到做题,这里总结下,希望能帮助到大家,少走一点弯路。

一、环境配置:

环境是一大玄学问题,这里仅仅是 我Ubuntu16.04下的环境配置,亲测有效,但是遇到玄学的问题时,也请留言,努力帮大家解决。

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
#安装qemu
sudo apt-get install qemu
#sudo apt-get install qemu-user(ubuntu20...
Read article

PWN January 03, 2020

AWD中的patch技巧总结

Words count 6k Reading time 5 mins.

一、栈题的patch技巧

1、修改read的大小:

这里很明显栈大小是0x30,但是可以输入的大小是0x12C,所以绝对的栈溢出,这里改size为0x30就不会溢出了:记住是改汇编

2、第二种改法是改leave_ret为ret_ret:

修改后:

方法二只适用于只有main函数的,没有子函数调用的栈溢出类型题目。

3、当遇到gets函数时,改成read函数:

这里改到我们的en_frame段中去执行那个read函数:

将size大小改成了0x18,就不会栈溢出啦~

二、格式化字符...

Read article

密码学 January 03, 2020

Base64加密算法小研究

Words count 28k Reading time 25 mins.

1、先了解一波什么是Base64编码的加密与解密:

1、Base64使用A–Z,a–z,0–9,+,/ 这64个字符.

2、编码原理:将3个字节转换成4个字节( (3 X 8) = 24 = (4 X 6) )先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了.

3、解码原理:将4个字节转换成3个字节.先读入4个6位(用或运算),每次左移6位,再右移3次,每次8位.这样就还原了.

Base64是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的ASCII字符...

Read article
Load more
0%