Writeup WhiteHat Challenge 03
Đây là lần đầu tiên mình tham gia vào WhiteHat challenge, và chơi hẳn luôn một mình một team :v. Vì phải đi học sáng nên mình không thể tham gia khi cuộc thi bắt đầu vào lúc 9h sáng, nhưng những trải nghiệm mà cuộc thi đem lại cho mình phải nói là cực kì thú vị và phấn khích :D. Cũng không rõ nhờ năng lực nào mà mình có thể giải được 7/10 flags, thời điểm cao nhất có lúc nằm trong top 10 xếp hạng rồi :v, mà tiếc là thời gian khá ngắn ngủi, mình cũng không solve được thêm nữa nên đành chịu tụt xuống #20.
Đây là team mình, EHS là viết tắt tên trường mình :3.

Web001
Sign in and get the flag in the following site.
URL: http://web001-chal03.wargame.whitehat.vn
Submit WhiteHat{sha1(flag)}
Mở url, ta được một form đăng nhập

Xem source trang, lấy được username/password: test/test

Đăng nhập thử, trang web báo không có quyền admin

Xem thử cookie, thấy có giá trị “user=test”, thử đổi lại thành “user=admin” xem có hổng session không

Flag :3

Flag: WhiteHat{sha1(don’t_believe_cookies_at_all)}
Web002
Input right password in the following site and get you can the flag.
URL: http://web002-chal03.wargame.whitehat.vn
Submit WhiteHat{sha1(flag)}
Mở url, được form yêu cầu nhập password

Mình xem source site, thấy có đoạn javascript rất dài, nghi là JSFuck. Kiểm tra bằng cách xóa đoạn “()” ở cuối đi, thêm toString() vào và chạy thử. Được 1 đoạn function

Format lại script cho đúng chuẩn

Chạy đoạn script tìm giá trị của biến wellplayed để lấy password

Tìm thấy flag :))

Đoạn JSFuck ở bước 2: here
Flag: WhiteHat{sha1(easy_javascript_right?)}
Crypto001
I happen to get this text, but it seems to be encrypted. Decrypt it and find the hidden flag.
HJXAJY GPHTPR HPL P CPBDG APGTCTV SCP CPXRXIXADE DWL LTGWIGTKD TWI CPBDG RXAQJETG SCP STWHXAQPIHT TWI TAJG UD TWI HGDGTEBT. GPHTPR STHJ TWI HBTAQDGE SCP HEXWHSGPW UD TWI SDXGTE DI TIPTGR HXW CLD TBTGEJH APRXIXADE SCP NGPIXAXB GTLDE. VPAU HX TWI GPTN IPWI GPHPTR HPL CGDQ. CPBDG GDGTEBT HJXAJY GPHTPR HX STSGPVTG HP TCD UD TWI IHDB AJUGTLDE SCP AJUHHTRRJH HGTSPTA CX TWI NGDIHXW UD TWI SAGDL. HXW TUXA SCP HXW ICTADXK WIPTS TKPW CTTQ NATSXL STIPGQTATR CX TGJIPGTIXA SCP BAXU.
Submit WhiteHat{sha1(flag)}
Nghi ngờ đoạn văn bản được mã hóa bằng Caesar/Subtitution, nên mình tiến hành phân tích bằng phần mềm CrypTool. Mở CrypTool, paste đoạn văn bản ban đầu, chọn Analysis -> Symmetric Encryption (basic) -> Ciphertext-Only -> Caesar. Phần mềm trả về kết quả tốt nhất (phần khoanh đỏ)

