Learn CTF

@CTFlearn

ctf

Private team

Joined on Apr 14, 2024

  • I. House of Force - Exploit Top chunk 1. Source code và các ràng buộc Decription : Exploiting the Top Chunk (Wilderness) header in order to get malloc to return a nearly-arbitrary pointer Referrence: how2heap : HouseOfForce /* This PoC works also with ASLR enabled. It will overwrite a GOT entry so in order to apply exactly this technique RELRO must be disabled. If RELRO is enabled you can always try to return a chunk on the stack as proposed in Malloc Des Maleficarum
     Like  Bookmark
  • Tản mạn Đây là kiến thức mình gặp khi tham gia 1 giải khá lmao nhưng tự nhiên minh gặp 1 bài easy nhưng lại có 1 cái trick khá là lạ image Challenge cho hàm win đọc flag ở thư mục cha, tuy không thể ROP để set-up nhảy thằng từ đầu nhưng mà có thể nhảy thẳng đến open để đọc flag. Nhưng chuyện đơn giản vậy thì đâu có gì để nói. image -> segmentation fault rồi image -> Tại sao flag lại ghi đè luôn saved rip của _IO_getline_info Đẻ giải mã tại sao flag có thể ghi đè được như vậy thì mình quyết định debug xem fgets đã làm gì ?
     Like  Bookmark
  • luyện tập trên 2 kiến trúc 'i386' và 'amd64' cũng đã nhiều nên blog này sẽ nghiên cứu về kiến trúc ARM là chủ yếu không lạ cũng không mới, khả năng gặp nhiều trong các bài CTF-pwnable overview ARM Cortex – Mx là vi xử lý được sử dụng phổ biến nhất hiện nay trong lĩnh vực hệ thống nhúng ARM (viết cách điệu là arm) full name là Advanced RISC Machine là một họ kiến trúc dạng RISC cho các vi xử lý máy tính, được cấu hình cho các môi trường khác nhau
     Like  Bookmark
  • I. Source code Trong quá trình giải các chall về heap thì tự nhiên mình bắt gặp 1 hiện tượng "lạ" : Khi mình gây lỗi DBF trên fastbin(với TH "fast top" ) thì vô tình lại gọi hàm trong __malloc_hook . Và mình đặt ra câu hỏi tại sao??? -> Chính vì vậy quyết định debug kĩ hơn đoạn này. Source debug: #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <malloc.h> int main() {
     Like  Bookmark
  • 1. file descriptor :open_file_folder: what is file descriptor ? file descriptor là một số nguyên duy nhất dùng để xác định một tệp đã mở trong một tiến trình. Khi một tiến trình mở một tệp, hệ điều hành sẽ gán một con số (file descriptor) để biểu diễn cho tệp đó. :::info Ví dụ: stdin có file descriptor là 0, stdout là 1, và stderr là 2. Các file descriptor khác sẽ được gán cho những tệp hoặc socket mở sau đó. ::: :open_file_folder: File descriptor table
     Like 1 Bookmark
  • struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ #define _IO_file_flags _flags /* The following pointers correspond to the C++ streambuf protocol. */ /* Note: Tk uses the _IO_read_ptr and _IO_read_end fields directly. */ char* _IO_read_ptr; /* Current read pointer */ char* _IO_read_end; /* End of get area. */ char* _IO_read_base; /* Start of putback+get area. */ char* _IO_write_base; /* Start of put area. */
     Like  Bookmark