1月26日(月)3コマ目

今日、やったこと

[確認テスト 解説]バッファオーバーフロー

XSS検証用サイト作成

今日のホワイトボード

[確認テスト 解説]バッファオーバーフロー

設問1

配列buffの先頭アドレスはデバッガで、

①配列buff宣言後にブレークポイントセット
②実行
③ブレークポイントで停止したら、xコマンドで確認

でわかる。 

図 配列buffの先頭アドレス


設問2

getgenre()関数からのリターンアドレスは、getgenre()呼び出しのあたりのアセンブラを確認するとわかる。

図 getgenre()呼び出しあたりのアセンブラ


配列buffはアドレス0x7f・・0番地から始まっていない点に注意!!

デバッガで確認すると、以下のように、左端は0番地ではない。

図 デバッガで確認すると

解答欄は左端が0番地、右端がf番地になるように解答してほしい。

図 正解のメモリマップ

ここを間違って解答している方が多かった。


設問3

”総記”や”哲学”の表示(prinf()呼び出し)がメモリ上のどこにロードされているかは、disasコマンドでアセンブラにして確認。

図 printf()呼び出し部分

同じ処理を行っているため、アセンブラも同じ。12バイトごとにprintf()呼び出しがある。

設問4

設問2のメモリマップから、配列buffの先頭から13バイト目にリターンアドレスがあることが分かる。
このプログラムはコマンドライン引数の”,”以降を配列buffにコピー。
ここにバッファオーバーフローの脆弱性がある。
図 デバッガで実行すると

コマンドラインからでも実行できる。
図 コマンドラインから実行

設問5

デバッガで、getgenre()関数をアセンブラにして確認。
図 最初の命令
図 最後の命令


XSS検証用サイト作成

前回のつづき。

[ビュー]index.html

静的なHTMLとはことなり、Thymeleafを使ったテンプレート。
テンプレート置き場は、静的なHTML(src/main/static)と異なり、src/main/resources/templages以下。
図 テンプレートファイル置き場


ソースコードは以下のとおり。

タグに、th:xxx属性をうめこむことで、動的に変化する。


実行(表示)すると、以下のとおり。
図 実行(表示)すると

次回は

つづき作成。




コメント

このブログの人気の投稿

1月13日(火)3コマ目

2月2日(月)4コマ目

2月10日(火)3コマ目