Thứ Ba, 8 tháng 11, 2016

[SVATTT2016][RE] mrc150


$ ./mrc flag.txt
ffc309e61f2ac3df48d3b9b64fd1720bfb95b460a1235f5d91c4f92ce90dfa516e1b8c49225b808560a9d853980662dc26984e
bin : https://goo.gl/EvnRLw

Bài này cũng khá dễ.

Đọc qua code thì hiểu được thuật toán:
1. Ban đầu đọc 1 file dữ liệu
2. encrypt dữ liệu từ file đó theo thuật toán trong hình :
     Chỉ chú ý ở dòng 21. Giá trị được xor với 1 mảng dword_804a044. Ta export dữ kiệu mảng này ra.















Giờ ta chỉ cần code lại thuật toán sau đó bruteforce các kí tự là xong.

Chú ý là ở dòng 20 : printf("%02x",v4) sẽ tương đương với v4%256
Vì 4 bytes cuối được in ra từ  dòng 23 nên ta biết chắc giá trị đó là "}" (Vì flag có format SVATTT{...})




Code : http://pastebin.com/qRmUu4xg

Code có đoạn bỏ "\" và "`" do có vài Trường hợp trùng với các kí tự đó.


Flag : SVATTT{Whats_differenc3_between_my_mrc_@nd_crc}

Thứ Hai, 7 tháng 11, 2016

[SVATTT2016][ACM] betacaro150

5-in-a-row and get the flag!
nc betacaro.svattt.org 19132


Bài này này gọi là acm chứ mình chả code gì cả =)). Ngồi chơi tay từ đầu đến cuối thôi.
















Ban đầu chưa biêt sẽ đi như thế nào nên sẽ chọn no . Sau đó nó sẽ trả về một dãy hex cho mình. 









Ban đầu mình cũng tính toán xem mấy cái hex này quy luật thế nào với vị trí. Nhưng sau đó thấy nghĩ thuật toán tốn thgian quá nên quyết định chơi tay luôn =)). 
Sau lần đầu chọn no thì nó sẽ cho 1 đoạn hex. Sau đó nc lại với server và đi lại nước đó, nó sẽ đánh nước tiếp theo. Xong mình lại copy nước đó để lại cho lần sau, ...(bật 2 terminal lên chơi song song sẽ nhanh hơn ) Cứ thế xây dựng được 5 vị trí liên tiếp là bắt đầu chơi đc rồi. 
Thường thì mình cứ đánh liên tục 1 hàng như vậy :v. Nếu nó chặn thì cancel và chơi lại. Nhưng mà ít khi nó chặn mình lắm =)), toàn đánh xung quanh nên win khá dễ (Không biết là lỗi hay tính năng :v )









Hôm đi thi mình dùng gg sheets tạo cái bảng này :v (~20p)
Mới chơi lại thì tốn thgian hơn một chút 











và Flag : 













SVATTT{W3lc0m3_t0_MITM!}