「 PWN 」
March 22, 2021
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
Words count
2.9k
Reading time
3 mins.
一、AFL-Fuzz的安装
将压缩包解压后,放到虚拟机中,进入文件夹,执行下面的命令进行安装:
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
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
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
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
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
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
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
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
Words count
19k
Reading time
18 mins.
一、前言
因为讲漏洞挖掘的老师讲到了windows下的栈溢出漏洞等,本着学习的心态,想学习一下具体的利用方式,所以干脆直接装一下环境。
二、环境安装
1、下载xdbg和ida作为调试器(32位+64位)
这个相信搞二进制的师傅都有~
1
| sudo python -m pip install pwntools
|
可能有些师傅直接pip install 就可以装了,这里只是给出我的计算机环境安装方法,装好了后,import pwn没问题就没事,要是有问题的话,具体情况具体分析,...
Read article