PWN March 22, 2021

CVE-2018-6789——Exim RCE Vulnerability

Words count 21k Reading time 19 mins.

前言

这个漏洞由台湾的安全研究员工meh发现,经过华为未然实验室的师傅复现,成功实现了远程代码执行,最近在学习网络协议漏洞的挖掘,正好复现一下这块的东西,这两天要啃下来!

一、漏洞介绍

漏洞的成因是b64decode...

Read article

PWN March 22, 2021

CVE-2018-6789——Exim RCE Vulnerability

Words count 21k Reading time 19 mins.

前言

这个漏洞由台湾的安全研究员工meh发现,经过华为未然实验室的师傅复现,成功实现了远程代码执行,最近在学习网络协议漏洞的挖掘,正好复现一下这块的东西,这两天要啃下来!

一、漏洞介绍

漏洞的成因是b64decode函数在对不规范的base64编码过的数据进行解码时可能会溢出堆上的一个字节,比较经典的off-by-one漏洞。

存在漏洞的b64decode函数部分代码如下:

1
2
3
4
5
6
7
8
9
10
11
b64decode(const uschar *code, uschar **ptr)
{...
Read article

漏洞挖掘 March 20, 2021

AFL-V1ct0r安装说明

Words count 2.9k Reading time 3 mins.

一、AFL-Fuzz的安装

将压缩包解压后,放到虚拟机中,进入文件夹,执行下面的命令进行安装:

1
2
make
sudo make install

afl-fuzz安装说明:

[-] Error: ‘bison’ not found, please install first.
[-] Error: ‘flex’ not found, please install first.

缺失库的话先安装下库,关于afl-fuzz的具体使用,可以参考网上的很多blog~

二、LIEF库的下载安装

参考github...

Read article

RE February 04, 2021

sm4国密加密算法研究

Words count 374 Reading time 1 mins.

一、sm4算法

1、其实和aes和des类似,sm4算法也是一种分组加密算法。

2、密钥长度128bit(16字节),分组长度也是128bit(16字节),也就是16位字符为一个组作为输入进行加密,得到对应的16位的输出。

3、加密算法与密钥扩展算法均采用32轮非线性迭代结构,以4字节为单位进行加密运算,每一次迭代运算均为一轮变换函数F

4、sm4算法的加解密的结构相同,只是使用的轮密钥是相反的,解密用的密钥是加密密钥的逆序

5、目前pyhton已经集成了sm4的算法实现

Read article

PWN&RE January 20, 2021

六星CTF二进制题解

Words count 208k Reading time 3:09

一、PWN

1、babyheap

一道2.27的新机制的题目

https://www.anquanke.com/post/id/219292

但是直接改bk指针即可,因为和2.31一样

漏洞点:UAF

输入点:只能改bk指针,所以需要切割实现overlap通过上一个堆块改下一个堆块的fd指针

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

PWN December 29, 2020

linux下的对进程的学习

Words count 9.3k Reading time 8 mins.

一、什么是进程?

就是操作系统为了实现某些功能进行的分身术,生成的子进程可以进行相应的工作

创建进程最基本的调用是fork

1
2
3
# include <unistd.h>
pid_t fork(void);
pid_t vfork(void);

调用 fork 时,系统将创建一个与当前进程相同的新进程。通常将原有的进程称为父进程,把新创建的进程称为子进程。子进程是父进程的一个拷贝,子进程获得同父进程相同的数据,但是同父进程使用不同的数据段和堆栈段。子进程从父进程继承大多数的属性,但是也修改...

Read article

PWN December 23, 2020

CVE-2017-13089—wget栈溢出

Words count 31k Reading time 28 mins.

一、漏洞描述

wget 是一个从网络上自动下载文件的工具,支持通过 HTTP、HTTPS、FTP 三种最常见的 TCP/IP 协议,在1.19.2的版本之前,被爆出一个严重的栈溢出漏洞,wget在处理重定向时,会调用http.c:skip_short_body()函数,解析器在解析时会使用strtol函数去读取每个块的长度,但是不检查块的长度是否为非负数,解析器试图通过MIN()函数跳过块的前512字节,最终传递参数到connect.c:fd_read()中。由于fd_read()仅会接受一个int...

Read article

PWN December 04, 2020

AFL-fuzz源码阅读计划

Words count 42k Reading time 38 mins.

一、什么是afl-fuzz

American fuzzy lop 号称是当前最高级的Fuzzing 测试工具之一,由谷歌的Michal Zalewski 所开发。通过对源码进行重新编译时进行插桩(简称编译时插桩)的方式自动产生测试用例来探索二进制程序内部新的执行路径。与其他基于插桩技术的fuzzers 相比,afl-fuzz 具有较低的性能消耗,有各种高效的fuzzing 策略和tricks 最小化技巧,不需要先行复杂的配置,能无缝处理复杂的现实中的程序。当然AFL 也支持直接对没有源码的二进制程...

Read article

PWN November 26, 2020

glibc2.29-2.31刷题

Words count 96k Reading time 1:27

一、small bin attack

祥云杯babyheap

分析下程序的流程

在menu前面还有个vmmap申请出内存,然后往里面存flag的操作,我们来看看:

这里会放flag到内存中,然后在flag上方放入随机数,接着打印出随机数的地址给我们

接着我们分析下这个程序:

calloc

这是一个会清空内存的堆申请操作,而且不按照malloc那种方式优先利用tcache而是另起炉灶从topchunk切割,直到unsorted bin有东西,也会优先考虑unsorted bin,这里申请范围在0x80...

Read article

PWN November 19, 2020

SROP专题

Words count 45k Reading time 41 mins.

一、什么是srop?有什么用?

srop技术用来还原系统调用前的寄存器信息,那么我们可以伪造寄存器的值实现函数调用利用~简单理解成类似栈溢出劫持控制流。

在CTF中最常和orw的题目相结合。

二、不同ubuntu版本下的srop的使用技巧

1、16.04(glibc2.23)

这里简单拿一道题示范一下:

题目本身不难,就一个堆任意溢出,但是作为复习的话,用不同的方法去把它打出来,打法也是比较常规,先io_file泄露地址,然后unsortedbin 往free_hook上方写一个0x7f的size...

Read article

PWN November 09, 2020

Windows-pwn入门

Words count 19k Reading time 18 mins.

一、前言

因为讲漏洞挖掘的老师讲到了windows下的栈溢出漏洞等,本着学习的心态,想学习一下具体的利用方式,所以干脆直接装一下环境。

二、环境安装

1、下载xdbg和ida作为调试器(32位+64位)

这个相信搞二进制的师傅都有~

2、下载安装pwntools

1
sudo python -m pip install pwntools

可能有些师傅直接pip install 就可以装了,这里只是给出我的计算机环境安装方法,装好了后,import pwn没问题就没事,要是有问题的话,具体情况具体分析,...

Read article
Load more
0%