みなさんこんにちは!おさかなです!
今回は「Beginners’ SQLi」について、書いていこうと思います!
それでは、レッツゴー!!!!!
・SQLの学習をしたい方
・CTFの問題を解きたい方
・SQLを活用したい方
折り返し地点!
Beginners’ SQLiも、いよいよ折り返し地点だ!
良いペースじゃん!おさかな!
えっへん!!
事前準備
「Beginners’ SQLi」って何?という方、アカウントの作成がまだの方は、こちら!
ステージ3の解き方はこちら!
ステージ4を解いてみよう!
問題のチェック
それでは早速サイトにアクセスします!
今回は「ステージ4」の解き方について、わかりやすく解説していきたいと思います!
こんな感じの問題です!
「Chaotic string」というタイトルで、「Someone broke the flag in pieces…(誰かが旗をバラバラに壊した…)」とあります。
リンクを開いてみると、こんな感じです!
「Obtain the original flag from ‘flag’ table.(‘flag’テーブルから元のフラグを取得します)」とあり、2つの入力ボックスが表示されています。(ふむふむ…。)
まずは、上の入力ボックスに
SELECT * FROM flag
を入力して、flagテーブルの中身を見てみましょう!
すると…?バラバラになった文字が表示されました。(どうしよう💦)
このテーブルの中身を「並べ替える」ことが出来れば、FLAGを入手することが出来そうです!
(↓下記サイトがヒントです✨)
ORDER BYで並べ替え
SQLで昇順・降順でデータをソート(並び替え)をするときは「ORDER BY」を使います!
SELECT カラム名 FROM テーブル名 ORDER BY ソートキー [ASC | DESC]
ソートキーは、
「ASC」… 昇順
「DESC」… 降順
となっており、何も指定しない場合はデフォルトで「昇順」です。(ほうほう…。)
今回の場合、昇順か降順かはわからないので、とりあえずデフォルトの「昇順」から試してみましょう!(おー!)
SELECT * FROM flag ORDER BY id
または
SELECT * FROM flag ORDER BY id ASC
上記のSQL文を入力してみると…?
並べ替えることはできましたが、逆向きになってしまっています。(うえええ~💦)
SQL文を書き換えます!
SELECT *
FROM flag
ORDER BY id DESC
降順「DESC」に修正して…実行すると…?
冒頭が「m1z0r3…」となっており、FLAGの並べ替えに成功しました!(わーい!)
しかし、このままではFLAGとして入力するのが面倒なので、ここで2つ目の入力ボックスを活用します!(おお!)
よく見ると「copy table and paste here!(テーブルをコピーしてここに貼り付けてください)」と書かれているので、その通りにします。
すると、テーブルの中身が横一列になり、FLAGを作成しやすくなりました!
回答ページに戻って、FLAG「m1z0r3{very_super_hyper_ultra_extremely_insanely_long_flag}」を入力してみると…?
無事にクリアできました!!(おめでとう🎉)
もっとレベルアップしたい方は、ステージ5にも挑戦してみてください🚩
残り4ステージにもチャレンジしてみよう!
これで全ての操作は完了です。(やった~!)
お疲れ様でした☕
ここまで読んでくださり、ありがとうございました!