Tag: heap-exploitation (26)pwnable.tw > Food StoreVuln: Con trỏ next trỏ đến Recipe tiếp theo ko đc init khi tạo Recipe mới, có thể bị lợi dụng để trỏ về chunk đã free, dẫn đến UAF, tạo chunk overlap.tl;dr: Không chỉ setup heap cho mục tiêu ngay trước mắt, mà cần tính toán cho các bước về sau; Heap spray, rồi lợi dụng alignment khi cấp phát để kiểm soát uninit data.March 7, 2026 • Hardpwnable.tw > Break OutVuln: Không xoá reference sau khi free, gây UAF và chunk overlap; Không kiểm tra con trỏ next trỏ đến object hợp lệ trong linked list.March 7, 2026 • Easypwnable.tw > Ghost PartyVuln: Vi phạm Rule Of Three trong C++ do thiếu copy constructor, gây double free sau khi pass by value; Gán raw pointer vào thành viên class, pointer được free ngay khi out of scope, gây UAF.March 7, 2026 • Hardpwnable.tw > Bounty Program βVuln: Không kiểm tra NULL trước khi sử dụng strtok().tl;dr: Bounty Program αMarch 3, 2026 • Hardpwnable.tw > Bounty Program αVuln: Không kiểm tra NULL trước khi sử dụng strtok().tl;dr: Hành vi nguy hiểm của strtok(NULL, delim); Hàm calloc() bỏ qua tcache; Env var có thể tác động đến hành vi của ptmalloc.March 3, 2026 • Hardpwnable.tw > Re-alloc RevengeVuln: 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.tl;dr: Partially overwrite địa chỉ libc, cần bruteforce với xác suất thành công 1/16; Có thể gộp các chunk liền kề nhau trong fastbin và đặt vào unsortedbin bằng cách trigger malloc_consolidate().February 24, 2026 • Hardpwnable.tw > CAOVVuln: Chương trình C++ vi phạm cơ chế return by value của SYSV ABI, dẫn đến lời gọi destructor trên dữ liệu trên stack trước đó được attacker kiểm soát.tl;dr: Cơ chế của sysv abi ở C++, trên C ko có cái này.February 23, 2026 • Mediumpwnable.tw > Heap Paradisetl;dr: Chunk overlap, vừa trong unsortedbin, vừa trong fastbin; Partially overwrite ko cần leak libc; Ghi đè flags của stdout thành 0xfbad1800 và _IO_write_base để leak libc.February 20, 2026 • Mediumpwnable.tw > BookWriterVuln: Off-by-one error cho phép attacker ghi out-of-bound vào kích thước của page, dẫn đến buffer overflow tuỳ ý trên heap khi chỉnh sửa page content.February 19, 2026 • Mediumpwnable.tw > Secret Of My HeartVuln: Chương trình đặt null byte sau input của user không cẩn thận, gây 1 null byte overflow, ghi đè vào size của chunk liền sau, attacker có thể gây chunks overlap từ đó.tl;dr: Lại là 1 null byte overflow; Heap chunk consolidation, overlapping.February 19, 2026 • Mediumpwnable.tw > Secret Gardentl;dr: Bớt giả định, nhìn xem dòng code đang thực sự làm gì; Ghi one gadget vào realloc hook, ghi realloc vào malloc hook; hoặc ghi one gadget vào malloc hook và double free để trigger malloc printerr.February 19, 2026 • Easypwnable.tw > Spirited AwayVuln: Chương trình sử dụng sprintf() cho ra chuỗi kết quả vượt quá kích thước buffer, gây buffer overflow ghi đè vào len, tiếp tục gây buffer overflow ở các buffer khác.tl;dr: Buffer overflow rất tinh vi, check size buffer thật kỹ.February 14, 2026 • Easypwnable.tw > Tcache TearVuln: 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.February 8, 2026 • Easypwnable.tw > Re-allocVuln: 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.tl;dr: Hành vi của realloc() phụ thuộc nhiều vào tham số đc đưa vào.February 7, 2026 • Mediumpwnable.tw > hacknotetl;dr: Đôi khi ko cần heap fengshui quá phức tạp; Cần để ý tham số cần truyền vào là gì, ko mặc định plt giống với hàm wrapper custom của chương trình.February 2, 2026 • Easy0xL4ugh CTF V5 > AliceVuln: Vẫn giữ reference sau khi free, dẫn đến use-after-free.January 25, 2026 • MediumBtS 2025 > HexDumperVuln: 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.tl;dr: wide_vtable chưa bị validate như vtable.January 2, 2026 • MediumWannaGame Championship 2025 > oopVuln: 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.tl;dr: Để ý kiểu copy của object, shallow hay deep?December 24, 2025 • HardVCS Passport 2025 > pwnVuln: 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.December 20, 2025 • MediumVCS Passport 2024 > PWN2Vuln: 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.December 12, 2025 • EasyCSCV 2025 Jeopardy Final > CalcVuln: 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.November 17, 2025 • InsaneHTB Cyber Apocalypse CTF 2025: Tales from Eldoria > StrategistVuln: 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().October 30, 2025 • MediumASCIS Final 2024 > BugBountyVuln: 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.October 15, 2025 • HardpicoCTF 2023 > HorsetrackVuln: use after free - dangling pointer.October 9, 2025 • HardpicoCTF 2024 > high frequency troublesVuln: house of orange + heap buffer overflow - improper length check in gets().October 8, 2025 • HardRandom stuff > Heap Exploitation Technique - House of OrangeOctober 4, 2025 • Research