HITCON CTF 2024 Author: 堇姬Naup rank: 24th & Taiwan 1st 這次跟bamboofox & starburst kiwawa & b33f一起打,主要看we Echo as a Servicesource codeDockerfile 12345678910111213141516171819202122FROM oven/bun:1.1.8-slimRUN apt-get update && apt-get install -y gccRUN useradd -ms /bin/bash ctfW
Pwn-Tcache bin dup Glibc 2.27基本上跟Fastbin dup很像,但換成了Tcache Glibc 2.27沒有檢查鍊表上第一個是不是現在要free掉的chunk,所以可以直接連續free兩次chunk不會有問題 另外注意,chunk fd指的是data 如果是glibc 2.28後加入了key會被寫成Tcache相關東西 流程1Chunk 1(malloc) free掉chunk 1 1Tcache -> Chunk 1 再free一次 1Tcache -> Chunk 1 -> Chunk 1 -> Chunk 1 -> ...
Pwn-Fastbin Dup 1(Glibc 2.23) Author: 堇姬Naup source code123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
pwnable.tw-orwchecksec啥都沒開(Canary實際上沒開),stack也可以執行 分析 給一個shellcode,然後會幫你執行,不過有seccomp,要ORW。 syscall tablehttps://chromium.googlesource.com/chromiumos/docs/+/master/constants/syscalls.md#x86-32_bit syscallsys_open 暫存器 值 eax 0x5 ebx filename位置的address ecx 0 edx 0 sys_read 暫存器 值
AIS3 pre exam 2024 - writeup Author:堇姬Naup Rank 4th MiscWelcomectrl+c ctrl+v AIS3{Welc0me_to_AIS3_PreExam_2o24!} Three Dimensional Secret看封包然後這個看起來很像3D GCode,直接用線上工具化出來 AIS3{b4d1y_tun3d_PriN73r} Quantum Nim Heist 這題我其實不知道怎麼做的,就亂按,choose那邊在第一次後,如果你不輸入任何東西,或是0 1 2也可以過(回去看了source code發現那邊少寫了
Fixed Size Migration Author: 堇姬Naup Why 不能控制輸入長度時,就只能使用原本main function read 來多次輸入 ROP chain假設現在空間只夠輸入一個gadget1payload (2*8 bytes) + rbp + return address(8bytes) 觀察一下會發現 main_read 其實會將輸入存到 rbp-0x10,可以利用這個特性來寫入 ROP chain123readleaveret leave 12mov rsp rbppop rbp 原理1234空間(8bytes)空間(8bytes)old rbpre
CryptoCTF 2024 Author:堇姬 Rank: 29th Warm-up 🤑Welcome! 👋Crtl+cCrtl+v CCTF{Harn3sS_Y0ur_CrYptO9rAphy_Pr0wEs5_💪_⚡_💥_🔥!} Easy 😁Alibossource code123456789101112131415161718192021222324252627282930from Crypto.Util.number import *from gmpy2 import *from secret import d, flagget_context().precisi
Stack migration(pivoting) Author: 堇姬Naup 概念 可輸入的 ROPchain 長度不夠時,可以擴展輸入的方法,將 ROPchain 分好幾次寫在指定的區域,最後再將 stack 移動過去執行 如果找到其他地方有足夠空間放ROP,就可以用較少的gadget數,來將stack搬移至ROP位置,進行ROP leave實際上做了兩件事 12mov rsp, rbppop rbp 方法leave;ret 透過overflow將rbp填成ROP Chain開始位置address-8 return address填入leave;ret 的gadget 有一塊