2021-09-09 · 2분
バッファオーバーフロー(BOF)
バッファオーバーフロー脆弱性の入門:それが何か、HackCTF #1 の fgets(s, 45, ...) がサイズ 40 のバッファへの入力で s[40] を超えて v5 を制御する仕組み、そして境界のない scanf("%s") で SFP と戻りアドレスを上書きできること。
2021-06-06 · 1분
この記事は公開から2年以上経過しています。
この LOS(Lord Of SQLInjection)は SQLInjection を実習できる Web ハッキング実習サイトです。
SQL Injection については [ハッキング/Web ハッキング] - SQL Injection この記事を読んでください〜ㅎ
[ハッキング/Web ハッキング] - [LOS] #1 gremlin write up <- 1 番の問題

1〜6 行目までは前の #1 の内容と同じなので飛ばします。
$query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')";
#1 から変わったクエリ文です。pw に md5 というものが追加されたのが全部のようです。核心はここではなく 10〜11 行目です。
if($result['id'] == 'admin') solve("cobolt");
elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>";
さて前と変わった点は、result['id'] 値が 'admin' にならないと解けないようです。ただ #1 のように解くと下の elseif 文が作動するようです。確認してみましょうか?#1 と同じように ' or 1=1 %23 を id 値に入れてみます。

予想どおり elseif 文が作動するのが確認できます。ではどうすればよいでしょうか?
とても簡単です、id 値だけ admin にすればよいのです!id=admin' %23 のように入力すると id 値が admin に変わり、後ろに # を入力して後ろをコメント処理しました。

こうして解決しました!!2 番の問題、お疲れさまでした。
原文(韓国語): tistory — 2021-06-06 公開、当ブログへ移行。この翻訳は AI の協力で作成されました。
…