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

slide.pdf

m412u
August 10, 2019

 slide.pdf

m412u

August 10, 2019
Tweet

More Decks by m412u

Other Decks in Programming

Transcript

  1. 2 準備 (1/2) • Pwntools • https://github.com/arthaud/python3-pwntools より • $

    apt-get update • $ apt-get install python3 python3-dev python3-pip git • $ pip3 install --upgrade git+https://github.com/arthaud/python3- pwntools.git • gdb + peda • $ git clone https://github.com/longld/peda.git ~/peda • $ echo "source ~/peda/peda.py" >> ~/.gdbinit
  2. 3 準備 (2/2) • 問題,サンプルプログサンプルプログラムのクローンのクローンクローン • $ git clone https://github.com/m412u/classic

    • ディレクトリ構成構成 • classic • classic ・・・バイナリ構成ファイル • libc-2.23.so ・・・Cライブラリ構成 • example ・・・解答例集 • exp_step{0..5}.py ・・・演習用プログラムプログラムのクローン
  3. 4 はじめに • 目的 • Pwnを解くフローを体解くフローを体験すフローを解くフローを体体験する.する. • 題材 • SECCON

    2018 Online CTF • Classic Pwn (121 pt, 197 solves) • Pwnでよくフローを体験す用プログラムいられる手法を一度に学べるを解くフローを体一度に学べる問題に学べる問題学べる問題べる問題 • 質問等はその都度してはそのクローン都度に学べる問題してもらって大丈夫です.です.
  4. 7 動的解く流れ析 • 実行権限の付与のクローン付与 • $ chmod +x classic •

    動作させてみるさせてみ立てる • 標準入力から入力を受けから入力から入力を受けを解くフローを体受け付けて終了.け付けて終了.付け付けて終了.て終了.
  5. 9 ディスアセンブリしてみるしてみる • IDA, radare2, objdump… • 大まかな処理をつかむ.処理の奪取を解くフローを体つかむ. • 使用プログラムされている関数

    • 分岐処理の奪取な処理をつかむ.どな処理をつかむ.ど... • 気になった点が重に学べる問題な処理をつかむ.った点が重要.点が重要.が重要.重要.
  6. 15 libc とは? (1/3) • よくフローを体験す利用プログラムされるC言語の関数が集めらのクローン関数が重要.集められた点が重要.ものクローン. • printf, fgets, read,

    write, system... • プログラムのクローン実行時にメモリへマッに学べる問題メモリ構成へマッピングされマッピングされる.
  7. 23 ROP(1/2) • x64で関数が重要.呼び出す度に計算び出す度に計算す出す度に計算すされる場合,サンプルプログ引数は決められた点が重要.レジ スタを入力してみるに学べる問題格納される.される. • 第1引数・・・rdi • 第2引数・・・rsi •

    第3引数・・・rdx • 引数に学べる問題渡したいデータをした点が重要.いデータを入力してみるを解くフローを体レジスタを入力してみるに学べる問題値を解くフローを体格納される.しな処理をつかむ.け付けて終了.れば な処理をつかむ.らな処理をつかむ.い. → gadgetと呼び出す度に計算ばれるコードのクローン断片を使用する.を解くフローを体使用プログラムする.