xina1i
xina1i
# heap-based out-of-bounds read when parsing otf file with undefined glyph name in svg option(AFDKO) 前段时间fuzz出来的,提给adobe的issue,目前已经被修复了,其中指针追踪挺有意思的 ## 0x1 Segment Fault Please excuse my poor English. I'm not a native speaker....
# Microsoft Font Subsetting DLL Stack Exhaustion at fontsub!GetComponentGlyphList DDoS 微软说目前不打算修,没准将来会修,那就贴出来吧 Please excuse my poor English. I'm not a native speaker. I will do my best to describe this bug....
# VSCode 远程开发 目前个人开发还是公司开发,都越来越集中到了远程开发中,`vscode`目前也开始官方支持远程开发,并且释出了对应的插件,所以来简单的使用一下 ``` vscode 稳定版本:1.36.1 ``` 安装插件  ## remote-ssh 这个推荐使用`git for windows`的`ssh`,别的也不是不可以,只是这个配置和使用起来没有那么恶心 > 整个配置在win7虚拟机中完成 设置`ssh`位置  生成密钥  将公钥发送到远程机器  查看,并更改权限  配置文件  连接测试  可以发现,成功连接...
# 记录一次恶心混淆之静态配置解密的处理 ## 分析 本人是做静态配置解密(自动化静态扫描文件并将其中的`IoC`提取出来)的,日常遇到有混淆的恶意代码家族很正常。但是碰到这么恶心的还是第一次,所以记录一下,方便以后再次遇到,好参照解决。 ``` 样本md5: 3103007484cb5935efcd0d8abf28251e 5142f81d00403a33c3eb9f71290c2bf6 ``` `vt`主要将该类识别为 ``` palevo zusy Fosniw ``` 我是把它划分到`palevo`家族,但是这个不重要,今天最重要的是利用`c++`从这些混淆中成功提取出`IoC`信息 首先来看它到底有多么恶心  如果直接`F5`,会卡很长时间  之后的伪码  因为这个家族我做静态分析,分析了很多个版本,即使这样混淆,我依然能够很快定位到其中使用的解密函数 真正的解密逻辑在这里  其属于这个函数  同样是加了非常多的`printf`做混淆,因为我分析过,并且知道解密函数具体操作,所以很容易能够通过人力定位到,但是要想完成静态自动化的配置解密的话,其实很困难。 ##...
# DynELF leak函数导致堆栈不平衡 ## Memory Leak & DynELF - 在不获取目标libc.so的情况下进行ROP攻击 根据蒸米大牛的文章,在没有目标`libc.so`的情况下,如何进行`ROP`攻击 `exp`代码 ```python from pwn import * context.terminal = ['tmux', 'splitw', '-h'] level2 = ELF('./level2') p = process('./level2') write_plt =...
# Linux x64 pwn 学习 新手学习了x86的下的相关`pwn`,进而学习一下`x64`环境下的`pwn`,个人感觉还是很有必要的,完全个人学习,中间遇到很多的各种坑,这里只是简单记录一下 ## 环境 ```bash Linux bins-virtual-machine 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux pwntools gef ``` 用到的`level.c` ```c include...
# openssl CVE-2016-0799分析 ## 环境准备 ``` git clone https://github.com/openssl/openssl ``` ## 漏洞分析 利用`github`直接搜索  可以看到存在解决这个问题的`commit`,进入  `commit`做了很完善的说明,那就根据`commit`说明来具体看一下为什么会出现这个问题,切换到其父`commit` ``` git checkout 069c3c0908dfa8418753d0c25890a9d4fb67178d ``` 首先出现问题的最主要的函数是这个 ```c static void doapr_outch(char **sbuffer, char **buffer,...
# openssl 1.1.0a UAF(CVE-2016-6309)分析 在研究[honggfuzz](https://github.com/google/honggfuzz)的过程中,发现有人用它找到了openssl的一个洞(CVE-2016-6309),这是一个UAF的洞,为了了解如何fuzzing的,如果要是我写fuzzer,该怎么写,为了这个目的,所以就分析了一下。 ## 环境 环境准备 ``` # kaili2 apt install gcc gdb python3.7-dev git make electric-fence -y # pwndbg git clone https://github.com/pwndbg/pwndbg cd pwndbg ./setup.sh ``` 编译`openssl`...
# 基于protobuf构建fuzzer(libpng) 前段时间谷歌出了个文章[Structure-Aware Fuzzing with libFuzzer](https://github.com/google/fuzzer-test-suite/blob/master/tutorial/structure-aware-fuzzing.md),其中说到了利用`protobuf`来构建`fuzzer`来`fuzzing libpng`库,并且给出了现成的`libpng-proto`的测试样例代码。 中文目前没有搜到如何利用这种方式来写`fuzzer`的文章, 所以自己就分析一下这种构建`fuzzer`的方法,作为一个`fuzzing`小白就当学习了 文章主要通过三步来完成整个`fuzzing`过程 ``` 1. protobuf简单介绍 2. 利用protobuf构建png数据 3. 利用libfuzzer引擎测试生成的数据 ``` ## protobuf简介 `Protocol Buffers`(简称`Protobuf`) ,是`Google`出品的序列化框架,与开发语言无关,和平台无关,具有良好的可扩展性。`Protobuf`和所有的序列化框架一样,都可以用于数据存储、通讯协议。 废话不多说,直接上测试案例,简化一下官方给的例子测试一下`test.proto`,其中定义了一个`Person`的数据结构 ```protobuf syntax = "proto2"; package tutorial;...
# 利用堆绕过SafeSEH及SEH异常机制分析 环境 ``` windows xp sp3 vs 2013 ``` 测试代码 ``` #include #include #include #include #pragma warning(disable:4996) char shellcode1[] = "\xFC\x68\x6A\x0A\x38\x1E\x68\x63\x89\xD1\x4F\x68\x32\x74\x91\x0C" "\x8B\xF4\x8D\x7E\xF4\x33\xDB\xB7\x04\x2B\xE3\x66\xBB\x33\x32\x53" "\x68\x75\x73\x65\x72\x54\x33\xD2\x64\x8B\x5A\x30\x8B\x4B\x0C\x8B" "\x49\x1C\x8B\x09\x8B\x69\x08\xAD\x3D\x6A\x0A\x38\x1E\x75\x05\x95" "\xFF\x57\xF8\x95\x60\x8B\x45\x3C\x8B\x4C\x05\x78\x03\xCD\x8B\x59" "\x20\x03\xDD\x33\xFF\x47\x8B\x34\xBB\x03\xF5\x99\x0F\xBE\x06\x3A" "\xC4\x74\x08\xC1\xCA\x07\x03\xD0\x46\xEB\xF1\x3B\x54\x24\x1C\x75" "\xE4\x8B\x59\x24\x03\xDD\x66\x8B\x3C\x7B\x8B\x59\x1C\x03\xDD\x03" "\x2C\xBB\x95\x5F\xAB\x57\x61\x3D\x6A\x0A\x38\x1E\x75\xA9\x33\xDB"...