COOKIE HÂN HOAN VÀ TUI KHÔNG BIẾT LÀM T_T

Hế lô bà con, mình là kon-chan. Mọi người cứ gọi mình là Kon cũng đc :v

Lời đầu tiên là cảm ơn anh Hazy cùng ban tổ chức, ban ra đề đã tổ chức 1 buổi ctf UwU

Giải này mình chỉ solve 20 chall như các bạn thấy T_T, đứng top 40 :v hi vọng năm sau sẽ đạt giải thưởng :D


Mình wu 7 bài web, trong đó 1 bài mình không làm kịp trong lúc cuộc thi diễn ra, còn bài suck us mình lười quá với lại đang tập trung làm extract video nên ko ngó :V
Web1: Be positive
Mình được cho đề bài thế này
 Vì là không có source nên mình test blackbox. Đề bài đã gọi ý username và password của bob và alice
bob:bob
alice:alice
thử đăng nhập xem thế nào.


Đây là 1 trang chuyển tiền, tiền giữa 2 tài khoản là $1500, nếu chuyển hết cho 1 tài khoản thì là $3000, flag có giá $3001. Việc mình cần làm là tìm cách sao cho tiền mình dư ra 1 khoảng :v
đầu tiên phải xác định được logic khi chuyển tiền. Giá sử A là người chuyển và B là người nhận, A sẽ bị trừ tiền và B được cộng tiền.
Ở đây ta sẽ đặt ra 1 giả thuyết, nếu như A chuyển số tiền âm thì sao
theo như logic trên hệ thống sẽ trừ tiền âm, tức là cộng tiền cho A :D
Mình thử 
và đây là kết quả :v
Web2: Slow Down

Mình sẽ chia wu thành 7 bài blog hoặc cố ngắn hơn, thx mn :v
Tương tự như bài be positive nhưng lần này nó đã chặn chuyển số âm 

Đọc về bài làm mình liên tưởng đến lỗi race condition, mình code khá cùi mía nên đã tìm 1 cách khác. Mình nhận ra nếu thay hậu tố thì kết quả vẫn sẽ được thực thi :v thế nào mình thêm dấu trừ vào cuối giá tiền 
và đây là kết quả :v
không chắc ý đồ của tác giả là như thế nào nữa, cái này gọi là ăn may hê hê :v

Web3: Youtube downloader
Đây là đề bài
Mình khá thích các bài blackbox, chứ nó mà cho source xác định là mệt hmu hmu
Tiếp tục recon 
mình thử nhập 1 payload ssrf cơ bản để check lỗi, nó render về 1 cái command 
Với các bài kiểu này mình sẽ đi theo hướng os injection :v 
Mình dễ dàng nhận thấy nó đã hoạt động
Nhưng tác giả đã ngăn sử dụng khoảng trắng, có rất nhiều cách bypass mình thì chọn dùng $IFS

Web4: Pass Code
Trong thời gian thi đấu, mình đã không hoàn thành này và đành phải xin hint T_T, thx bác @Teebowie
vì cái tool :v

Mình bắt đầu recon và chú ý vào đoạn code js đã bị obfuse

copy đoạn code đó và đưa lên beautiful để làm đẹp code
đoạn code của mình có vẻ dễ đọc hơn, nhưng vẫn cần giải quyết vấn đề làm rối code 
Mình sài tool này deobfuse để giải quyết vấn đề trên và nó đã khá là dễ đọc
chú ý vào  _0x46d3cf, mình thấy nó gọi đến hàm decrypt của CryptoJs-thứ mà mình thấy lúc view-source.
Tại hàm decrypt các tham số được truyền vào lần lượt là cyphertext, key, và 1 cái jj đó mình ko biết :D
Từ đó suy ra, "bánh quy chấm sữa" là key decrypt cần tìm :v
Và đây là kết quả 
Web5: Magic login

Đề bài đây. Ông Chương này lắm máu đầu thế :v
mình được cho vô trang login
view-source thì mình thấy đoạn code php như sau. Tóm tắt là nó đang dùng so sánh no strict, ==. Mình sẽ tìm một hash sha256 sao cho hash là 0e hoặc 00 để bypass phần login


Mình tìm được số này 34250003024812, khi hash sẽ là 0e46289032038065916139621039085883773413820991920706299695051332==0. Cho nó vô password là pass :D
sau khi login xong, được chuyển tới trang login :v theo kinh nghiệm của mình là mình sẽ rce thông qua fileupload, thế là upload 1 file shell.php để có chỗ đứng


file php của mình
<?php system($_GET['cmd']);?>

Web6: Magic Login Harder
Đề bài như sau, có vẻ flag là một chuỗi kí tự random. Ý tưởng là rce flag hoặc brute-force
Bài này tác giả đã cho mình source, nên tập trung vào phần source thôi :v
Tập trung vào file index.php, file này xử lý phần login
Tác giả lần này đã cao tay hơn khi xử dụng so sánh ===, yêu câu pass khác nhau nhưng cùng 1 hash.
Mình có tìm được 2 file bin trong bài này. Rất may tác giả dùng base64 nên mình quăng 2 file đấy lên cyberchef lấy mã base64 của chúng :V
có vẻ tác giả setup lỗi hay jj đó mà nó không chuyển hướng qua admin.php :v
nên mình phải tự qua :D
Đọc source file admin.php thì mình thấy nó đang bị lỗi local file inclusion :v
Ý tưởng là rce thông qua lỗi này. Trong php có một file đặc biệt là pearcmd.php, bản thân nó là 1 cli programing, nếu set  register_argc_argv thì pear sẽ có thể nhận các REQUEST paramater thay cho CLI argument, và PEAR thì gần như luôn tích hợp sẵn trong PHP
Vậy là thành công, bh đọc file /tmp/kon.php để rce UwU

Bài cuối hơi mệt, up sau v;












Nhận xét

Bài đăng phổ biến từ blog này

KMACTF và nỗi buồn éo làm được gì cả T__T