【Beginners’ SQLi】「ステージ6」の攻略方法とは?!わかりやすく解説!

Technology
スポンサーリンク

みなさんこんにちは!おさかなです!

今回は「Beginners’ SQLi」について、書いていこうと思います!

それでは、レッツゴー!!!!!

想定読者
・SQLの学習をしたい方
・CTFの問題を解きたい方
・SQLを活用したい方

残り3ステージ!

おさかな
おさかな

クリアまで残り3ステージだ!!!

ナビまる
ナビまる

ちょっとずつ難易度が上がるけど、焦らずね💦

おさかな
おさかな

よーしっ!

【個人情報】あなたのメールアドレスは大丈夫?【i have been pwnd】で漏洩しているかどうかをチェックしよう!
みなさんこんにちは!おさかなです!今回は「i have been pwnd」について、書いていこうと思います!それでは、レッツゴー!!!!!想定読者・個人情報が漏洩していないかどうかをチェックしたい方・メールアドレ...

事前準備

「Beginners’ SQLi」って何?という方、アカウントの作成がまだの方は、こちら!

【Beginners' SQLi】ステージ1の「攻略方法」をわかりやすく解説!
みなさんこんにちは!おさかなです!今回は「Beginners' SQLi」について、書いていこうと思います!それでは、レッツゴー!!!!!想定読者・SQLの学習をしたい方・CTFの問題を解きたい方・SQLを活用した...

ステージ5の解き方はこちら!

【Beginners' SQLi】「ステージ5」の攻略方法とは?!わかりやすく解説!
みなさんこんにちは!おさかなです!今回は「Beginners' SQLi」について、書いていこうと思います!それでは、レッツゴー!!!!!想定読者・SQLの学習をしたい方・CTFの問題を解きたい方・SQLを活用した...

※実際のハッキング行為はお止めください。当ブログは一切責任を負いません。

ステージ6を解いてみよう!

問題のチェック

それでは早速サイトにアクセスします!
今回は「ステージ6」の解き方について、わかりやすく解説していきたいと思います!

こんな感じの問題です!
「Guess the query(クエリを推測する)」というタイトルで、「Just a typical injection.(典型的なインジェクション)」とあります。

リンクを開いてみると、こんな感じです!


I saw ‘wasedataro’ logged in into this page!
Do I need a password…?

このページに「wasedataro」がログインしているのを見ました!
パスワードが必要ですか…?

とあり、ログインページのようなものが表示されています。(ふむふむ…。)

とりあえずユーザー名は「wasedataro」だということがわかりますが、パスワードはわからない状態です。

「SQLインジェクション」とは?

今回は「SQLインジェクション」という攻撃手法を行って、ログインを試みてみます!

SQLインジェクションとは、データベースと連動したWebアプリケーションなどに対する攻撃手法の一つで、検索文字列など外部から指定するパラメータの一部にSQL文の断片などを混入させ不正な操作を行うもの。また、そのような攻撃を可能にする脆弱性。 “injection” は「注入」の意。

IT用語辞典より引用

↓問題を解く上で、下記サイトもヒントになります✨

SQLインジェクションについて - Qiita
KIT Advent Calendar17日目です。みなさん初めまして。Qiitaすら初めましてです。@306_sanから枠をいただきました。 Webのセキュリティについて書こうと思ったのですが、範囲が広すぎるので今回はSQLインジ...
動画URLを入れるだけ!AIが自動で【マッシュアップ】曲を作成してくれる【Rave DJ】とは?
みなさんこんにちは!おさかなです!今回は「Rave DJ」について、書いていこうと思います!それでは、レッツゴー!!!!!想定読者・自動でマッシュアップを作成したい方・マッシュアップに興味のある方・AIサービスで遊...

ログインを試みよう!

それでは実際にSQLインジェクションのコードを書いていきましょう!
(と言ってもコード自体はすごくシンプル…!)

1' or '1' = '1';--

パスワードの欄に上記のコードを入れることで、処理を行う際のSQL文がこのようになります。
すると、‘1’ か ‘1’ が ‘1’なら真という条件式が出来てしまうので、パスワードがわからない状態でも、ログインが可能になってしまいます💦

SELECT user_id,password FROM users WHERE user_id='1' or '1' = '1'-- AND password='$password';

条件式については、こちらも参考になります!

条件式とは - IT用語辞典
条件式【conditional expression】とは、プログラミング言語などで用いられる式の種類の一つで、値や式の比較や論理演算を組み合わせたもの。計算結果は真(true)または偽(false)となり、プログラムの分岐条件の記述などに用いられる。

末尾の「」は以降のSQL文をコメントアウトするために使用します。(ふむふむ…。)

1' or '1' = '1';--

コードを実行してみると…?こんな感じでログインすることができました!(わーい!)

ちなみに条件式が正しければ「1」でなくても良くて、「4」とか「33」、空文字でもログインが可能です。(これでもOK!)

' or '' = '';--

何なら!ユーザー名の「wasedataro」がわからなくても、実はSQLインジェクションだけでログインが可能です!(なんだってー?!)

(もうちょっと…🍹)

FLAGを回答しよう!

FLAG「m1z0r3{sh0lder_h4ck1ng_1s_gu1lty}」とあるので、回答ページで入力してみると…?


無事にクリアできました!!(おめでとう🎉)

おさかな
おさかな

全クリ目指して、がんばろう~🚩

これで全ての操作は完了です。(やった~!)
お疲れ様でした☕

【独学にも!】プログラミングから、ビジネスまで学べる学習サイト【Udemy】を始めてみよう!
みなさんこんにちは!おさかなです!今回は「Udemy」について、書いていこうと思います!それでは、レッツゴー!!!!!想定読者・テクノロジーやビジネスに関する知識を学びたい方・より「プログラミング」の知識を深めたい...

ここまで読んでくださり、ありがとうございました!

おさかな

文章が書けちゃう、新種のおさかなです。

元不登校。引っ越し以外の理由で3回も転校したのに、結局中卒。
現在はマイペースに「プログラム」書いたり、「作曲」したり「文章」書いたり色々してます。
SAOのユウキが好きです!

おさかなをフォローする

この記事は役に立ちましたか?

タイトルとURLをコピーしました