Bài đăng

[VNPT SecAthon 2018] Modulus

Hình ảnh
Đề bài cho ta mã nguồn thuật toán mã hóa sau Để giải quyết bài toán này mình sử dụng kiến thức về nhân ma trận tương tự trong việc thám mã Hill. Ta quy ước các chuỗi encryptionKey và flag có dạng sau Thuật toán sẽ mã hóa từng kí tự p trong chuỗi flag để tạo chuỗi encrypted theo công thức (K là ma trận có kích thước 2 x 2) Vậy chỉ cần tính được nghịch đảo của ma trận K là ta có thể tìm được flag từ chuỗi encrypted Do chuỗi encrypted được cho sẵn và flag có dạng SECATHON{...} nên ta có thể tính được nghịch đảo của K và tìm ra flag. Chú ý các phép toán trên ma trận đều theo modulo 251. Flag => SECATHON{crypto_is_very_simple_if_you_know}

[VNPT SecAthon 2018] sql33t

Hình ảnh
Đi thi CTF được gần 3 năm rồi mới được giải nhất 1 lần (mặc dù biết rất nhiều đội mạnh không tham gia). Đáng lẽ ra đây là 1 chuyện đáng mừng nếu như đội mình - "đội J nào đó" không được gọi hồn lên. Sau đây mình xin trình bày cách giải của mình về 2 bài web sql33t_1 và sql33t_2.  Đề bài cho ta 2 trang web http://172.16.120.5:8081/ và http://172.16.120.5:8082/.  2 trang này cơ bản giống nhau về phần giao diện và các chức năng.  Đầu tiên thay vì chờ hint từ BTC thì mình xem html source của trang web, tìm được đường dẫn /pyc . Sau khi tải về về dùng Easy Python Decompiler để lấy source code.  (Việc này cũng tương đương với việc  pwn server của BTC để lấy source code về). Mã nguồn sql33t_1 Mã nguồn sql33t_2 Nghiên cứu source code ta thấy được mục tiêu của ta là để 2 câu truy vấn SQL trong code trả về kết quả là realJEDI thì flag sẽ được xuất ra. Challenge sql33t_1 Ở thử thách này có 2 tham số ta có thể inject được vào là username và sid

[SVATTT2017 Final] The last bullet

Hình ảnh
Trước khi đi vào nội dung xin mời mọi người thưởng thức 1 bài hát đã ám ảnh mình suốt cả cuộc thi (Mình cá là không chỉ có mỗi mình mình bị ám ảnh bởi bài hát này thôi đâu) Ok nghe xong rồi thì tới phần nội dung chính thôi THE LAST BULLET (Author: g4mm4) Title của trang web là StarTrek Local System:1337 => mình nghĩ là cần lấy cái gì đó ở 127.0.0.1:1337 , tuy nhiên chỉ như thế thì mọi thứ vẫn khá mù mờ (note lại để sau vậy). Sau khi fuzzing các kiểu ta có file robots.txt Đề cho cái gì thì ta cứ mò theo cái đó thôi => kiếm được file backup (chứa source code). Từ source code, ta rút ra một số điểm như sau: Có 3 tính năng chính: insert , delete , select Sau khi thực hiện insert thì delete cũng được gọi ngay sau đó Hàm file_get_contents được gọi khi thực hiện select Các tham số truyền vào đều được xử lý bằng hàm mysqli_real_escape_string URL được thêm vào khi thực hiện insert có prefix là http://tradahacking.vn và suffix là /phiasaumotcogai.html

[SVATTT2017] Web 300 - Whichgirls

Đề bài: Là gì quên rồi! :( Sau khi fuzzing các kiểu con đà điểu thì mình thấy tham số page bị dính lỗi Local File Inclusion . Kết hợp PHP Wrapper php://filter thì mình lấy được source code của trang web. Đầu tiền mình kiểm tra index.php Nhìn vào đoạn đầu của index.php, mình thấy rằng các request từ client gửi đến index.php đều được lưu lại tại /tmp/log/log_request_web300.txt Ố ồ! Một ý tưởng tuyệt vời lóe lên trong đầu mình. Local File Inclusion to Remote Code Execution via log file. Perfect wombo combo! Feel like daxua gank tem 15gg! Rất tiếc đời không như mơ, trang web không bị lỗi Poison Null Byte nên không thể sử dụng combo trên được. Hự! Tiếp theo mình vẫn cứ phân vân về log request ở trên, không biết BTC log lại để kiểm soát các hành vi phá hoại thật hay đấy chỉ là trap và flag có liên quan đến tệp log kia (và mình xoay vòng vòng như thế trong khoảng 2 tiếng rưỡi đồng hồ @@). Tận đến khi team mình bị kick xuống hạng thứ 9 (tương đương với việc ở nhà khỏi đi Đà

[SVATTT2017] Web 100 - Tên là gì ấy chả nhớ?

Đề bài: Là cái gì đấy cũng chả nhớ (Special thanks to Huy Anh Nguyễn). Kiểm tra robots.txt , mình thấy được đường dẫn /.git/ . Theo kinh nghiệm chơi CTF gần 2 năm của mình thì đây có thể là 1 git repository chứa source của trang web. Đang phân vân suy nghĩ xem có nên cài máy ảo Ubuntu để clone cái repository về không (thanh niên chơi dại vừa xóa hết máy ảo) thì được teamate clone xong và vứt cho đống source. (Sử dụng:  GitTools ) Sau khi đọc qua đống source code thì mình chú ý tới 2 file sau: Ta thấy được có 2 cách để đăng nhập như sau: - Cách thứ nhất là đăng nhập bằng username là TieuPhong và password là ******************** .(tất nhiên cách này sẽ không thành công rồi, mình chỉ nêu ra cho vui thôi :3 ). Update: Cách này login vẫn được nhé. Mình bị lừa. F*ck!!! - Cách thứ hai là đăng nhập thông qua cookie sử dụng hàm fnDecrypt trong file secret.php . Tìm hiểu về cách login bằng cookie mình rút ra mấy điểm: - Ta phải tạo được giá trị auth của cookie sao cho sau kh

Hello World!

Nothing here! Just a testing post!