Hiển thị các bài đăng có nhãn picoctf2018. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn picoctf2018. Hiển thị tất cả bài đăng

Secure Logon - PicoCTF 2018 web challenge writeup

Flag: picoCTF{fl1p_4ll_th3_bit3_2efa5ba8}
Source: https://www.dropbox.com/s/awe7dej0zdhnhrh/server_noflag.py?dl=0


Đề bài cho source như trên, chúng ta cùng phân tích nào! Nhưng đầu tiên, ta vẫn ngó qua xem giao diện web trông ra sao: 

Khái quát là: Một trang đăng nhập, với bất kì username khác "admin" thì sẽ đăng nhập thành công vào ra giao diện như hình trên, chú ý trường admin : 0 đồng nghĩa với việc ta không có flag :)) 
Đến đây, 99,99% nếu ta đặt được admin:1 thì ta sẽ có flag! Vậy ta làm việc đó bằng cách nào ?

Quay lại phân tích source đề cung cấp , ta nhận ra rằng : ở hàm login(), sau khi lấy username và password thì ứng dụng web này sinh ra 1 cookie bằng cách mã hóa AES với mode CBC


Sau đó điều hướng đến path /flag, tại path /flag, chương trình sẽ decrypt AES cái cookie mà đã set ở trên, sau đó kiểm tra nếu trường admin =1 thì trả flag, như vậy là dự đoán ở trên là đúng, giờ việc của chúng ta là cần tạo ra 1 ciphertext đặt vào cookie để sau khi ứng dụng nhận được cookie này decrypt lại ra chuỗi json có trường admin là 1.

Thực ra vấn đề bây giờ quay về việc khai thác hệ mật AES mode CBC, kỹ thuật chúng ta sẽ dùng để khai  ở đây có tên gọi là bit-flipping , đây là kỹ thuật bạn có thể ép 1 ciphertext decrypt thành 1 message nào đó mà ta mong muốn, các bạn có thể gg để hiểu rõ hơn, sau đây là solution:


Share:

PicoCTF 2018 writeup : Artisinal Handcrafted HTTP 3 - Points: 300

Đề bài: nc 2018shell.picoctf.com 4914



- Chall bắt người chơi phải viết tay những  header của gói tin HTTP để giao tiếp với server có tên là flag.local và đề bài đã cung cấp username/password là: realbusinessuser/potoooooooo.

- Như vậy nhiệm vụ của chúng ta đã rõ: Đó là viết request gửi form đăng nhập đến flag.local để nhận flag. Mạnh dạn gửi 1 request như sau:
           
và nhận lại response:



status code 302 thông báo chuyển hướng đến location: / do đó ta gửi thêm 1 request nữa để lấy flag: 



nhớ kèm theo Cookie để server accept !

và kết quả là: 


Flag: picoCTF{0nLY_Us3_n0N_GmO_xF3r_pR0tOcol5_251f}






Share:

PicoCTF 2018 writeup: The vault (Web challenge)

Link : http://2018shell.picoctf.com:49030/
Đầu tiên, chúng ta có thể đọc source login.php:


Nhìn qua thì challenge này tương tự chall http://2018shell2.picoctf.com:52135/login.html - Irish Name Repo.

Đây là lỗi SQL nhưng khác Irish Name Repo ở chỗ có 1 bộ lọc, bộ lọc này lọc từ "OR" , vì thế chúng ta không thể sử dụng payload kiểu như: 1' OR 1 = 1 -- .

Nhưng thay vì sử dụng "OR" chúng ta vẫn có thể sử dụng "UNION" để khai khác lỗi SQL.
Nhập password : 'union select 1 from users -- 
Lúc này câu truy vấn là : SELECT 1 FROM users WHERE name='' AND password=''union select 1 from users --
Vậy là chúng ta đăng nhập thành công!

Flag: picoCTF{w3lc0m3_t0_th3_vau1t_c4738171}



Share: