Upgrade to Pro — share decks privately, control downloads, hide ads and more …

誘導を読み取って1ステップ上の問題を解けるようになろう/Tips for Solving CTF with Reading Leads

task4233
October 17, 2021

誘導を読み取って1ステップ上の問題を解けるようになろう/Tips for Solving CTF with Reading Leads

教科書的なBeginner問題は解けるが、少しひねられたBeginner~Medium問が解けない方に対して、問題に散りばめられた誘導から方針決定できるようになってもらうことが目的です。 実際にBeginners CTF 2021で出題された問題から一部抜粋して例を提示します。

task4233

October 17, 2021
Tweet

More Decks by task4233

Other Decks in Technology

Transcript

  1. Beginners CTF 2021で出題された問題のジャンル ※ForensicsやNetworkなど、他のジャンルも存在する 10 ジャンル名 求められていること Reversing バイナリを解析する Pwnable

    プログラムの脆弱性をつく Crypto 暗号を解読する Web Webアプリケーションに関する脆弱性 Misc 何でも(他のジャンルに該当しないもの)
  2. 実例1: [Reversing] only_read ジャンル: Reversing => バイナリ解析しそう? 問題名: only_read =>

    読むだけで解けるのかな? 問題文: バイナリ読めなきゃやばいなり〜 => バイナリの処理の流れを読めると解けそう? →バイナリの制御フローを確認する 12
  3. 実例2: [Pwnable] beginners_rop ジャンル: Pwnable => 何らかの脆弱性を突きそう? 問題名:beginners_rop => 初心者向けのrop?

    問題文:(略) Did you know Return Oriented Programming? => Return Oriented Programmingがキーワードっぽい? →Return Oriented Programmingについて調べる 13
  4. 実例3: [Reversing] be_angry ジャンル: Reversing => バイナリ解析しそう? 問題名: be_angry =>

    angrを示唆している? →(知らないと分からないが)angrを使う 14
  5. 配布ファイルの表層から得られる情報 メタ情報やファイルの種類から得られる情報 使えるコマンド例 16 コマンド名 概要 file ファイルの内容からファイル形式を出力する readelf ELFファイルの情報を出力する

    strings ファイル中の表示可能な文字列を出力する binwalk ファイル内に埋め込まれたファイルの情報を出力する exiftool メタ情報の読み取りと書き込みを行う checksec ファイルのセキュリティ機構の状態を出力する
  6. 実例: [Reversing] firmware $ file firmware.bin firmware.bin: data $ binwalk

    firmware.bin DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 1682 0x692 Copyright string: "Copyright 2011-2021 The Bootstrap Authors" 1727 0x6BF Copyright string: "Copyright 2011-2021 Twitter, Inc." 82842 0x1439A ELF, 32-bit LSB shared object, ARM, version 1 (SYSV) 93155 0x16BE3 Unix path: /usr/lib/gcc/arm-linux-gnueabihf/9/../../../arm-linux-gnueabihf/Scrt1.o (略) 18