Chris's Blog

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

西湖论剑线下个人赛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/chris/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>: ...

铁三2018全国总决赛之myhouse

House of force+ 任意地址写1null

checksec 1 2 3 4 5 6 7 [*] '/home/chris/myhouse' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000) ma...

铁三2018全国总决赛之bookstore

fastbin attack + 整数溢出

checksec 1 2 3 4 5 6 7 8 chris@ubuntu:~$ checksec myhouse [*] '/home/chris/myhouse' Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled ...

铁三2018全国总决赛之littlenote

double free +堆块伪造

铁三这次全国总决赛的个人赛给了三道Pwn题,littlenote 算得上里面相对简单的一道 下面看程序ida代码 checksec 1 2 3 4 5 6 7 8 chris@ubuntu:~/Pwn$ checksec littlenote [*] '/home/chris/Pwn/littlenote' Arch: amd64-64-little RELRO...

南邮NCTF2018之smallbug2

X64 FmtStr

最近刷了一下南邮的CTF比赛,1000分的动态积分,pwn了两道800分的,有一道是关于vsyscall的,还有一道就是关于64位格式化字符串利用的,说它简单其实并不简单…毕竟最后只有4人提交了flag… 关于fmtstr的骚操作有很多,比如泄露,写got表,写ret,写.fini_array,栈迁移到堆等 32的fmtstr任意地址写很容易实现,因为地址中不含”\x00”,pr...