Chủ Nhật, 28 tháng 8, 2016

[write-up][CTF(x)][For50] crash

Đề :

file : https://drive.google.com/file/d/0B8gJ0ijTg8_3Vk5meGhrNkJOQmM/view?usp=sharing
Sau khi tải về, unzip có 2 file. tuy nhiên file flag.txt rỗng. còn lại file .flag.txt.swp .
Tìm thử thông tin về file swp này thì ta biết nó là file vim swap file. Và command để recover file là 
vim -r .flag.txt.swp


flag :

ctf(v1m_is_be77er_than_3macs)

Thứ Bảy, 27 tháng 8, 2016

[write-up][CTF(x)] [Crypto50] λ (lambda)


I used this program to encrypt a flag. The output was:n1s4_t1An(f1ctdb@mpl_h3)m3lp3y__Eas


print (lambda j,m:(lambda f,t:t if len(t) <= 1 else j([f(f,x)for x in m(j,m(reversed,(lambda s:zip(*[iter(s)]*(len(s)/2)))(t+"\x01"*(len(t)%2))))]))(lambda f,t:t if len(t) <= 1 else j([f(f,x)for x in m(j,m(reversed,(lambda s: zip(*[iter(s)]*(len(s)/2)))(t+"\x01"*(len(t)%2))))]),raw_input("Plaintext:")))(''.join,map).replace("\x01","")

I realized it's a obfuscation code so it too hard to reverse code to readable. So i think a ez way to solve this challenge. I think this program will change pos of char so i will find the pos of each char before encypt.
First i check length of cipher:
len("n1s4_t1An(f1ctdb@mpl_h3)m3lp3y__Eas")=35

Then i encrypt this type of flag : 


ctf(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123)

after i encrypted this type of flag. i would found the pos of each char in this type of flag in encrypted flag. Here is my decrypt code :

def
enc(plaintext): return (lambda j,m:(lambda f,t:t if len(t) <= 1 else j([f(f,x)for x in m(j,m(reversed,(lambda s:zip(*[iter(s)]*(len(s)/2)))(t+"\x01"*(len(t)%2))))]))(lambda f,t:t if len(t) <= 1 else j([f(f,x)for x in m(j,m(reversed,(lambda s: zip(*[iter(s)]*(len(s)/2)))(t+"\x01"*(len(t)%2))))]),plaintext))(''.join,map).replace("\x01","") def dcode(cipher): flag_type="ctf(ABCDEFGHIJKLMNOPQRSTUVWXYZ0123)" flag="" for x in flag_type: flag+=cipher[enc(flag_type).find(x)] return flag cip='n1s4_t1An(f1ctdb@mpl_h3)m3lp3y__Eas' print "\nFLAG : ", dcode(cip)


Input : n1s4_t1An(f1ctdb@mpl_h3)m3lp3y__Eas
FLAG : ctf(1@mbd4_1nsAn1ty_pl3asE_h3lp_m3)



[Write-up] [IceCTF] [For125] Intercepted Conversations Pt.2

Đề :


File đính kèm là pcapng. Sau khi mở file bằng wireshark ta thấy đại khái có 2 thằng nói chuyện với nhau. Và thằng A kêu không an toàn nên gửi cho thằng B cái tool là file encode.pyc

 Kéo xuống 1 chút ta có thể thấy phần data file đc gửi qua
Follow TCP stream rồi dump file đó ra.
Đây là file pyc nên ta sẽ decompiler file này. Sau đó có phần source code Encode như sau :

# Python 3.5 (decompiled from Python 2.7)# Embedded file name: encode.py# Compiled at: 2016-08-08 05:10:09import randomimport base64P = [27, 35, 50, 11, 8, 20, 44, 30, 6, 1, 5,
2, 33, 16, 36, 64, 3, 61, 54, 25, 12, 21,
26, 10, 57, 53, 38, 56, 58, 37, 43,
17, 42, 47, 4, 14, 7, 46, 34, 19, 23,
40, 63, 18, 45, 60, 13, 15, 22, 9, 62,
51, 32, 55, 29, 24, 41, 39, 49, 52, 48,
28, 31, 59]S = [68, 172, 225, 210, 148, 172, 72, 38, 208,
227, 0, 240, 193, 67, 122, 108, 252, 57, 174,
197, 83, 236, 16, 226, 133, 94, 104, 228, 135,
251, 150, 52, 85, 56, 174, 105, 215, 251, 111,
77, 44, 116, 128, 196, 43, 210, 214, 203, 109,
65, 157, 222, 93, 74, 209, 50, 11, 172, 247, 111,
80, 143, 70, 89]inp = input()inp += ''.join((chr(random.randint(0,47)) for _ in range(64 - len(inp) % 64)))ans = ['' for i in range(len(inp))]for j in range(0,len(inp),64):for i in range(64):ans[j + P[i] - 1] = chr((ord(inp[j + i]) + S[i]) % 256)

