Defend the web 攻略メモ sqli1

    本かだいのSQLiはSQLインジェクションのことです。

詳細は以下のサイトで解説しております。

minegishirei.hatenablog.com

Gain access to any users account

試しに、 usernameの項目に' or 1=1 --' を入力してみる。 (パスワードはany で何でも良い)

-> うまく通った!

おそらく、裏側では以下のようなコードが動いているものだと思われる。

$name = $_GET['name'];
$password = $_GET['password'];
$query = "SELECT * FROM users WHERE name = '$name' and password = '$password' ";
mysql_query($query);

このようなコードで、usernameを入れた場合、SQLは以下のように評価される

SELECT * FROM users WHERE name = '' or 1=1 --'' and password = '$password'

ポイントは、 --を入れることでコメントアウトができるということ。 これで、いかなるパスワードもユーザーも認証を通ってしまう。

https://defendtheweb.net/playground/sqli1

page:https://minegishirei.hatenablog.com/entry/2024/08/31/182719