ダンジョンを攻略しつつSQLインジェクションの脆弱性について学べるサイト「Lord of SQLInjection」
アプリケーションが想定しない文字列を実行することにより、データベースを不正に操作する攻撃はSQLインジェクションと呼ばれ、攻撃によってクレジットカード情報や住所などの重要な個人情報が流出した事例も存在します。「Lord of SQLInjection」は、そんなSQLインジェクションを駆使してダンジョンを攻略していくウェブサイトです。
Lord of SQLInjection
https://los.rubiya.kr/
まずはLord of SQLInjectionにアクセスして「[enter to the dungeon]」をクリック。
Lord of SQLInjectionを利用するのは初めてなので「Join」をクリック。
Lord of SQLInjectionで使用するID、メールアドレス、パスワードを入力して「Join」をクリックします。
先ほど登録したIDとパスワードを入力して「Login」をクリック。
敵を選択する画面が表示されました。最初の敵「gremlin」をクリックします。
ウェブサイトで実行されるSQLのクエリと、PHPコードが表示されました。PHPコードを参考にしながら、不正なSQLクエリを実行できれば敵を倒すことができます。
この問題では何か値が返ってくるようなクエリを実行すればいいので、URLに「?id=admin&pw=' or '1' = '1」を追加して実行。
「GREMLIN Clear!」と表示され、無事敵を倒すことができました。
問題を解いて敵を倒すと新しい敵に進めるようになります。
「cobolt」の問題はこんな感じ。パスワードにMD5のハッシュ値を入れる必要があるようです。
MD5のハッシュ値を入れるのもひとつの手ですが、今回は以下のようにURLに記述し、パスワード部分をコメントアウトしたクエリを実行することに。
?id=admin'%23
無事クリア。
「gremlin」や「cobolt」は不正なクエリを実行するタイプのSQLインジェクションでしたが、正しいパスワードをブラインドSQLインジェクションで解析するタイプの敵も存在します。
Lord of SQLInjectionの問題は「AllClear」も含めて合計で49問。問題がわからずつまずいても、主に韓国語の解説がネット上に豊富に存在しています。
・関連記事
無料のRPGをプレイするだけで未経験者でもプログラミングを習得可能な「コードクロニクル」でPythonをマスターしてみた - GIGAZINE
「フォートナイト」のアカウントをハッカーに盗まれてしまう脆弱性が見つかる - GIGAZINE
約10万9000件ものクレジットカード情報がエクスコムグローバルから流出、名前・番号・有効期限・セキュリティコード・住所も含むフルセット - GIGAZINE
ゲーム感覚でプログラミングを学べる小型PCキット「Kano」を使ってみました - GIGAZINE
無料でぷよぷよを通してプログラミング学習できる「ぷよぷよプログラミング」が登場したので体験してみた - GIGAZINE
・関連コンテンツ