HOME»情報処理安全確保支援士掲示板»H30春 午後1 問1 設問8
投稿する

[1044] H30春 午後1 問1 設問8

 ビギナーさん(No.1) 
H30春 午後1 問1 設問8 の解答が DisplayNote() ですが、
これとRegisterName のどこに着目すれば問題文の通りASLR有効下でも共有ライブラリ内のメモリアドレスを特定できるのでしょうか?
2023.03.20 22:59
pixさん(No.2) 
SC プラチナマイスター
メンバ関数でDisplayNote()のみ、メンバ変数をprintf()で出力しています。
本来それぞれの変数には、
m_note->name:ノート名を格納したアドレス
m_note->msg:メッセージ内容格納したアドレス
が格納されています。

しかし、図3の脆弱性を悪用されることにより、以下の方法で共有ライブラリの
アドレスを特定することができる可能性があります。
1.図3の脆弱性を利用し、m_note->nameに任意のメモリのアドレスをセットする
2.DisplayNote()内のprintf()でm_note->nameが指し示すメモリの内容を表示させる
3. この操作をアドレスを特定するまで繰り返す

この問題はCやC++でポインタを使ったことがないとイメージが難しいです。
特にダングリングポインタ(参照先のないポインタ)についての知識が必要に
なります。
2023.03.21 01:00
 ビギナーさん(No.3) 
pixさん

なるほど、printfで攻撃者がメモリの内容を確認できてしまうのですね。納得しました。
分かりやすい説明ありがとうございます。
2023.03.21 10:03
返信投稿用フォーム

お名前(10文字以内)

顔アイコン


本文(2,000文字以内)

投稿削除用のパスワード(20文字以内)

投稿プレビュー
※宣伝や迷惑行為を防止するため、当サイトとIPAサイト以外のURLを含む文章の投稿は禁止されています。
※同一人物が作成できるスレッドは24時間に1つまでに制限されています。

投稿記事削除用フォーム

投稿No. パスワード 
© 2014-2023 情報処理安全確保支援士ドットコム All Rights Reserved.

Pagetop