ans = ''.join(ans)print(base64.b64encode(ans.encode('utf8')).decode('utf8'))# okay decompiling encode.pyc

Bên cạnh đó theo dõi tiếp file pcapng thì 2 thằng còn gửi qua một tin có dạng mã base64. Mà dựa theo đoạn code trên thì sẽ in ra chuỗi đc encode base64 nên ta đoán tin này là flag sau khi được encode
Giờ việc cần làm là dịch ngược đoạn code trên và tin nhắn này để đưa về flag. Decode
import random

import base64

P = [27, 35, 50, 11, 8, 20, 44, 30, 6, 1, 5,
2, 33, 16, 36, 64, 3, 61, 54, 25, 12, 21,
26, 10, 57, 53, 38, 56, 58, 37, 43,
17, 42, 47, 4, 14, 7, 46, 34, 19, 23,
40, 63, 18, 45, 60, 13, 15, 22, 9, 62,
51, 32, 55, 29, 24, 41, 39, 49, 52, 48,
28, 31, 59]S = [68, 172, 225, 210, 148, 172, 72, 38, 208,
227, 0, 240, 193, 67, 122, 108, 252, 57, 174,
197, 83, 236, 16, 226, 133, 94, 104, 228, 135,
251, 150, 52, 85, 56, 174, 105, 215, 251, 111,
77, 44, 116, 128, 196, 43, 210, 214, 203, 109,
65, 157, 222, 93, 74, 209, 50, 11, 172, 247, 111,
80, 143, 70, 89]

ans="Wmkvw680HDzDqMK6UBXChDXCtC7CosKmw7R9w7JLwr/CoT44UcKNwp7DllpPwo3DtsOID8OPTcOWwrzDpi3CtMOKw4PColrCpXUYRhXChMK9w6PDhxfDicOdwoAgwpgNw5/Cvw=="

ans=(base64.b64decode((ans.encode('utf8')))).decode('utf8')inp=['' for i in range(64)]

for i in range(64):

inp[i]= chr((ord(ans[P[i]-1])-S[i])%256)inp=''.join(inp)print inp


FLAG :
IceCTF{4Lw4y5_US3_5s1_AnD_n3VR4r_mAKe_Y0ur_0wN_cRyp70}



[Write-up] [IceCTF] [Misc] Blue moon

Đề

