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] #2 cobolt write up <- 2 番の問題

3 番の問題を見ると、前とは少し違って見えますね!
$query = "select id from prob_goblin where id='guest' and no={$_GET[no]}";
クエリ文を見ると、id 値が guest に固定されていて、ユーザーが入力する部分は no= この部分のようです。そして〜
if($result['id']) echo "<h2>Hello {$result[id]}</h2>";
if($result['id'] == 'admin') solve("goblin");
この部分が解決する部分ですが、前の問題と似ていますね?id 値が admin になれば終わりのようです!では前と同じ方法で入力してみます。
no=id=admin%20%23 のように入力したところ

このように特殊文字が検出されるようです。
if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~");
では no 値に基本的な 1 という値を入れてみましょうか?

ゲストと挨拶してくれます... 私たちは admin になりたいので別の値を入れてみます。2、3、4 を入れてみます。
!> ****](https://www.easycalculation.com/ascii-hex.php)
何も出ませんね?偽のようです!ではこう書いてみます。select id from prob_goblin where id='guest' and no=23 or id='admin' ↳ no に偽の値を入れて偽にし、or で id を admin にしました。 あっ、でも上で試したように特殊文字は塞がれています。ではどうすればよいでしょうか?そう、ASCII コードを使うのです。使ってもう一度書いてみましょうか?**select id from prob_goblin — ascii-hex.php このようなサイトで簡単に ASCII コードを得られます。
原文(韓国語): tistory — 2021-06-06 公開、当ブログへ移行。この翻訳は AI の協力で作成されました。
…