PTITCTF Contest1 + KnockOut Round + Final Round

PTIT Contest 1:


Lần đầu tiên tham gia cuộc thi của trường ( tài khoản top 1 của anh ra đề vào phá ) :D

Crypto:
Just01:
begin 644 dota2.txt
44%1)5$-41GMN97=B964N=75U.7T`
`
end


thấy dạng begin blabla cat blabla.txt
blabla
end
-> Chính là Uu encode
Ta Uu decoder là ra
flag: flag: PTITCTF{newbee.uuu9}


Just02: 倁吁䤁吁䌁吁䘁笁琁椁渁弁渁栁愁渁弁瘁椁攁琁琁攁氁紁


nhìn dạng này nghĩ ngay trong đầu chinese to Unicode ( -_- sáng thấy dạng /u01xx tưởng nó của UTF 16 32 gì gì đó cao siêu làm mãi k ra, hết giờ hỏi ra mới biết làm đúng mà thế vô ngu -_- )
Đọc xong hiểu chỉ cần bỏ các byte /u và 00 là xong :v -> và làm vậy là bị mấy ảnh lừa =)) mấy ảnh sửa lại 01 rồi :v  
Trước khi phẩu thuật

Sau khi phẩu thuật


flag: PTITCTF{tin_nhan_viettel}


