BI.ZONE CTFのプロモタスクソリューション



5月31日、 BI.ZONE はCTFzone大統領選挙のニュースを発表しました。 そして、すでに6月1日に、 BI.ZONEという出版物がHabrahabrに掲載され、CTFzoneの大統領の選出が発表されました。 出版物の本文をよく見ると、「選挙で皆さんに幸運を!」という文に、QRコードを含むWebページへのリンクがあることに気付くでしょう。


QRスキャナーはメッセージを発行しました:
try_h4rd3r_try_h4rd3r_try_h4rd3r_try_h4rd3r_try_h4rd3r_try_h4rd3r_try_h4rd3r_try_h4rd3r_try_h4rd3r_try_h4rd3r

Twitterでユーザー「try_h4rd3r」を見つけるために最初に発生したこと。 2番目のハードな試みは、大きな元のQRコードをいくつかの小さなコードに分割することでした。



しかし、すべての試みは無駄でした。 promo_task.pngファイルをダウンロードし、 Hexed.it次の行を調べることました



したがって、拡張子を.7zに変更すると、32ビット7-Zipで開くことができるアーカイブが取得されます。 アーカイブの内容: zipbomb.exeは実際のZIP爆弾です。 「赤い線を切る」と拡張子を.zipに変更すると、38.1 GBの「-」ファイル(40 959 016 020バイト)を含むアーカイブが取得されます。 そのようなファイルを一度に読み取れないことはすぐに明らかでした。 部分的に読み取る単純なPythonスクリプトを作成することにしました。

 def read_in_chunks(file_object, chunk_size=1024): while True: data = file_object.read(chunk_size) if not data: break yield data 

作業の結果、ゼロを含む多くの行が作成されましたが、なかでも特別なものを見つけるのは困難でした。 次に、簡単なチェックでスクリプトが変更されました。

 def read_in_chunks(file_object, chunk_size=1024): while True: data = file_object.read(chunk_size) if not data: break yield data f = open('-') for piece in read_in_chunks(f): if piece.count("0") < 1023: print(piece) 

スクリプトの結果:


次の行が表示されます。 @ cc77af5382e431dc_bot 。最初にドライブするのは、Telegramのボット名です。 ボットの指示とタスクを取得します。


Base64エンコーディングを選択すると、デコードして以下が取得されます。



次に、結果をボットに送信し、 /solve <>/solve <> flagを取得できます。 ただし、今日は「ごめんなさい、すべてのフラグがなくなっています。

CTFzoneの大統領選挙で皆さんに幸運を!

タスクのチームワークをしてくれたtugric tammioに感謝します。 彼らがコメントであなたに答えたら-彼らは信頼できる。

Source: https://habr.com/ru/post/J332930/


All Articles