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.

image



Web001

Sign in and get the flag in the following site.URL: http://web001-chal03.wargame.whitehat.vnSubmit WhiteHat{sha1(flag)}

Mở url, ta được một form đăng nhập

image

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

image

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

image

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

image

Flag :3

image

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.vnSubmit WhiteHat{sha1(flag)}

Mở url, được form yêu cầu nhập password

image

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

image

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

image

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

image

Tìm thấy flag :))

image

Đ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 đỏ)

image

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) Vietnamesehttps://en.wikipedia.org/wiki/RSA_(cryptosystem) English"Download RSA-info file here:http://material.wargame.whitehat.vn/challenges/3/Crypto002_c576122a778397b48fa2d0368e2e02a14df1db41.zipSubmit 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.

image

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

image

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

image


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

image

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.zipSubmit WhiteHat{sha1(flag)}

Mở file của btc cung cấp, được một file .pcapng chứa data

image

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

image

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 =))

image

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.zipSubmit 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 :))

image

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 25032Submit 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

image

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

image

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

image

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

image

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

image

Flag: WhiteHat{sha1(Life_is_a_story_make_yours_the_best_seller.)}