PWN April 26, 2021

BUUCTF刷题

Words count 168k Reading time 2:32

前言

最近准备打一下铁三,因为知道有3道pwn题,正好毕业答辩完,刷刷题目,准备一手,只记录有意思的题目,或者自己忘记的知识点或者知识盲区的题目。

一、pwn1_sctf_2016

一道有趣的题目,先来看...

Read article

PWN April 02, 2021

CVE-2015-5621-net-snmp之空指针错误Dos攻击

Words count 26k Reading time 24 mins.

一、net-snmp简介

SNMP协议是个成熟的网络管理协议,可以使用在远程系统中检索信息和设定值,在传输层它使用的是UDP协议,而net-snmp是个开放源代码的snmp协议实现。支持v1,v2c还有v3,并可以使用ipv4和ipv6,也包含了snmp trap的所有相关实现。net-snmp包含了snmp实用程序集和完整的snmp开发库。可以理解成net-snmp就是对snmp的封装,可以实现很多snmp的功能。

二、漏洞描述

CVE-2015-5621是15年爆出来的cve漏洞,影响5.8之前...

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

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

PWN July 14, 2020

AFL-fuzz初探

Words count 23k Reading time 21 mins.

一、下载与安装

这里附上官网下载地址:https://lcamtuf.coredump.cx/afl/

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

1
2
make
sudo make install

说明安装好了,这里解析下每个文件的作用

1
2
3
4
5
6
7
8
9
10
afl-gcc和afl-g++ 分别对应 gcc和g++的封装 
afl-clang和afl-clang++ 分别对应clang的c和c++的封装
afl-fuzz 是AFL的主体,用于对目标程序进行fuzz
afl-analyze...
Read article
Load more
0%