LoginSignup
3
4

More than 3 years have passed since last update.

自分用勉強メモ10日目

Posted at

tips

ブラウザでUser Agentを変更したいとき

CTFの問題を解いていて,User AgentをGooglebotに偽装したかった.
Firefoxだとアドオンを入れる必要があるらしい.
Chromeで変更する手順を見つけたので参考にした.

参考:Google ChromeでUserAgentを変更する

  1. Developer Toolsを開く (右クリックで「検証」)
  2. More ToolsからNetwork conditionsを開く
  3. select automaticallyのチェックを外す
  4. 好きなUserAgentに変える

Ubuntu19.04でvimのシンタックスハイライトが機能しなかった

Ubuntuが最小構成でインストールされていた場合,Vimも最小構成になっていた.
自分の場合はaptでVimをインストールし直したらシンタックスハイライトが使えるようになった.

# apt install vim

調べた知識

バイナリ解析で役に立つツール

pwntools

CTF用のPythonライブラリ.
pip install pwnでインストールできる.
p32という関数を使えば,数値を32bitのリトルエンディアンに変換してくれる.
例:p32(0x11223344)

checksec

実行ファイルのセキュリティ機構を表示してくれるシェルスクリプト.
以下からダウンロードできる.
slimm609/checksec.sh

gdb-peda

gdbの拡張版.
以下からインストールできる.
longld/peda

readelf

Linuxのコマンド.
ELFの情報を表示する.

rp++

実行ファイル中のROP Gadgetを表示する.
以下からダウンロードできる.
0vercl0k/rp

ELFのセキュリティ機構

RELRO(RELocation Read-Only)

ELFのセクションを読み込み専用にする.
以下の2つがある.

  • Partial RELRO
  • Full RELRO

GCCのデフォルトではpartialになっている.
partialであればGOT上書き攻撃が可能.

カナリア

SSP(Stack Smashing Protector)というものがある.
ローカル変数とリターンアドレスの間にカナリア(canary)と呼ばれる値を設定し,関数終了時にそれが変更されているかどうかをチェックする.
これにより,スタックオーバーフローが発生していないか確認できる.

NXビット(No eXecute)

メモリをコード領域とデータ領域に分け,後者に特別なビットを付与し,実行されることを防ぐ.
WindowsではDEP(Data Execution Prevention)という.

PIE(Position-Independent Executable)

実行コード内のアドレス参照をすべて相対アドレスで行う.
これにより,実行ファイルがメモリ上のどこに展開されても正常に実行できる.

ASLRとの違い

ランダム化する部分が異なる.

  • ASLR: 共有ライブラリやスタック
  • PIE: 実行ファイル
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4