Posts

Showing posts with the label Write-up

LACTF2023 - MISC

Image
misc/CATS!      Đọc đề, chúng ta thấy đề yêu cầu "Figure out the name of this cat heaven" có nghĩa là đi tìm tên của thiên đường mèo này, thêm nữa, phần chữ nhỏ có nói: "câu trả lời là miền của website và flag sẽ có form lactf{domain}".      Vì vậy, chúng ta sẽ dùng google image để tìm ra thiên đường mèo. Nhưng không thể tìm ra khung cảnh giống ảnh 100%, chúng ta sẽ sử dụng thiên đường có hỉnh ảnh giống 98%. Từ đó, thấy được thiên đường là Lanai Cat Sanctuary".     Flag: lactf{ lanaicatsanctuary.org} misc/EBE      Đề bài đã gợi ý rằng, "tôi" đã chỉ gửi 1 kí tự/ 1 lần truyền thông tin. Thì có nghĩa là khi chúng ta xem thông tin của một lần bắt thì chỉ có 1 ký tự, thật dễ dàng để nhận ra đó là kí tự cuối cùng của chuỗi ACSII:      Bạn có thể nhìn thấy khi ấn vào dòng Data, nó sẽ là dữ liệu được truyền đi. Và dữ liệu đó là "X". Vậy thì rất có thể flag của chúng ta sẽ được gửi bằng cách gửi từng kí tự một.  Bên ...

Incognito 4.0 CTF (Pwn/babyFlow)

Image
I. Overview => Nghĩ ngay lỗi ret2win mà tôi đã phân tích trong các blog trước bạn có thể xem lại nó trước khi xem tôi làm bài này 🙂     II. Analysis hàm  vulnerable_function :     argument_address(src) khi hàm gets được gọi:  0xffffd070 argument_address(dest) khi hàm ctrcpy được gọi:  0xffffd044 ret_address khi hàm ret được gọi:  0xffffd05c Khoảng cách từ src => dest: 44 bytes Khoảng cách từ src => ret_addr: 20 bytes Khoảng cách từ dest_addr => ret_addr: 24 bytes => STACK:       dest_addr      ==>      ret_addr      ==>       src Script để khai thác: Nhập 24 bytes + địa chỉ của hàm get_shell( 0x080491fc ) III. Payload Success: 

Write up PTITCTF - PWN

Image
Write-up PTIT CTF 2023  Level 1 Việc đầu tiên là mình sẽ check xem file của nó thuộc loại nào. Mình sẽ dùng ida64 để đọc pseudo code của bài từ file 64bit này. Nhìn qua thấy key word của bài là ở dòng 21 xor[i] = source[i] ^ someThing[i];  , check source thấy được data của nó db '>R!+Q.VEHr',0 . Và để vào được hàm system("cat flag")  ta cần xor với  IamHaCer!!  để có được biến someThing  đúng. Và đây là những thứ chúng ta cần hoàn thiện nốt: và cuối cùng thì nó có flag là như này: PISCTF{My_M1nd_50_3z_RI9ht_?} Level 2 Việc đầu tiên là mình sẽ check xem file của nó thuộc loại nào. bủh Bủh, ta thấy ngay lỗi format string ở hàm printf(v4)  do nó không format đầu ra cho v4 nên có thể nghĩ ngay đến lỗi này. Mọi công đoạn thì bài này có vẻ lặp lại ở bài 1. Mình cũng hơi lú vì spam %x  và %p  hơi nhiều mà méo ra gì cuối cùng thì nó là %s Mình sẽ rút kinh nghiệm ở những lần làm bài sau 🥲 Chi tiết hơn thì %x sẽ leak cho bạn đầu ra là hex còn %p ...