b0ldfrev's Blog

If you are proficient in assembly, everything is open source.

Kernel Pwn gnote - TokyoWesterns CTF 2019

Double-Fetch & Heap-Spray

前置知识 gcc 在编译switch代码时,case超过5个就会变成jump table的形式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 switch(*(int *)buf){ case 1: printf("case 1"); break; case...

easy_unicorn

基于unicorn的“沙盒逃逸”

unicorn Unicorn 是一款非常优秀的跨平台模拟执行框架,该框架可以跨平台执行Arm, Arm64 (Armv8), M68K, Mips, Sparc, & X86 (include X86_64)等指令集的原生程序。 一些学习资料: https://bbs.pediy.com/thread-253868.htm 官方实例 easy_unicorn 这是一个由...

春秋杯网络安全公益联赛 BFnote出题小结

新春战疫,为逆行者加油!

博客就快长草了 [出题思路]: 常规栈溢出的canary绕过方法有leak,fork爆破,劫持__stack_chk_fail,还有一种就是覆盖TLS中储存的Canary值。之前starctf2018中有一道babystack就是利用这一方法,但是那道题是跑了新个线程。 这样的话thread_stack线程栈中,TCB结构在thread_stack的高地址,当前栈帧在低地址,所...

small bin attack

关于smallbin的利用

最近刷了道有意思的pwn,做个记录分享一下 程序逻辑 Add 函数 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 unsigned __int64 sub_1340() { unsigned int v1; // [rsp+4h] [rb...

西湖论剑线下个人赛writeup pwn部分

文件下载 pwn1 简单的stack_pviot,但需注意一点,把rsp迁移到.bss段调用puts时要注意上方的stdin与stout结构体,若在调用puts时,栈空间覆盖到了输入输出流,会导致leak失败。我的解决方案是把rsp迁移到离stdin与stout结构体更远的地方,再执行控制流程。 exp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

2019强网杯writeup

PWN+Reverse部分

持续更新中….. Reverse JustRe 1.程序主要逻辑: 输入为26个字符,过两个check即可得到flag: 2.check1: 把前8个字符转成4字节16进制:“12345678” —> 0x12345678 同理下面代码不贴出来了,把第9、10个字符同样转成1字节16进制。 接下来是一系列sse指令操作,伪代码中v21是输入的第9-10位...

2019西湖论剑writeup

0ctf2018heapstorm2

pwn1-story 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 #/usr/bin/env python # -*- coding: UTF-8 -*- ##简单栈溢出,fsb from...

NCTF2018之homura

不知名的Unsorted_bin利用

这道题有点难度,比赛结束时也没人提交flag,后来有时间自己研究了一下,有了新的思路 CheckSec 1 2 3 4 5 6 7 [*] '/home/b0ldfrev/homura' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: ...

pwnable.tw之D3-a5lr

花式ROP

程序分析 1 2 3 4 5 6 7 [*] '/home/giantbranch/D3-a5lr' Arch: amd64-64-little RELRO: Full RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000) ...

pwnable.tw之un3xp10itabl3

aslr syscall 利用

程序代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0x400544 <main>: push rbp 0x400545 <main+1>: mov rbp,rsp => 0x400548 <main+4>: sub rsp,0x10 0x40054c <main+8>: ...