Just03: (♥ ͜ʖ♥) (♥ ͜ʖ♥) ( ͡°( (♥ ͜ʖ♥) (♥ ͜ʖ♥) (♥ ͜ʖ♥) (♥ ͜ʖ♥) (♥ ͜ʖ♥) ᕦ( ͡°ヮ ͡°)ᕥ ( ͡° ͜ʖ ͡°) (∩ ͡° ͜ʖ ͡°)⊃━☆゚.* ) ͡°) ᕦ( ͡°ヮ ͡°)ᕥ (♥ ͜ʖ♥) (♥ ͜ʖ♥) (♥ ͜ʖ♥) (♥ ͜ʖ♥) (♥ ͜ʖ♥) (> ͜ʖ<) ( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°) ( ͡° ͜ʖ ͡°) (> ͜ʖ<) ( ͡° ͜ʖ ͡°) (> ͜ʖ<) (♥ ͜ʖ♥) (> ͜ʖ<) ( ͡° ͜ʖ ͡°) (> ͜ʖ<)
Okay Brainfuck+3 ( -> https://esolangs.org/wiki/(_%CD%A1%C2%B0_%CD%9C%CA%96_%CD%A1%C2%B0)fuck )
giờ mình sẽ dùng notepad để replace các kí tự
sau đó ta được chuỗi brainfuck :D Decoder ta được TextFuck :v 
flag: PTITCTF{ahihi}


Các bài dưới đây mình bị mất link đề rồi :(

for100:

tải về up nó lên extractpdf.com ( sáng mất cái fb vì cái chơi ngu nhất năm này :v , thấy cái hình lôi về phân tích trong khi nhìn cái tab kế bên )
flag: PTITCTF{n3v3r_b_@l0n3}
Ngoài ra bài này bạn vào file pdf ctrl + A sẽ thấy 1 dòng chữ bị che -> chính là flag








for150:
Bài này đang ngắm đề sướng thì được cái hint cái hết ngắm luôn : stepic ( cái hint 1 admin dùng base32 )


stepic -d -i  st.png
-> lời nhạc -> đối chiếu với lời bài hát -> các chỗ lời khác nhau chính là flag
lần lượt là : i ( in ) may ( me ) let ( take ) you ( me ) down ( began )
flag: PTITCTF{imayletyoudown}


MISC


Keep ur eye open


-> tải về 1 file zip có pass bên trong tìm cách bypass -> google
pass là 1 khá là troll
ra được 1 cái QR code gì đó, scan -> flag


flag: PTITCTF{g1v3_@way}


Welcome to our 1st contest !!!


Tải về, có 1 file word -> đọc và để ý PTITCTF@mt2015.com


nghi ngờ tìm thử xem mt2015 là gì


ồ nó là 1 trang web về trash mail ( chat giới tính phiên bản mail chắc vậy ) thử get cái mail
Sau truy theo và đọc mail !!
Ok khá là hot !! xem thôi à nhầm thử tìm bên trong xem :v


-.. ----- -. ·----· - ··--·- -... ...-- ··--·- ·--·-· ··--·- -.. .---- ... - .-. ·--·-· -.-. - .. ----- -.

sau 30p “kiểm tra kĩ lưỡng” ở các link khác, ta quay về link cũ để ý ở phần description có 1 đoạn mã morse
-> Morse decode


-> flag: PTITCTF{d0n't_b3_@_d1str@cti0n}


Maybe the hardest one?


Khi tải file về, để ý có 1 nùi các cái chunk file
-> tiến hành nối file ( nhớ xếp theo thứ tự thời gian tạo, vì sai thứ tự -> sai byte -> file damaged or corrupted )
Bạn có thể dùng code, cơ mà mình dùng Hex editor để tiện vừa xem vừa kiểm tra ( lời chống chế của đứa code gà T_T) , cứ copy paste file theo thứ tự ta ra được file
Theo hint đề cho là time -> sắp xếp theo time các file chunk được tao, ngoài ra ta để ý khi mở file đầu
có header có dạng PK…… là file mở đầu của zip và file cuối là
-> ,kết thúc file ,  giờ ta có thể dùng code để nối nó lại hoặc để rõ hơn, ta dùng Hex editor , mở theo thứ tự các tab lên, và copy paste các byte lần lượt ( tránh mất byte và để kiểm tra xem mình có đang đúng k )
sau tất cả ta được 1 file zip hoàn chỉnh và k bị corupted or damaged, pass giải nén cũng là tên của file bên trong




pass để giải nén là : base64(tên file)


sau đó ta tiến hành decompiler file .class
-> tìm được đoạn code java







để ý cái mãng int có 80 84 là mã ascii của từ P và T -> cực kì nghi , và dựa theo code đã cho ta tìm được
flag: PTITCTF{C0ngr4tul4t10n!_Th1s_1s_50k_ch4ll}





Web01: http://104.199.205.43:9001/


Bài nay theo hint thì ta sẽ thử F12, test xem các giá trị trong list 1 , 2 và 3 sẽ get các giá trị nào
Chọn list 1 -> get -> f12 -> network ta thấy có gói get_data.php


List 1 k có


List 2, cóp mấy cái dữ liệu trong get_data.php vào word cho đỡ đau mắt, search thử flag thì phát hiện ra anh ấy ngay  :v -> flag: PTITCTF{H1pp0wd0n_1_ch00se_y0u}


Baby PWN ( PWN002)  

sau khi netcat đến server  ,chọn 1 để đọc README ,ta để ý buffer của nó là 116
và cookie == 0x37333331 và secret == 0x4d494843 thì ta sẽ có flag
-> 116*a + 8bytes sao cho làm cho cookie và secret tràn giá trị như trong hình


Mình đã từng làm bài nay bên 2014.pico nên có sẵn cái để test :v
Tưởng tượng dòng màu lá cây là cookie, dòng trắng là secret
-> với 00000000000000001337CHIM là đạt giá trị như đề
-> với bài này buffer 116 -> 116 chữ và 1337CHIM


kết quả -> flag: PTITCTF{co^_do*n_mi`nh_t4}




PTITCTF Knock Out Round
Không có văn bản thay thế tự động nào.


Crypto


  1. Welcome: UFRJVENURntXM2xjMG1lX3QwX3RoM19jMG50M3N0IX0=
Nhìn vô thấy 1 đống chữ, tùm lum không biết gì hết cơ mà có dấu  = ở sau
  • ờ chắc nó  là dạng Base
Chữ hoa, thường, số đều có
  • Chắc nó là base64, k phải thì có chuyện lớn
https://www.base64decode.org/
decode và ta thấy flag
  • PTITCTF{W3lc0me_t0_th3_c0nt3st!}


Nhấp vào liên kết, ta thấy hiện ra 1 dãy kí tự
  • Lúc đầu nhìn thì gợi lại kỉ niệm 1 thời học word hồi cấp 1 2 , nhìn là biết nó là wingding r
  • -> vậy chỉ cần tìm chương trình decoder thích hợp thôi
  • 1 trong các cách gặp các bài có kí tự lạ mà mình k biết thì mình thử lấy vài chữ của kí tự đó thử xem google-sama có biết k


Bỏ các chữ vào và decrypt
  • Flag:  Ptitctf{it's_s0_b3aut1ful}


  1. Chall 4: RSA
Đề cho các dữ liệu sau
e= 65537
n= 2260138526203405784941654048610197513508038915719776718321197768109445641817966676608593121306582577250631562886676970448070001811149711863002112487928199487482066070131066586646083327982803560379205391980139946496955261
c= 1190076432946260292446251786751135913577524240115678048500184718301012462674542162445917960888459694937484722822640250823473182669407139153108775643850621363387802597981024304901707557297057008985358738557419580348087178

Thì với các bài RSA , thì ta hiểu chỉ cần tìm được p và q là ta sẽ ra được cả bài toán , đơn giản như thế này
N = p * q ( p và q là 2 số nguyên tố  , N là Modulus  )
Phi = (p-1)*(q-1)
e * d = 1 mod phi  ( e là public exponent , d là private exponent )
messege  m được mã hóa với công thức :    c = pow ( m ,e,n )  ( python )
 c = pow (m,e) % n ( C , C++ )  
cipher c sau khi được mã hóa có thể giải mã với công thức :
m  = pow ( c , d , n )  ( python)
m  = pow ( c , d , n )  ( C / C++ )

Các có thể thấy, vậy để tìm được m , ta phải có được d -> d lại phải được tính từ e và phi -> phi được tính từ p và q -> ta phải tìm p và q
Với dạng này thì đầu tiên ta thử phân tích p và q từ N ở trang: https://factordb.com/

Ok, rất may mắn ta đã tìm được p và q, vậy giờ chỉ việc viết code tính thôi
Đây là code cơ bản mình viết để tính bài này, các bạn có thể dùng tool ( RSAtool trên github ) hoặc dùng Sage để tính toán cho nhanh
Code cơ bản:  http://codepad.org/DZ51nuRO
Bỏ số vào và tính toán thôi
Kết quả ta thu được ở dạng Byte, ta sẽ vào trang kt.pe
Sau đó bỏ kết quả trên vào ô INT -> flag
  • Flag: PTITCTF{y0u_g0t_30k$}
  1. Chall 5: RSA
e = 346212475617243866807461915463721635408871486562107234332058318579828613409281829205858006939395711461002421710735461208268554499279634642221320872425912644864411916978364420246136520459669870175939664100272157875103673860664599837604671833354475144450987961082745676884868757849168526944908914721476647560971
n = 845781099959268228573776977516537302347357989297529345281054506849063202139271113620560572421493429762469780081422747448883518194180570054650564181057910196426073905525061428846185229596244625365344787898121519558364706984706069896851968091202189760953011949550701648796197565351087827455830737563498225079943
c = 524683966989123152928435411046934707659159273989764189874979780420966042799438255125089710044948401296286322137468817832890173329469008066366428976935819513315609552458676900461841635602982450424134700053136700938324434213960895398655651671789257039494104683189863882457655078145131916745860354884423640981321


Các bạn có thể thấy thì lần này số e rất lớn -> sử dụng phương pháp Weiner Attack để “tấn công”
Các bạn có thể tìm hiểu tại đây:


Ta sẽ sử dụng code có sẵn ở :


Mình sẽ thực thi ở file RSAwienerHacker.py
Để tiện hơn khỏi truyền đối số mình tự để sẵn các ô để mốt copy paste cho nhanh
Đem số vào thay thôi ☺
Và dĩ nhiên kết quả vẫn sẽ ra ở dạng byte
  • Đem vô kt.pe bỏ số vào ô INT -> flag




  • Flag:  PTITCTF{Wi3n3r_Attack_RSA}


  1. Chall 6 :
nc 203.162.88.114 55668
file crypto1



Sau khi đọc code, bạn để ý đầu tiên là
Random.seed()
Cái này có chức năng giữ nguyên các giá trị random ở các lần sau
Để hiểu rõ hơn các bạn có thể tìm hiểu với anh google-sama hoặc tại trang này
ok nhìn theo thuật toán
res = ''.join(['1' if (s[x] == flag[x]) else '0' for x in range(0,len(s))])
print res


Khúc này là so sánh sau khi flag đã bị biến đổi, nếu kì tự bạn nhập trùng với flag thì sẽ trả về giá trị 1 , còn không thì là 0
Thì giờ các bạn có thể viết code để test, còn k thì dùng tay mò như mình ( bị a Khuyến mắng suốt vụ này T_T )
Cơ mà ta có thể rút ngắn số lần thử đi với các từ chắc chắn có là PTITCTF{ } -> chắc chắn số kì tự của flag phải hơn 9 , và mình thử nhập lần lượt và tới khi a*26 thì chương trình trả về chuối
00001000000001000000000000
Các bạn tưởng tượng flag sẽ thế này
Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
00001000000001000000000000
  • Tại các điểm số 1 là tại đó đúng kí tự
Ta tìm được
Xxxxaxxxxxxxxxxaxxxxxxxxxxxxxx
Tiếp tục thử P trong PTITCTF{ }


00000000000000000100000000
XxxxaxxxxxxxxxxaxxxPxxxxxxxxxx


Và cứ thế lần lượt, ta hoàn thiện được flag là
TT4{aD0FBR_3CaInmPyT_}s3kr


Và dĩ nhiên flag này đã qua biến đổi của random.seed
Mà random.seed -> sẽ có thứ tự nhất định chứ k random bừa, quan trọng ta có tìm đúng seed hay không thôi, và ta để ý
seed = hash(flag) % len(flag)
mà len(flag) = 26 -> seed chỉ có giá trị từ 0 -> 25
  • Ta có thể viết code để tìm với flag thử là : PTITCTF{abcdefghjklmnopqr}
  • Hoặc  thử với từng seed thì ta phát hiện ở seed 16  sẽ ra dạng
PTITCTF{acdefghjklmnopqr}
TTh{dklFagnoCpIjmPrTf}qceb
Nhìn thế chỗ thôi là xong :v
TT4{aD0FBR_3CaInmPyT_}s3kr’
  • Flag: PTITCTF{Br3ak_R4nD0m_3asy}


Đây là code đỡ tự mò :v


Forensic 100: em dnif
File: ihih
đầu tiên ta để ý tên đề và tên file ( rất quan trọng ở các bài Forensic )
Ta thấy đề và file nó bị ngược: em dnif -> find me
Ihih -> hihi
  • Nghi vấn ở đây
Ta tải file về và kiểm tra xem nó là file gì với lệnh file ihih
Nó là file data, ok chạy với gì đây ? k phải stenography rồi  , thôi strings thử xem có giấu không
Strings k ra gì cả ??????????????????????????????????
Vấn đề lớn đây thử kiểm tra với hexdump  để xem structure file thế nào
Hmm , k thấy gì cả , toàn các từ vô nghĩa,  cơ mà khoan đã 00 41 40 30 b4 05 nhìn quen lắm
Đổi ngược lại thì ta thấy là 50 b4 30 04 14 00 ….. chẳng phải là signature của file Zip sao?
  • Theo đề các từ nó bị ngược -> bit cũng vậy -> giờ ta đảo ngược bit lại là xong
Mình sẽ dùng HxD là 1 phần mềm hex editor để tiến hành ghép lại , để làm nhanh thì các bạn đổi đuôi file thành .pcap
Sau đó mở file lên, và chọn vào phần copy , chọn as hex dump


Sau đó copy vào notepad, chỉnh sửa vị trí và xóa các bit vị trí , rồi bỏ kt.pe reverse lại


Rồi mở HxD , paste chuỗi vừa dịch ngược vào




Sau đó lưu tạo  file và lấy flag nhớ đổi sang .txt nếu ai đang xài win


=)) tới flag rồi con troll được, ai submit k được thì nhó đổi cái flag lại
  • Flag: PTITCTF{r3v3rs3_fUn}


For275: #MEM
https://drive.google.com/open?id=0BxN2bSV6rMBlazUzcmtwdzBZdkU
Hint: Capture The Flag
Thì với các bài dạng memdump này, nó khá khó -_- nên khi làm mình nghĩ nó sẽ ra dạng cao cao khó , tìm nhiều chỗ mới ra, cái này tốn cũng khoảng 3 4 tiếng ngắm đề + thử tùm lum lệnh
Cơ mà sau khi cái hint ra thì mình thử tìm kiếm với các từ khóa kiểu “Flag”
Strings for.raw | grep –I flag
Các bạn sẽ thấy nó chạy rất ghê rất feel :v


Rồi khi chạy xong bạ sẽ để ý thấy 44r3ens1c.php -> đúng hướng rồi, giờ thử tìm xem nó ở đâu
Sau 1 hồi trace lên trên tìm nguồn thì mình nhận ra không có gì cả
Người ra đề cũng không chèn vào domain ptit được cái file php đó
-> mình nghĩ đến trang web đang tham gia http://130.211.247.211
Mình thử thêm   http://130.211.247.211/44r3ens1c.php và truy cập -> fail
Để ý kĩ lại , r3ens1c là thấy bậy r :v tìm kĩ lại chút  ta thấy nó là 44r3ens1c.php
Ok đúng hướng rồi, nhấp vào ta được direct tới pastebin




Mã hex -> copy paste vào kt.pe bỏ vô ô  Bin coi nó ra gì k :v
  • Flag: PTITCTF{b1n_1s_xh1t}


Misc: xn--80akjxiuh7aw
Hmm, bài này nhìn k ra gì hết nhỉ , xong mình tình cờ phát hiện ra trang này khi thử search decode với Uu , thì để ý trong các loại ngôn ngữ thì có IDN nó trả về 1 đoạn ngôn ngữ tiếng Nga
☺ và tiết mục hài nhất, mình thử  engsub nó với anh gồ sama
  • Flag: PTITCTF{Areyoufish}



Tải về ta được 1 file cucku.mp4 nghe rất “HIGH” giống cái tựa là Hi
Dạng này lần tiền gặp -_- nên ta nói rất là ngu người mặc dù xài đúng tool check là ffmpeg
Và cứ thế cay bài này, chờ đến hết giờ thi để hỏi anh ra đề quyết làm cho ra, và ảnh quăng cho cái hint là tool: https://mediaarea.net/en/MediaInfo


Theo ta nhìn tháy thì nó có 1 Video Steam nhưng lại tới 2 luồng Audio Stream


  • 1 luồng là luồng “cúc ku” “chip chip” mà ta nghe , luồng còn lại là ở đâu????
  • Để xác định luồng bằng cách extract nó ra mình sử dụng ffmpeg
Câu lệnh: ffmpeg –I cucku.mp4 –c copy –map 0:2 output.mp3
Vì sao mình dùng câu lệnh đó, giờ ta sẽ check luồng nó với lệnh ffmpeg –I cuckoo.exe
Các bạn có thể thấy luồng 2 có dạng mp3 và ở stream #0:2 nên mình sẽ dùng –map 0:2
ffmpeg –i cucku.mp4 –c copy –map 0:2 output.mp3
Các bạn thấy ta đã giải nén ra được, và khi nghe thử, nó là 1 đoạn âm thanh chạy rất nhanh.
Vậy ta sẽ sử dụng Audacity để phân tích: http://www.audacityteam.org/download/
Mình sẽ giảm ở tốc độ để nghe, và mình nghe ở tốc độ 0.43
Bạn sẽ lần lượt nghe là:
Siara Oscar Uniform November Delta Zulu Lamp India Kilo Echo Mike India Lamp India  Tango Alpha Romeo Yankee Zulu ( Mình nghe hơi tệ xíu -_- )
Thường dạng này nghe lần đầu 1 nùi từ thế này, thì biết ngay 96,69% là ghép các chữ cái đầu lại rồi -> ghép lại ta được : SOUNDZLIKEZMILITARYZ
  • Flag đây r, submit thôi kkkkkkkk
  • Fail !!!!!!!!!!!! Not so fast =))  , lowercase nữa nha
  • Flag : PTITCTF{soundzlikemilitaryz}





PTITCTF Final round :
Vòng này thì mình k được tham gia vì k bay ra ngoài Bắc thi vòng chung kết được :v



FORENSIC

  1. Basic ( 75 )

C:\Users\koman\Downloads\magic.jpg
Căn bản -> ok strings thử nào
Chuỗi KBKESVCDKRDHW43UOJUW4Z3TL5ZHK3DFL52GQZK7O5XXE3DEPU
Ok Base32 chứ gì nữa, test k phải thì là cả 1 vấn đề lớn =))
Flag : PTITCTF{strings_rule_the_world}

Chall 2: Introduce
( sau này ai mở lại mà k vào được or link die là do mấy ổng tắt server rồi nha :v )
Mở file word, thấy 1 ô pass ******* và 1 tấm ảnh lỗi
  • Sao ảnh lỗi???? hay nó k phải là ảnh
  • Thôi kệ nó đi extract all ra với binwalk rồi tính gì tính
Ok, nghi cái ảnh mà, vào cái vừa extract tìm mục media ( nơi chứa mấy cái ảnh trong word) ở /word/media/ tên file :v  xong strings thử xem có gì trong đó :v

Okay, flag: PTITCTF{tr01`_d4t'_dung_h0a_v4n_v4^t._s1nh_s0^1}

Chall 3: Lul
Mở file và check thì ta để ý nó có rất nhiều kiểu FTP -> check thử với lệnh FTP nào
Để ý ở No 40, có RETR mess.7z -> ok bắt đầu từ đây -> Tìm file 7z này nào -> search thử ftp-data

Ta thấy 1 loạt 20 gói FTP từ 216.2.199.6 gửi dến 192.168.1.56
  • Ok chọn 1 gói và nhấp follow TCP, ta sẽ ra được đoạn giao tiếp của nó
  • Đầu file 7z ở đầu kìa, nó chứ đâu nữa
  • Cẩn thận hơn kiểm tra lại thông tin giao tiếp ( trên chữ find ấy ) ta thấy 216 gửi đến 192 27kb còn 192 tới 216 là 0kb
  • Chọn save as -> lưu tên file là mess.7z :v rồi mở lên check thôi
Đem zô Ubuntu check thì thấy 9d48 là dạng image -> mà lại k hiện hình, rồi y chang bài 2
Strings check ngay và luôn



Ok đây rồi -> flag: PTITCTF{m3rg3_@nd_$ort}
For kì này dễ hơn kì thi trước haha :v
Misc

File: ctf.jpg
Thì ta nhận được bức ảnh thế này
C:\Users\koman\Downloads\ctf (1).jpg
:v thấy nó lạ nhỉ , mà lạ thì sao, strings cái tính gì tính

Hmm, 1 dãy các số , nhìn thì chắc chắn k phải bỏ dấu phẩy rồi ghép chữ lại rồi
Hay là nó chỉ vị trí ta??????
Mình bỏ nó vô HxD check thử xem tại vị trí thứ 24 là chữ gì

Wth -_- chữ gì thế này, ơ mà kế bên nó là chữ P -> okay có vẻ đúng đúng cũng logic, vì nó ở vị trí thứ 24 mà bit bắt đầu từ 0 -> 24 là vị trí thứ 25 là chữ P chứ gì nữa, ok ngon ăn rồi, code thôi

Code của mình : http://codepad.org/ud9uTIKF
Flag: P T I T C T F { 1 s _ t h 1 s _ S t 3 g a n 0 ? }   ( bỏ vô notepad replace ‘ ‘ thành ‘’ ra flag, lười làm quá :v )

Crypto

Chall0 :  01010000010101000100100101010100010000110101010001000110011110110011011100110101010111110101000000110000011010010110111001110100010111110110011001101111011100100101111100110001010111110110100000110000011101010111001001111101


Hmm, khó quá bỏ vô kt.pe submit cho nhanh

Flag: PTITCTF{75_P0int_for_1_h0ur}

Chall1: 223b30352f262902201e41302051192d2948131f06303b0d5c420b04
Chuỗi hex, hint repeating xor
Ok
a^b = c   b^c = a a^c = b
hex có 56 kí tự -> flag 23 kí tự ( 1 kí tự asci biểu diễn sang hex thành 2 số , ví dụ A = 65 )
vậy xor thử PTITCTF nào :v
đặc điểm của repeating xor là 2 thằng xor phải có cùng độ dài, mình sẽ xài trang xor.pw để xor, vậy nên PTITCTF có 7 kí tự mình sẽ xor với 14 kí tự đầu của cipher text để tìm ra key
Ok, royalro , tiếng anh thì có royal thôi chứ sao royalro , vậy nên mình nghĩ ro là cái lặp lại thôi, ok ra flag nào, xor với ‘royal’*5 + ‘roy’

-_- thấy mom rồi, sai sai cái dòng đầu, ủa mà, cái dòng sau k sai thôi kệ đi cho thì mình lấy :v
Flag: PTITCTF{Ar3_Y0u_F1rst_Bl00d}

Chall3: GQBJVAUvRntUAmMxDVo1OVhROWICADM4CgE4MVVTMDBWVzQ1Alc0MwBNMH2A0jCw0lKwYlKAYjA=

Hmm nhìn cái code đã nào
Ok ngu người !!!!! block là gì vậy ?? ai biết, ok cái gì không biết thì ta mò, mò không được thì ta hỏi bạn !!!
Sau 1 hồi rắc thính lung tung cũng được thông não
Số Block là số 32 bit -> ta chuyển sang hệ nhị phân cho dễ hình dung
Ok 16 bit đầu là a , 16 bit sau là b
Block ^ block << 16 -> sẽ phép xor với 16 bit đầu a được giữ nguyên, và b = a^b
  • Số sau khi xor là  ac trong đó c = a^b
  • Phục hồi thì mình để y chang block ^ block << 16 là xong
Ok sửa code thôi
Code:

import struct
import base64

data = "GQBJVAUvRntUAmMxDVo1OVhROWICADM4CgE4MVVTMDBWVzQ1Alc0MwBNMH2A0jCw0lKwYlKAYjA="
data = base64.b64decode(data)
print len(data)
res = []
blocks = struct.unpack('L' * (len(data) / 4), data)
for block in blocks:
   res += [block ^ block >> 16]

output = ''
for block in res:
   output += struct.pack('L', block)

print output

Flag: PTITCTF{73c18c59a39b18382081ec00bb456d43000}


When the sun rise:   14940330701494068470149406480014940684601494033070149403246114940690611494064811149403301014940288111494028801149403307114940330111494064870149406480014940684601494033061149403246114940690611494068460149403301014940288111494028800149406840114940324711494068470149403306014940684011494029461149402887014940690011494069061

Ok, với bài vừa nhìn vô thấy 1 đóng 149 gì đấy, nên tìm ngay các cái dữ kiện liên quan, mà sực nhớ bữa làm CodeWar có bài isbn nên nghĩ nó là code isbn :v check code thì đúng ngay isbn10 hí hửng code code code mò mò mò -> Fail
hint : WHEN the sunrise + Tick tock
ok Timestamp khỏi suy nghĩ
Mình tìm được trang https://www.epochconverter.com/
Bỏ số vô check từng 10 số 1, và để ý là thời gian ( giờ phút giây của nó chỉ toàn những số 1 0 , có vài cái ra số 12 thì bạn nên xem lại nó xét ở giờ hệ 24 hay hệ 12 )

Ok 2 cách làm, 1 là code
2 là để hết đống code vào notepad, xong replace từng bé, rồi replace 1 lần nữa bỏ dấu : là xong :v  =))) ( thanh niên dốt code thích mò )




Code ( Hack máy tính của Bụi Đường lấy về ) :  http://codepad.org/UlSxS9ZR

Flag: PTITCTF{h4y_ch0_nh4u_th01_g14n}

Nhận xét

Bài đăng phổ biến từ blog này

CSAW 2017 Write up

Write up - SHACTF 2017 ( 2For100 + Cryp100 + Network100 + Crypt200)

WhiteHat Challenge 04 Write up ( Misc + 2Cryp + For )