みなさんこんにちは!おさかなです!
今回は「Beginners’ SQLi」について、書いていこうと思います!
それでは、レッツゴー!!!!!
・SQLの学習をしたい方
・CTFの問題を解きたい方
・SQLを活用したい方
折り返し地点!

Beginners’ SQLiも、いよいよ折り返し地点だ!

良いペースじゃん!おさかな!

えっへん!!
https://osakanav.com/hex-editor-stirling-free
事前準備
「Beginners’ SQLi」って何?という方、アカウントの作成がまだの方は、こちら!
https://osakanav.com/beginners-sqli-stage1
ステージ3の解き方はこちら!
https://osakanav.com/beginners-sqli3
ステージ4を解いてみよう!
問題のチェック
それでは早速サイトにアクセスします!
今回は「ステージ4」の解き方について、わかりやすく解説していきたいと思います!

こんな感じの問題です!
「Chaotic string」というタイトルで、「Someone broke the flag in pieces…(誰かが旗をバラバラに壊した…)」とあります。

リンクを開いてみると、こんな感じです!
「Obtain the original flag from ‘flag’ table.(‘flag’テーブルから元のフラグを取得します)」とあり、2つの入力ボックスが表示されています。(ふむふむ…。)

まずは、上の入力ボックスに
SELECT * FROM flag
を入力して、flagテーブルの中身を見てみましょう!
すると…?バラバラになった文字が表示されました。(どうしよう💦)

このテーブルの中身を「並べ替える」ことが出来れば、FLAGを入手することが出来そうです!
(↓下記サイトがヒントです✨)
https://style.potepan.com/articles/26023.html
https://osakanav.com/battery-report
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にも挑戦してみてください🚩
https://osakanav.com/beginners-sqli5

残り4ステージにもチャレンジしてみよう!
これで全ての操作は完了です。(やった~!)
お疲れ様でした☕
https://osakanav.com/wordpress-quicca-plus
ここまで読んでくださり、ありがとうございました!