Sau khi kiểm tra vài từ thì mình nhận ra rằng đoạn văn bản đã được đảo lại hết các từ và các tiếng trong câu. Viết 1 đoạn JS để đảo lại câu.
Tìm thấy gợi ý flag:
FLAG IS THE YEAR THAT CAESAR WAS BORN
Google theo gợi ý là ra flag ngay :3
Flag: WhiteHat(sha1(100))
Crypto002
We have components of an RSA cryptosystem. Decrypt the cipher to get the flag.
RSA info:
- https://vi.wikipedia.org/wiki/RSA_(m%C3%A3_h%C3%B3a) Vietnamese
- https://en.wikipedia.org/wiki/RSA_(cryptosystem) English"
Download RSA-info file here:
Submit WhiteHat{sha1(flag)}
Sau khi tải file info về, mở lên được một số giá trị: n, p, q, e, c. Đây là các giá trị tham gia vào quá trình mã hóa RSA.

Để giải mã được cần tìm private key (d). Mình dùng công cụ rsatool để xử lý

Sau khi có đủ giá trị, ta tiến hành giải mã. Input data như trong ảnh chính là giá trị e đã được chuyển thành dạng hex. Sau khi giải mã ta lại được một chuỗi hex khác

Giải mã chuỗi hex, ta được flag

Flag: WhiteHat{sha1(simple_rsa_decryption)}
For001
This piece of data is captured via USB port, look for the flag transferred through it.
You can use Wireshark to read the file pcapng.
Download file pcap here:
http://material.wargame.whitehat.vn/challenges/3/For001_61fb3e6d8aa22c75362af02e798331bbf5b73a4b.zip
Submit WhiteHat{sha1(flag)}
Mở file của btc cung cấp, được một file .pcapng chứa data

Do quen tay nên mình click đúp mở luôn file .pcapng, và thật tình cờ thư mục Flag cũng được giấu bằng cách nén vào trong file đó :v :v

Flag :3. Có lẽ ở bài này btc muốn làm khó bằng cách đánh lạc hướng người chơi vào việc đi tìm packet, nhưng may mắn thay vì mình không cài Wireshark nên mặc định Winrar được chọn để mở file, và mình vớ được flag =))

Flag: WhiteHat{sha1(Life is short, Smile while you still have teeth !)}
For002
We have eavesdropped a piece of network data when a user signed in a website. Find the flag as his password.
You can use Wireshark to read the file pcapng.
Download file pcap here:
http://material.wargame.whitehat.vn/challenges/3/For002_ca60a166cf35f9f0567826b31a457df75017bfbb.zip
Submit WhiteHat{sha1(flag)}
Việc phân tích packet bằng Fiddler thì đã quá quen thuộc với mình, thành một ngón nghề rồi :3, nên mở file lên là mình search ngay các requests có chứa từ “password”. Trong 3 requests chứa từ đó lại chỉ có đúng 1 request có response header là 302 (header này để redirect khi user đăng nhập thành công). Nên nhìn cái là mình ra luôn flag :))

Flag: WhiteHat{sha1(@Bkav123#$challange3)}
Pwn002
You are lucky, you can try your luck to pass our guessing game. Google search for something interesting.
Play game by using netcat: nc 103.237.98.32 25032
Submit WhiteHat{sha1(flag)}
Thử kết nối đến server, nhận được yêu cầu đoán 2 số. Mình nhập bừa thử 1 số thì nhận được thông báo nhập số trong giới hạn từ 100-1000

Mình viết 1 đoạn bash script để bruteforce số đầu tiên

Sau khi tìm được số đầu tiên là 576, server lại tiếp tục yêu cầu nhập số thứ 2, gợi ý là dùng hàm srand với time(0) trong C

Mình tiếp tục viết 1 chương trình C theo yêu cầu để tìm số tiếp theo
Craft 2 đoạn script lại thành 1 command: (echo "576"; sleep 1s; ./a.out) | nc 103.237.98.32 25032. Flag đây rồi :3
Flag: WhiteHat{sha1(Life_is_a_story_make_yours_the_best_seller.)}
Những kiến thức này bạn học từ nguồn nào thế bạn? Mình đang xây dựng web và mình cũng thích bảo mật, bạn có thể cho mình nguồn học không? Cảm ơn
Trả lờiXóa