Kiểm tra hex:
Đây là file midi. Nghe thử thì khá giống mã morse nhưng không phải do quá ngắn. 
Mình tìm thử thì thấy cái tool này http://flashmusicgames.com/midi/mid2txt.php
Upload file lên sau đó send. Nó trả về như sau ;
MFile 0 1 220MTrk0 On ch=1 n=73 v=100220 Off ch=1 n=73 v=0220 On ch=1 n=99 v=100440 Off ch=1 n=99 v=0440 On ch=1 n=101 v=100660 Off ch=1 n=101 v=0660 On ch=1 n=67 v=100880 Off ch=1 n=67 v=0880 On ch=1 n=84 v=1001100 Off ch=1 n=84 v=01100 On ch=1 n=70 v=1001320 Off ch=1 n=70 v=01320 On ch=1 n=123 v=1001540 Off ch=1 n=123 v=01540 On ch=1 n=72 v=1001760 Off ch=1 n=72 v=01760 On ch=1 n=65 v=1001980 Off ch=1 n=65 v=01980 On ch=1 n=99 v=1002200 Off ch=1 n=99 v=02200 On ch=1 n=107 v=1002420 Off ch=1 n=107 v=02420 On ch=1 n=49 v=1002640 Off ch=1 n=49 v=02640 On ch=1 n=110 v=1002860 Off ch=1 n=110 v=02860 On ch=1 n=57 v=1003080 Off ch=1 n=57 v=03080 On ch=1 n=95 v=1003300 Off ch=1 n=95 v=03300 On ch=1 n=109 v=1003520 Off ch=1 n=109 v=03520 On ch=1 n=85 v=1003740 Off ch=1 n=85 v=03740 On ch=1 n=53 v=1003960 Off ch=1 n=53 v=03960 On ch=1 n=73 v=1004180 Off ch=1 n=73 v=04180 On ch=1 n=99 v=1004400 Off ch=1 n=99 v=04400 On ch=1 n=95 v=1004620 Off ch=1 n=95 v=04620 On ch=1 n=87 v=1004840 Off ch=1 n=87 v=04840 On ch=1 n=49 v=1005060 Off ch=1 n=49 v=05060 On ch=1 n=55 v=1005280 Off ch=1 n=55 v=05280 On ch=1 n=104 v=1005500 Off ch=1 n=104 v=05500 On ch=1 n=95 v=1005720 Off ch=1 n=95 v=05720 On ch=1 n=109 v=1005940 Off ch=1 n=109 v=05940 On ch=1 n=73 v=1006160 Off ch=1 n=73 v=06160 On ch=1 n=68 v=1006380 Off ch=1 n=68 v=06380 On ch=1 n=49 v=1006600 Off ch=1 n=49 v=06600 On ch=1 n=53 v=1006820 Off ch=1 n=53 v=06820 On ch=1 n=95 v=1007040 Off ch=1 n=95 v=07040 On ch=1 n=76 v=1007260 Off ch=1 n=76 v=07260 On ch=1 n=51 v=1007480 Off ch=1 n=51 v=07480 On ch=1 n=116 v=1007700 Off ch=1 n=116 v=07700 On ch=1 n=53 v=1007920 Off ch=1 n=53 v=07920 On ch=1 n=95 v=1008140 Off ch=1 n=95 v=08140 On ch=1 n=72 v=1008360 Off ch=1 n=72 v=08360 On ch=1 n=52 v=1008580 Off ch=1 n=52 v=08580 On ch=1 n=118 v=1008800 Off ch=1 n=118 v=08800 On ch=1 n=69 v=1009020 Off ch=1 n=69 v=09020 On ch=1 n=95 v=1009240 Off ch=1 n=95 v=09240 On ch=1 n=97 v=1009460 Off ch=1 n=97 v=09460 On ch=1 n=95 v=1009680 Off ch=1 n=95 v=09680 On ch=1 n=114 v=1009900 Off ch=1 n=114 v=09900 On ch=1 n=52 v=10010120 Off ch=1 n=52 v=010120 On ch=1 n=118 v=10010340 Off ch=1 n=118 v=010340 On ch=1 n=51 v=10010560 Off ch=1 n=51 v=010560 On ch=1 n=125 v=10010780 Off ch=1 n=125 v=011780 Meta TrkEndTrkEnd
 Có 2 Phần On Off nhưng số n ở 2 phần tương tự nhau.
Nhận thấy phần n= x với x giống như dec trong bảng mã ascii. Kiểm tra thử thì 73 = I, 99 (c), 101 (e) …
Dịch hết thì được flag : IceCTF{HAck1n9_mU5Ic_W17h_mID15_L3t5_H4vE_a_r4v3}  

Thứ Ba, 16 tháng 8, 2016

[Write-up] IceCTF - Move Along

Xin chào mọi người, mình là delta. 

Bài write-up đầu tiên mình viết này là bài Move Along trong giải IceCTF.

"This site seems awfully suspicious, do you think you can figure out what they're hiding?"
Khi truy cập vào trang ta chỉ dòng chữ như trong hình:

 Theo thói quen trước tiên thì mình sẽ F12 xem trang được code như thế nào.
Để ý đường link của tấm hình nằm ở "http://move-along.vuln.icec.tf/move_along/nothing-to-see-here.jpg", ta thấy tấm hình nằm trong folder move_along.
Di chuyển trở ngược folder đó (xóa tên tấm hình đi), sẽ có folder 0f76da769d67e021518f05b552406ff6/, tiếp tục sẽ có file ảnh secrect.jpg, và đó là nơi chưa flag t cần tìm :))


Chúc các bạn thành công! :)



Thứ Bảy, 13 tháng 8, 2016

[Writeup]IceCTF-Scavenger Hun-Misc-20 pt

Đề bài:
There is a flag hidden somewhere on our website, do you think you can find it? Good luck! 

Dịch đề các bạn chắc cũng đã hiểu đề yêu cầu cái gì rồi chứ :D flag được giấu đâu trong  https://icec.tf/ ,việc của các bạn là tìm ra nó @@

Nhìn như kiểu mò kim đáy biển ấy nhỉ,nhưng chưa thử sao biết:>
Các bạn đi view-source hết các trang liên kết vs page xem sao :D

