Thứ Bảy, 10 tháng 12, 2016

[writeup] SECCON quals 2016

Giải SECCON  đầu tiên. Đội làm được 4 bài thôi mà 3 bài có dấu răng mình :3. Mặc dù chơi pwn mà chả pwn được bài nào :(. Quá kém.

Bài đầu tiên nhiều người giải nhất : Vignere 















Vigenre ? Nhìn qua thấy được là k có 12 kí tự.   Mà nhờ có 8 kí tự SECCON{} nên sẽ tính được 8 kí tự đầu của key là VIGENERE. Còn 4 kí tự sau thì brute force rồi kiểm tra với md5 thôi

Code : http://pastebin.com/UDZwC1Uv
Key : VIGENERECODE
flag : SECCON{ABABABCDEDEFGHIJJKLMNOPQRSTTUVWXYYZ}

Memory Analysis



















file : http://files.quals.seccon.jp/memoryanalysis.zip

Bài này làm khá ngáo =)). Không đổi domain thành IP làm không ra (Tks Khánh =)) )

Kiểm tra file trước 









Thêm cái hint là xem file hosts với thêm 1 cái nữa là file svchost fake







dump 2 file đó ra 





Kiểm tra 2 file thấy được ip bị chuyển tới và url của nó 







Curl và flag đây rồi :





flag : SECCON{_h3110_w3_h4ve_fun_w4rg4m3_}


Anti-Debugging








file : http://files.quals.seccon.jp/bin
Kiểm tra là file bin: PE32 executable (console) Intel 80386, for MS Windows
Bật ida lên xem qua : main http://pastebin.com/w5T5sHnU
Chú ý có đoạn này 
  1. printf("Input password >");
  2.   v3 = (FILE *)sub_40223D();
  3.   fgets(&v23, 64, v3);
  4.   strcpy(v21, "I have a pen.");
  5.   v22 = strncmp(&v23, v21, 0xDu);
  6.   if ( !v22 )
  7.   {
  8.     puts("Your password is correct.");
....

ủa vậy là flag là "I have a pen." à ? Tất nhiên là k phải (đã thử submit =)) ). Cái này chỉ để kiểm tra rồi nó chạy xuống thôi. 

Nhìn hết hàm main mà chả có gì đáng chú ý ngoài mấy cái check debug. Chuyển sang graph xem. 
Chú ý có cái này (Tks Khánh again =)) )










loc_401652:
mov     [ebp+var_78], 0
cmp     [ebp+var_78], 1
jnz     loc_40174D

Dòng trên làm nó luôn nhảy vào loc_40174D (nhánh bên phải). Vậy check xem nhánh bên trái xem sao. 
Đại khái là có một chuỗi khác rồi nó làm này nhọ gì nhức óc lắm vì vậy nên mình patch lại file bin này. Chuyển byte 1 ở trên thành cmp với 0 => vậy nó sẽ nhảy về nhánh bên trái 
Chuyển sang hex view xem (Bôi đen dòng đó rồi chuyển sang hex view sẽ thấy )









Rồi bật hex editor lên chuyển thành 83 7d 88 00 thôi 
file path : https://drive.google.com/file/d/0B-QPcxnExPUcamRLWGx6amRQVHc/view?usp=sharing
Run (Nhớ tắt mấy trình debug)





Flag : SECCON{check_Ascii85}