アドバイザー白猫先生が語る、攻撃者の「論理的な考え方」とは? (episode-02)
エクスプロイト開発を学ぶうえで、最初につまずきやすいのが「どう考えればいいのか分からない」という点です。ツールの使い方やコマンドは調べれば出てきますが、攻撃者がどんな順番で、どんな視点でプログラムを見ているのかは、なかなか見えにくいものです ...
くろちゃん、エクスプロイトの世界に踏み出す (episode-01)
エクスプロイト開発とは、コンピュータの脆弱性(弱点)を理解し、その仕組みを論理的に再現して攻撃コードを作る技術です。 とはいえ「ハッキング」と聞くと難しい世界に感じてしまうかもしれません。でも大丈夫。初心者のくろちゃんと、アドバイザー白猫先 ...
ハッカー初心者にもわかるOSIモデル入門 ネットワークの「7つの仕事」
インターネットやセキュリティの本を読むと、必ずと言っていいほど出てくるのが「OSI参照モデル(OSIモデル)」ですね。しかし、多くの人にとっては「7層?アプリケーション?よく分からないカタカナの並び・・・」で終わってしまいます。この記事では ...
ハッカーが学ぶ、GOT/PLTハイジャック入門(動的リンクテーブルを書き換えて何が起きるか)
プログラムが外部のライブラリ関数(例 printf、malloc)を呼ぶとき、実際の関数のアドレスはプログラム起動直後に全て決まっているとは限りません。LinuxのELF形式では「遅延バインディング」という仕組みを使い、呼び出し時に実際のア ...
ハッカーのテクニックである、Partial Overwrite(部分上書き)入門
Partial Overwrite(パーシャル オーバーライト:部分上書き)は、バッファオーバーフローなどで、ポインタや戻り番地の下位バイトだけを意図的に変更する攻撃テクニックです。
※イメージです。
ハッカーが考慮する、Binary Flags 入門 – ビットで動く設定を安全に理解する
Binary Flags(バイナリフラグ)は、1ビットずつの「オン/オフ」でソフトウェアの設定や権限を管理するとても効率的な方法です。小さなメモリ領域で多くの状態を扱えるため組込み系や古いCプログラムでよく使われます。しかし、境界 ...
ハッカーが利用する、Off-By-One(1バイト溢れ)
Off-By-One(オフ・バイ・ワン)は、配列やバッファに対して「本来必要なバイト数より1バイトだけ多く/少なく扱ってしまう」ことで生じるバグです。 小さなミスに見えますが、メモリ上の隣接データ(フラグや戻り番地の一部)を壊したり読み出し ...
ハッカーはprintfで情報が漏れる仕組みと安全な検証方法をpwntoolsで学ぶ。Simple Format-String入門
C言語のprintfの仕組みを利用してプログラム内部の情報が外部に漏れる「フォーマット文字列(Format-String)脆弱性」と、その安全な確認方法を分かりやすく解説します。
Simple Format-String(出力リ ...ハッカーの最強のツールのひとつである「pwntools」入門
pwntoolsは、CTF(Capture The Flag)で使われるPython製の「道具箱」です。ハッカーにとって、最強のツールのひとつです。
ただし強力なツールなので、必ず自分のローカルや許可された環境で学び、他人のサ ...
ハッカーは、レジスタを読めると強くなる。GDBでCPUの中身をのぞく方法
コンピュータの中にある「CPU(中央処理装置)」は、人間で言えば頭脳のようなものですね。このCPUの中には「レジスタ」と呼ばれる、小さなメモ帳のような場所があります。このメモ帳には、今、どの命令を実行中か、どこにデータがあるかなど、プログラ ...