Dafeng's Blog

一生想做浪漫极客

Stack overflow pwnd using syscall

栈溢出利用--syscall

简述 此次hitcon 2017 pwn部分的第一题,题型为栈溢出,利用syscall系统调用完成程序栈溢出利用,然后此题要求使用ruby版的pwntools,使得我2天ruby从入门到放弃,再也不碰ruby,毕竟我是python粉啊! 人生苦短,我用python… 题目分析 反编译 使用IDA反编译程序: 分析程序可知,程序往v4的buffer区内读入217个字节,但是v4首地址距离栈...

some useful gdb skills

use gdb to debug

背景 经常使用gdb peda调试程序,一直没有阅读gdb手册,此篇作为一个阅读笔记,工作中更多的喜欢使用gdb python脚本。 gdb python gdb python 实例 gdb带参数启动 gdb –args xxx arg0 arg1 … gdb & set args xxx arg0 arg1 … 将GDB中需要的调试信息输出到文件 ...

How to use angr for CTF

use angr to crack the flag

什么是angr? angr是一个二进制代码分析工具,能够自动化完成二进制文件的分析,并找出漏洞。在二进制代码中寻找并且利用漏洞是一项非常具有挑战性的工作,它的挑战性主要在于人工很难直观的看出二进制代码中的数据结构、控制流信息等。angr是一个基于python的二进制漏洞分析框架,它将以前多种分析技术集成进来,­­­它能够进行动态的符号执行分析(如,KLEE和Mayhem),也能够进行多种静...

Pwn2Win Reverse -- Achievement Unlocked

How to use gdb python script to crack the flag

简述 Pwn2Win 2017 Reverse problem, 运行程序后如下图: 逆向分析程序 使用IDA Pro分析binary程序,发现程序在进行复杂的操作后有一个长30位的数值比较,如图: 从汇编上查看程序: gdb调试程序 使用gdb peda调试程序,并在0x484e1b处打断点,分析可知当输入中的每一个位置输入正确时,断点处rax的值就和图1中分支的值相同,并且...

How to debug qemu devices

Discovering vulnerabilities of qemu

简述 qemu是一个开源的模拟处理器硬件设备的全虚拟化仿真器和虚拟器. KVM(kernel virtual machine)是一个Linux内核模块,为用户层提供硬件虚拟化的特性,QEMU通过kvm模拟一个目标架构的时候,可以实现与主机相同的架构,从而极大提高模拟效率。 漏洞挖掘 要想实现从虚拟机里(以后统称guest主机)影响qemu,继而影响用户的主机(以后统称Host主机),就...

AFL(American Fuzzy Lop) Cautions

Tips from afl/docs

简述 上一篇文章介绍了AFL在业界的应用、安装以及简单的demo,这里讲介绍AFL更细节的地方,由于还没有很详细讲解AFL的材料,我将直接阅读afl/docs文件夹下的材料,并将有用的技术细节和使用方法挑选出来,以便更好的理解AFL。首先afl/docs文件夹下结构如下: DOCS README Fuzzing is one of the most powerful and proven...

Finding bugs using AFL

Fuzzing测试--软件漏洞挖掘利器

简述 AFL号称是当前最高级的Fuzzing测试工具之一,由lcamtuf所开发。在众多安全会议白帽演讲中都介绍过这款工具,以及2016年defcon大会的CGC(Cyber Grand Challenge,形式为机器自动挖掘并修补漏洞)大赛中多支队伍利用AFL fuzzing技术与符号执行(Symbolic Execution)来实现漏洞挖掘,其中参赛队伍shellphish便是采用AFL...

learning LLVM project — clang

learning LLVM for development && security

LLVM简介 The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. The primary sub-projects of LLVM are: The LLVM Core libraries provide a modern source-...

Finding bugs using libFuzzer

Fuzzing测试--软件漏洞挖掘利器

Fuzzing测试 当前随着网络安全的兴起,大大小小的公司都开始注重软件安全,顺利成章的造就了我们这样的一个群体————网络安全研究员,也叫白帽子。哈哈,开个玩笑。。。 软件漏洞挖掘有多种方法: 黑盒测试/白盒测试/灰盒测试; 其中: 黑盒测试:渗透测试,无源码测试 白盒测试:源码审计 灰盒测试:Fuzzing测试,模糊测试 libFuzzer 已经研究了很久afl-fu...

Go deep into libc

many ctf skills in libc