みなさんこんにちは!おさかなです!
今回は「Beginners’ SQLi」について、書いていこうと思います!
それでは、レッツゴー!!!!!
・SQLの学習をしたい方
・CTFの問題を解きたい方
・SQLを活用したい方
後半問題!
![おさかな](https://osakanav.com/wp-content/uploads/2019/08/osakana.jpg)
SQL問題、だんだん難しくなってきたな…。
![ナビまる](https://osakanav.com/wp-content/uploads/2019/09/navmaru-2.jpg)
1つ1つ丁寧にやっていけば大丈夫だよ!
![おさかな](https://osakanav.com/wp-content/uploads/2019/08/osakana.jpg)
ありがとう~ナビまる~✨
![](https://osakanav.com/wp-content/uploads/2021/06/switch-game-pg-top-160x90.jpg)
事前準備
「Beginners’ SQLi」って何?という方、アカウントの作成がまだの方は、こちら!
![](https://osakanav.com/wp-content/uploads/2021/05/beginners-sql-top-160x90.jpg)
ステージ4の解き方はこちら!
![](https://osakanav.com/wp-content/uploads/2021/06/bg-sql-stage4-top-160x90.jpg)
※実際のハッキング行為はお止めください。当ブログは一切責任を負いません。
ステージ5を解いてみよう!
問題のチェック
それでは早速サイトにアクセスします!
今回は「ステージ5」の解き方について、わかりやすく解説していきたいと思います!
![](https://osakanav.com/wp-content/uploads/2021/05/biginners-sql-stage-1024x554.png)
こんな感じの問題です!
「Injection Introduction」というタイトルで、「I’m not about to buy fruits!(私は果物を買うつもりはありません!)」とあります。
![](https://osakanav.com/wp-content/uploads/2021/06/bg-sql-injection-1024x554.png)
リンクを開いてみると、こんな感じです!
「Hahaha, I found the ‘users’ table schema!
There are ‘name’ and ‘password’ columns in it!
(「users」テーブルスキーマを見つけました!
その中には「名前」と「パスワード」の列があります!)」
とあり、入力ボックスが表示されています。(ふむふむ…。)
![](https://osakanav.com/wp-content/uploads/2021/06/bg-sql-injection-introduction-1024x554.png)
「UNION文」を使おう!
今回は入力ボックスの前に、既に「SELECT文」が記載されているのがポイントです!
通常SELECT文は、1つの文に1つまでしか使用することが出来ませんが、「UNION文」を使うことで、2つの文を繋げることができます!
![](https://osakanav.com/wp-content/uploads/cocoon-resources/blog-card-cache/a51a0f1e4500f0ad19ab18b3ee2563b9.jpg)
「usersテーブル」の中身を見るために、ボックスの外側のSELECT文と組み合わせて、結果としてこんな感じのコードを作成します。
SELECT name, price FROM product WHERE name LIKE ' ' UNION SELECT * FROM users ; -- '
SELECT文の基本構文がわからない方は、こちらの問題もチェック↓
![](https://osakanav.com/wp-content/uploads/2021/06/beginners-sql2-top-160x90.jpg)
ちなみに最後の「—」は、あらかじめ記載されており消すことができない末尾の「‘」をコメントアウトするために使用しています。(おお!)
![](https://osakanav.com/wp-content/uploads/2021/07/Inkedbgsql5-com_LI.jpg)
入力する部分はこんな感じ!(ふむふむ…。)
' UNION SELECT * FROM users ; --
コードを実行すると…?こんな感じで「usersテーブル」を表示させることができました!(わーい!)
![](https://osakanav.com/wp-content/uploads/2021/07/bgsql5-users-1024x620.png)
(もうちょっと…🍵)
別解
先ほど末尾の「’」を「–」コメントアウトする方法を取りましたが、実は別の方法で処理することもできます!(なーにー!?)
![](https://osakanav.com/wp-content/uploads/2021/07/bgsql5-2qw-1024x620.png)
末尾のシングルクオーテーションを2つにすることで、かっこを閉じることができるため、結果としてコメントアウトした時と、同じ挙動になります!(すごい!)
SELECT name, price FROM product WHERE name LIKE ' ' UNION SELECT * FROM users ''
入力する部分
' UNION SELECT * FROM users ’
どちらの方法を使用しても大丈夫ですが、解き方の引き出しを増やしておくと、今後CTF問題を解く際に便利かなと思うので、ぜひ一度試してみてください~✨
FLAGを回答しよう!
adminのとろにFLAG「m1z0r3{d0nt_f0rget_enctypt1ng_passw0rd}」とあるので、回答ページで入力してみると…?
![](https://osakanav.com/wp-content/uploads/2021/07/Inkedbgsql-admin_LI.jpg)
無事にクリアできました!!(おめでとう🎉)
![](https://osakanav.com/wp-content/uploads/2021/07/bgsql5-flag.gif)
もっと挑戦したい方は、ステージ6のログイン試行もぜひ!
![](https://osakanav.com/wp-content/uploads/2021/07/bgsql-stage6-top-160x90.jpg)
![おさかな](https://osakanav.com/wp-content/uploads/2019/08/osakana.jpg)
全クリ目指して、がんばろう~🚩
これで全ての操作は完了です。(やった~!)
お疲れ様でした☕
![](https://osakanav.com/wp-content/uploads/2021/03/seesaa-top-160x90.jpg)
ここまで読んでくださり、ありがとうございました!