Write up Google CTF 2023
Write up Google CTF 2023Giải năm này tuy hay nhưng cũng có vẻ dễ thở hơn so với năm ngoái. Năm nay mình chơi với team Green Onions, mình giải được 5 bài pwn và 1 bài rev ( so với năm ngoái là 0 bài 🐸 ).
ZERMATT1Roblox made lua packing popular, since we'd like to keep hanging out with the cool kids, he's our take on it.
Attachment: ZERMATT.zip
Đề đưa một file LUA script bị làm rối.
Không nghĩ nhiều, mình thử debug LUA bằng gdb rồi tìm flag trong memory, lúc đầu không nghĩ nó thành côn ...
Write up PWN Nahamcon CTF 2023
Write up PWN Nahamcon CTF 2023
2 ngày tryhard cùng team m1cr0$oft 0ff1c3
Giải năm nay có 7 bài pwn, dưới đây là write up 3 bài All Patched Up, Web Applicaton Firewall và Limitations
All Patched UpAttachment:
all_patched_uplibc-2.31.so
12345678int __cdecl main(int argc, const char **argv, const char **envp){ char buf[512]; // [rsp+0h] [rbp-200h] BYREF write(1, &unk_402004, 2uLL); read(0, buf, 0x400uLL); return 0;}
Một bài ROP đơn giản, tuy nhiên không có gadget nào để control ...
Open House (DEF CON CTF Qualifier 2023)
Open House (DEF CON CTF Qualifier 2023)File challenge: open-house
Analyze
32bit ELF with PIE, no RELRO and No canary.
Reversing12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879int __cdecl main(int argc, const char **argv, const char **envp){ char s[16]; // [esp+20h] [ebp-18h] BYREF int v5; // [esp+30h] [ebp-8h] v5 = 0; setvbuf(stdout, 0, 2, 0); signal(14, (__sighandler_t)sub_1260); alar ...
HackTheBox - Cyber Apocalypse 2023
HackTheBox - Cyber Apocalypse 2023
1 tuần tryhard cùng CLB 🐸
Dưới đây sẽ là write-up vài câu pwn mức độ medium và hard trong giải này.
Void
Chương trình đơn giản là read data vào buffer rồi kết thúc. Không có hàm nào để in data ra.
Cách làm mình suy nghĩ đầu tiên là ghi đè một byte của read@got từ 0x80 -> 0x8c , khi gọi lại read@plt ta tới được opcode syscall với rax=1 (vì hàm read trước đó trả về 1).Payload:
1234# ....padding ....p64(rsi_r15_ret)+p64(e.got.read)+p6 ...
[Pwn] Re ACSC 2023
Writeup RE ACSC 2023
Source code:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192#include <stdlib.h>#include <unistd.h>#include <stdio.h>static int getnline(char *buf, int size);static int getint(void);static void edit(void);struct Memo { size_t size; char* buf;} mlist[10];__attribute__((constructor))static int init(){ alarm(30); setbuf( ...
Thêm debug symbol vào stripped libc
Thêm debug symbol vào stripped libcVào một ngày khi làm một bài pwn, với đề bài đưa libc trước, mình xài pwninit tool …pwninit bị lỗi nào đó không thể lấy file dbg trong package package libc6-dbg_....deb để unstrip libc.
Khi gặp nhiều bài ctf cần debug các hàm trong libc, đặc biệt là liên quan tới heap, việc không có debug symbol sẽ gây khó khăn hơn trong việc debug.
Sau đây, mình xin trình bày 2 cách để “chữa cháy” lỗi này.
Cách 1: Load debug symbol vào gdbBạn để ý thì pwninit nó cũng tải packa ...