Tổng số lượt xem trang

Thứ Ba, 26 tháng 8, 2014

HITCON2014 - Game24


Game 24 – Writeup – Phiêu Lãng
Khi connect game bằng nc 210.65.89.59 2424 thì ta nhận được 4 số nguyên dương.
Chúng ta phải sử dụng chính xác 4 số đó với các kí tự match [-+*/0-9()]+ để thỏa điều kiện: abs(eval(answer)) – 24 <= 1e-15
ĐIều đầu tiên nghĩ tới là sử dụng các phép + - * / để tạo ra các đáp án thỏa điều kiện.
Trên mạng có source game 24 nhưng mà không để ý nên mình ngồi code từ tối tới đêm ra được 1 file game24.py
Source sử dụng socket send và rev data với server game 24. Khi lấy được 4 số nguyên từ server mình sử dụng các phép tính và dấu ( ) tạo ra tất cả các trường hợp sau đó tính toán sao cho thỏa điều kiện abs(eval(answer)) – 24 <= 1e-15 thì send lại tới server. Lưu ý: câu trả lời không chứa khoảng trắng và cuối câu trả lời phải có kí tự xuống dòng (Bật wireshark bắt mới biết cái này )
Code xong chạy…. 1… 2… 3… 4… Có vẻ khả quan… 5.. 6… 15… 16… ERROR!!! abs(eval(answer)) – 24 >= 1e-15
Lấy máy tính casio ra tính các kiểu không thể nào thỏa điều kiện
Chạy lại xem sao… câu 16 lại ERROR!!! Thôi tạch mẹ rồi… Chắc code sai Lên IRC coi thì hint là dường như bạn đang chơi game khác :v Quoác… Game khác là game nào
Đêm rồi ngủ… Sáng dậy cái bay ngay vào nghiên cứu tiếp… Sau khi thử các trường hợp khác trên python thì phát hiện ra còn trường hợp ** là pow và // nữa
Sửa code chạy tiếp…
1… 2… 3… 24… ERROR!!! Đệch lại tạch nữa sao
Check code lại thì thấy thiếu trường hợp dấu - ở đầu câu trả lời…
Sửa tiếp…
Run again…
Yeah!!! Flag is ….
Submit lên hạng thôi :D


Thứ Hai, 25 tháng 8, 2014

HITCON2014 - pneumotoulthamicrescopicfilicoloaganiconissis


Source 
Hint:
diff the file content and the origin english word (try to find it out)
 Với bài này đề cho 1 đống chứ hok lạ hoắc nhưng được cái ta có 1 hint. Theo mình được biết là diff là 1 hàm để so sánh. 
Thêm vào đó là anh Thành đã dùng tiêu đề pneumotoulthamicrescopicfilicoloaganiconissis search google và google dịch để ra được từ đúng. Từ tiêu đề của challenge này mình đi so sánh với cái cụm từ đúng của google dịch ta ra được "This is flag" (lấy từ những ký tự của cái tiêu đề tại những chỗ sai). Từ đó mình nhận ra rằng cái đống chữ của challenge cho sẽ phải so sánh với 1 cái đống chữ nào đó để tìm ra Flag.
Việc bây giờ là làm seo tìm được đống từ để so sánh với cụm từ tụi nó cho. Mình treo nick trong IRC và thấy có đứa post cái link youtube là cụm từ én lịt dài nhất thế giới từ đây mình lấy được cụm từ phù hợp hoặc ở đây.
Từ đây mình dùng lệnh cmp để tìm điểm khác biệt nhưng không rõ seo ko làm ra.... h còn thắc mắc >.< theo đây
$ cmp -bl <(echo -n abcda) <(echo -n aqcde)
2 142 b 161 q
5 141 a 145 e

Lúc coi writeup tụi nó viết cả 1 script python:
longest = '' #put the longest word here
longest_modified = '' # put the modified longest word here
i = 0
password = ''
plLen = len(longest_modified)

for j in range(0, plLen):
c = longest_modified[j]
d = longest[i]
if c != d:
password = password + c
i = i + 1
j = j + 1

print password
cuối cùng tụi nó ra:

HITCON{This flag is longestestestestestestestestestestestestestestestestestestestestestestestestestest!!!}
Kinh nghiệm: google kỹ từ google đến google dịch, ngoài ra code được gì thì cứ code hạn đừng quá lạm dụng các hàm của nó vì khó hiểu các hàm đó chạy ra seo