let's pwn
pwnable.tw > Secret Garden (Draft)
pwnable.tw > BabyStack (Draft)
pwnable.tw > Spirited Away (Draft)
pwnable.tw > applestore
Vulnerability: Chương trình giữ reference toàn cục đến biến cục bộ của hàm. Khi hàm khác được gọi, vị trí biến cục bộ bị overlapped, dẫn đến chương trình sử dụng input do attacker kiểm soát.
pwnable.tw > Silver Bullet
Vulnerability: Việc sử dụng strncat() không cẩn thận dẫn đến 1 null byte overflow ở cuối, ghi đè bộ đếm gây ra stack buffer overflow.
pwnable.tw > 3x17
pwnable.tw > calc
Vulnerability: Chương trình tin rằng bộ đếm luôn nằm trong khoảng hợp lệ, tuy nhiên thực tế bộ đếm được cộng trừ bất kiểm soát, dẫn đến ghi out-of-bound.
0xL4ugh CTF V5 > Zoro's Blind Path
GoogleCTF 2023 Quals > gradebook
Vulnerability: Chương trình giả sử rằng room chỉ có 3 ký tự, nhưng lại cho phép attacker nhập 4 ký tự, dẫn đến ghi đè null terminator và leak dữ liệu trên stack. Tiếp đến, chương trình tin rằng các metadata của file gradebook là hợp lệ, tuy nhiên attack có thể làm giả field head_offset, dẫn đến làm giả toàn bộ field khác, hoặc chỉnh sửa metadata sau khi đã load file do chia sẻ vùng nhớ -> đọc ghi tùy ý.
BtS 2025 > HexDumper
Vulnerability: Chương trình tin rằng count > 0 khi dùng Duff's device để copy dữ liệu, nhưng attacker có thể đưa count = 0 qua input không được validate, dẫn đến buffer overflow 8 byte trên heap.
WannaGame Championship 2025 > oop
Vulnerability: Chương trình tin rằng việc Person trong Note được copy tạo ra một object độc lập, tuy nhiên trên thực tế, shallow copy được thực hiện, dẫn đến có 2 Person object cùng có description trỏ đến một vùng nhớ -> use-after-free.
VCS Passport 2025 > final pokemon player
Vulnerability: Chương trình tin rằng biến toàn cục total_owned_pokemons được truy cập tuần tự, nhất quán, tuy nhiên 2 thread vẫn có thể tranh chấp dẫn đến TOC-TOU race condition -> ghi out-of-bound.
CSCV 2025 Jeopardy Final > HeapNote Revenge
Vulnerability: Chương trình tin rằng hàm input kích thước từ người dùng và kích thước trả về sử dụng cùng kiểu dữ liệu -> tin rằng đã nằm trong khoảng hợp lệ, tuy nhiên attacker có thể nhập kích thước gây tràn số, dẫn đến bypass các checks qua implicit cast -> stack buffer overflow.
CVE Reproduction > Reproducing Nimbuspwn: Linux Privilege Escalation via Path Traversal and TOCTOU in networkd-dispatcher
Vulnerability: Nimbuspwn breaks the invariant that “networkd-dispatcher only executes trusted root-owned scripts from its own hooks directory,” which is violated when an attacker first escapes the hooks path via directory traversal and then swaps the checked script path between validation and execution via a TOCTOU race to get arbitrary code run as root.
CSCV 2025 Preliminary > Hanoi Convention
Vulnerability: Chương trình tin rằng player_thoughts sẽ không chứa format string, tuy nhiên attacker có thể nhập format string do không validate, dẫn đến leak dữ liệu trên stack. Bên cạnh đó, chương trình cũng tin rằng, random_message_ptr luôn trỏ đến chuỗi hợp lệ, nhưng attacker có thể làm giả bằng cách buffer overflow trên vùng bss do không kiểm tra độ dài src so với dest khi strcpy().
HTB Cyber Apocalypse CTF 2023: The Cursed Mission > Runic
Vulnerability: Chương trình tin rằng việc copy tên mới được thực hiện đầy đủ, có thể tính toán đúng giá trị hash, tuy nhiên attacker có thể trèn null bytes vào giữa tên, dẫn đến sai lệch hash -> sai lệch length -> heap buffer overflow.
GoogleCTF 2023 Quals > write-flag-where123
ASCIS Final 2024 > ROP
Vulnerability: Chương trình tin rằng việc cho phép overflow 40 bytes không có vấn đề to tát, tuy nhiên attacker có thể stack pivot và thực hiện ROP.
picoCTF 2024 > high frequency troubles
Vulnerability: house of orange + heap buffer overflow - improper length check in gets().
pwnable.tw > seethefile
Vulnerability: Hàm scanf() với format %s gây buffer overflow trên vùng bss dẫn đến ghi đè file pointer.
0xL4ugh CTF V5 > Alice
Vulnerability: Vẫn giữ reference sau khi free, dẫn đến use-after-free.
DreamHack.io > 364 - SigReturn-Oriented Programming
VCS Passport 2025 > pwn
Vulnerability: Chương trình cho rằng buffer cần ghi có độ dài 256 bytes, nhưng trên thực tế trước đó buffer có thể được cấp phát ít hơn 256 bytes, dẫn đến heap buffer overflow.
DreamHack.io > 621 - Sea of Stack
HeroCTF v7 > Crash
Vulnerability: format string bug; stack buffer overflow.
HeroCTF v7 > Story Contest
Vulnerability: Chương trình tin rằng biến global_story_len không bị tranh chấp và nhất quán, nhưng thực tế có thể có nhiều thread thao tác đồng thời, dẫn đến TOCTOU race condition -> stack buffer overflow.
CSCV 2025 Jeopardy Final > Calc
Vulnerability: Chương trình tin rằng sau khi gặp lỗi và throw exception chia cho 0, Expr con đều đã được cleanup và không còn reference, tuy nhiên tại exception handler, không có code cleanup khiến Expr cha vẫn giữ reference đến Expr con, dẫn dến double-free khi gặp lỗi lần sau.
CVE Reproduction > Reproducing CVE-2020-8831: Privilege Escalation via Symlink Attack on Apport's Lock File Implementation
Vulnerability: CVE-2020-8831 breaks the invariant that Apport’s lock file is created atomically as a real file in a trusted location (without following symlinks), which is violated when an attacker pre-creates a symlink at the lock path so Apport opens/writes the symlink target and enables local privilege escalation.
CVE Reproduction > Reproducing CVE-2022-0324: Buffer Overflow in dhcp6relay of SONiC
Vulnerability: CVE-2022-0324 breaks the invariant that SONiC’s dhcp6relay must validate DHCPv6 option/payload lengths so it never copies more bytes than the destination buffer can hold.The invariant is violated when a remote attacker sends a crafted DHCPv6 packet that reaches a memcpy with an unchecked length, causing an out-of-bounds write (buffer overflow).
HTB Cyber Apocalypse CTF 2025: Tales from Eldoria > Crossbow
Vulnerability: out-of-bound write -> stack pivot.
HTB Cyber Apocalypse CTF 2025: Tales from Eldoria > Laconic
Vulnerability: stack buffer overflow - improper length check in read().
CSCV 2025 Preliminary > sudokuS
Vulnerability: Chương trình tin rằng với các ràng buộc theo như quy tắc của game Sudoku và việc seccomp được bật, thì việc nhập shellcode đầy đủ là không thể, nhưng attacker có thể bypass bằng cách nhập từng đoạn shellcode có các bytes đôi một khác nhau.
Learning Stuff > Kỹ thuật Heap Exploitation - House of Orange
Tìm hiểu chi tiết về cơ chế hoạt động của kỹ thuật khai thác heap House of Orange.
picoCTF 2025 > Handoff
Vulnerability: stack buffer overflow.
pwnable.tw > Death Note (Draft)
pwnable.tw > Tcache Tear
Vulnerability: Chương trình ép kiểu không cẩn thận từ int về unsigned, dẫn đến buffer overflow trên heap do có chênh lệch giữa kích thước cấp phát và kích thước thực tế được input.
pwnable.tw > Re-alloc
Vulnerability: Chương trình không kiểm tra cẩn thận sau khi sử dụng realloc, cho phép kẻ tấn công thực hiện use-after-free.
pwnable.tw > hacknote
Vulnerability: Chương trình không đặt null sau khi free, dẫn đến use-after-free.
pwnable.tw > dubblesort
Vulnerability: Chương trình không kiểm tra số lượng số được nhập vào, dẫn đến buffer overflow trên stack, kết hợp với việc stack canary bị bypass do hành vi của hàm scanf().
pwnable.tw > Start
DreamHack.io > 359 - Master Canary
DreamHack.io > 721 - Santa claus is coming to town
Vulnerability: arbitrary size allocation; out-of-bound write - improper index check.
VCS Passport 2024 > PWN3
Vulnerability: Chương trình tin rằng chỉ hàm handler() được gọi, nên stack frame của hàm đó và dữ liệu trong đó vẫn dữ nguyên, nên không kiểm tra con trỏ buf. Tuy nhiên attacker có thể gọi hàm khác trước khi gọi handler(), dẫn đến làm giả con trỏ buf.
0xL4ugh CTF V5 > House Of Pain (Draft)
0xL4ugh CTF V5 > New Age
Learning Stuff > GNU Autotools
Một build system phổ biến trên Unix system.
CVE Reproduction > Fuzzing libexif 0.6.14: Reproducing CVE-2009-3895 (Heap Buffer Overflow) and CVE-2012-2836 (Out-of-Bounds Read) (Draft)
Learning Stuff > Linkers and Loaders in Linux Userland
Quá trình từ source code đến khi kết thúc của một chương trình C trên Linux Userland.
CVE Reproduction > Reproducing and Patching CVE-2019-13288 - XPDF Infinite recursion & Null pointer dereference
Vulnerability: CVE-2019-13288 breaks Xpdf’s invariant that the “object stream” referenced by a compressed object must be an uncompressed stream, because the fetch path doesn’t enforce that rule and a crafted xref can make the supposed object stream itself compressed, causing unbounded recursive fetching and a crash.
GoogleCTF 2023 Quals > ubf
Vulnerability: Chương trình tin rằng trường metadata_size trong header kiểu bool không có ý nghĩa, nên bỏ qua mọi kiểm tra. Nhưng thực tế, field đó vẫn được sử dụng, sai với ý định ban đầu, attacker lợi dụng điều này thực hiện ghi out-of-bound.
BtS 2025 > poniponi virus
Vulnerability: Chương trình tin rằng n > 0 khi sử dụng làm offset trên heap, nhưng cho phép nhập n với kiểu signed, dẫn đến ghi out-of-bound.
VCS Passport 2025 > node user
Vulnerability: heap buffer overflow - improper buffer check in read().
VCS Passport 2024 > PWN2
Vulnerability: Chương trình tin rằng chỉ cần node tại index không phải null thì có nghĩa là hợp lệ, tuy nhiên trên thực tế attacker có thể free node mà không set null, dẫn đến use-after-free.
VCS Passport 2024 > PWN1
Vulnerability: Chương trình cho rằng kích thước được nhập vào sẽ không vượt quá 30 bytes, tuy nhiên trên thực tế được nhập 200 bytes -> stack buffer overflow và heap buffer overflow.
HeroCTF v7 > Identity
Vulnerability: Chương trình tin rằng chỉ có 8 sessions, tuy nhiên thực tế checks cho phép index = 8, attacker lợi dụng điều này thực hiện ghi out-of-bound.
HeroCTF v7 > Paf Traversal
Vulnerability: Chương trình tin rằng oath được yêu cầu không chứa traversal pattern và algo_type nằm trong khoảng hợp lệ, tuy nhiên attacker có thể path traversal và nhập giá trị algo_type tùy ý.
CSCV 2025 Jeopardy Final > Anyone Think
CSCV 2025 Jeopardy Final > Master's Request
Vulnerability: RWX Segment.
HTB Cyber Apocalypse CTF 2025: Tales from Eldoria > Contractor
Vulnerability: stack buffer overflow - improper length check in read().
HTB Cyber Apocalypse CTF 2025: Tales from Eldoria > Strategist
Vulnerability: Chương trình tin rằng dữ liệu được ghi vào sẽ không vượt quá kích thước chunk được cấp phát, nhưng trên thực tế kích thước overflow dẫn đến ghi đè vào size của chunk sau do sử dụng strlen().
CSCV 2025 Preliminary > Heap NoteS
Vulnerability: Chương trình cho rằng con trỏ Node->next luôn trỏ đến địa chỉ hợp lệ, nhưng attacker có thể lợi dụng buffer overflow tại Node->content với fgets() để làm giả Node->next, dẫn đến đọc ghi tùy ý.
CSCV 2025 Preliminary > RacehorseS
BtS 2025 > lotto
Vulnerability: Không kiểm tra kích thước của src so với dest và sử dụng kích thước của src làm đối số count trong memcpy(), gây stack buffer overflow.
ASCIS Final 2024 > BugBounty
Vulnerability: Chương trình tin rằng messages[index] luôn trỏ tới buffer còn sống, nhưng attacker có thể free rồi dùng lại qua cùng index do không set con trỏ về null, dẫn dến use-after-free.
ASCIS Final 2024 > RUN NOW
Vulnerability: Chương trình tin rằng kích thước src <= dest, nhưng dùng strcpy() để copy 128 bytes vào buffer 64 bytes, dẫn đến stack buffer overflow.
picoCTF 2023 > Horsetrack
Vulnerability: use after free - dangling pointer.