Quả không sai,mình cũng tìm được nó,ez =))

Flag:IceCTF{Y0u_c4n7_533_ME_iM_h1Din9}
bigb0y27

[Writeup]IceCTF-Rotated!- Cryptography -20 pt

Đề bài :
They went and ROTated the flag by 5 and then ROTated it by 8! The scoundrels! Anyway once they were done this was all that was left VprPGS{jnvg_bar_cyhf_1_vf_3?} 

Nhìn vào đề bài cho chúng ta một đoạn mã,nghĩ ngay là phải tìm cách giải mã đoạn này và chúng ta sẽ có flag:VprPGS{jnvg_bar_cyhf_1_vf_3?} 

Chắc do mình làm nhiều dạng bài như thế này rồi nên mình nhận ra ngay đây là Ceasar Cipher:
Các bạn có thể lên GG tìm và đọc các mã hóa + giải mã nó như thế nào :D

Hiểu được vấn đề hãy đọc lại đề thật kĩ và các bạn có thể code tool để giải quyết nó hoặc GG các tool online có sẵn(mình không khuyến khích nha):
Giải mã ta được Flag:IceCTF{wait_one_plus_1_is_3?}
bigb0y27


[Writeup]IceCTF-All your Base are belong to us-Misc -15 pt

Đề bài cho chúng ta một file flag.txt và mục đích của đề bài là yều cầu chúng ta "dịch" được file này :>

Ok,let's go
Đầu tiên là định hướng,nếu như ai chưa biết thì file gồm các mã hệ nhị phân 8 bit
Cách 1:chúng ta sẽ đổi chúng thủ công bằng cách đổi mã nhị phân đó sang hệ thập phân.rồi chúng ta sẽ lại đổi từ hệ thập phân qua ASCII...có vẻ trâu bò nhỉ :>
Cách 2:Là chúng ta sẽ code,mình code trên python nhưng mà mình code gà lắm :>


Đây là code của mình cho bạn nào muốn tham khảo:
import binascii
msg='01001001011000110110010101000011010101000100011001111011011000010110110000110001010111110110110101111001010111110110001001100001011100110110010101110011010111110110000101110010011001010101111101111001011011110111010101110010011100110101111101100001011011100110010001011111011000010110110001101100010111110111100100110000011101010111001001011111011000100110000101110011011001010111001101011111011000010111001001100101010111110110110101101001011011100110010101111101'
text = int (msg,2)
text_1=binascii.unhexlify('%x' % text)
print text_1

Việc tiếp theo là run chương trình nữa là xong :>
ok,bạn nào chưa biết python và run ntn có thể tự tìm hiểu bằng GG nha :D

Flag:IceCTF{al1_my_bases_are_yours_and_all_y0ur_bases_are_mine}
bigb0y27

[Writeup]IceCTF-Spotlight Glitch-Web -10 pt

Bài này khá đơn giản:
Đề cho chúng ta 1 site: http://spotlight.vuln.icec.tf/ và việc chúng ta là tìm flag trong cái trang này :3 :3
Đối với mình thì thấy đã làm web việc đầu tiên là phải view-soucre trong đầu tiên :D
Mình Ctrl + U
Ôi đệt,không có cái gì hêt :>
Chưa từ bỏ,mình f12 và rồi,ez =)))
Xong,quá dễ phải không nào :D
Flag:IceCTF{5tup1d_d3v5_w1th_th31r_l095}

bigb0y27

Lời nói đầu

Blog được viết dành cho những bạn mới làm quen CTF,những cái từ đơn giản nhất để tiếp cận và chơi CTF dễ dàng hơn....

Tụi mình cũng chỉ mới chơi nên cũng khá ít kinh nghiệm,chỉ là chia sẻ với mọi người những thứ mà tụi mình biết và học hỏi từ các anh trong trường.Cảm ơn mọi người đã ủng hộ.
Blog được viết bởi các thành viên của L.E.I CTF:
-bigb0y27:Nguyễn Hồng Sơn
-z22:Nguyễn Quang Thái
-delta:Nguyễn Nhật Tân
-Tentacles:Phạm Hà Thiên Thanh
và có một thành viên sinh hoạt rất sida là Nguyễn Trùng Khánh :3

Tụi mình mong muốn CTF sẽ phát triển rộng rãi không chỉ trong ATTT ,mà tất cả cách khoa,ngành của UIT đều tham gia nữa...Vì trường chúng ta đã có truyền thống CTF rất mạnh mẽ,đều giành được những giải thưởng lớn trong nước và quốc tế :D