2017-09-25 16 views
1

PHPでSQLインジェクションを使用してデータベース内にテーブルをドロップしようとしています。PHPマルチクエリを使用したSQLインジェクションDROP TABLE

PHPコードは、次のコマンドとmulti_queryの($ sqlを)とデータベースにフォームを送信する:

$sql = "INSERT INTO Student (StdNumber, FName, LName, DOB, PhoneNumber) 
VALUES ('$input1', '$input2', '$input3', '$input4', '$input5')"; 

だから私は、SQLを注入するInput5のは、私ができる、と思いました。だから私を使用します。

');"; $sql .= "DROP TABLE IF EXISTS Student;";-- - 

これは、以前のSQLステートメントを閉じて、その後、私は「= SQL」で別のステートメントを開始し、私はそれの残りの部分をオフにコメント - -

しかしテーブルISN落ちる。私は私の注射コマンドをデータベースのinput5(PhoneNumber)内に見ていないので、私が信じる前の文を正常に終了しています。

私は何が間違っているのか分かりませんが、私は間違ってmulti_queryを使用していますか?または私の注射は間違っていますか?私はそれを受け入れ、データベースに別のエントリを作成し、フォームを送信すると、さらに :

はあなたに

編集1ありがとうございます。

+0

');"; $sql .= "DROP TABLE IF EXISTS Student;";-- - 

のようなものでなければなりません - '$ sqlを=「INSERT INTO学生(StdNumber、 FName、LName、DOB、PhoneNumber) VALUES( '$ input1'、 '$ input2'、 '$ input3'、 '$ input4'、 '$ input5') "; $ sql。= "DROP TABLE IF EXISTSが存在する場合は;";そして 'multi_query'を使用します。 –

+0

私は現在Alive to Dieをやっていますか? – Bartholomas

答えて

1

phpで生成されたsqlを操作しようとしていますが、PHP自体ではありません。

だから、あなたはあなたの第五入力するためにPHPを追加しないでください。同様にする必要が

1234567890'); DROP TABLE IF EXISTS Student; -- the rest here will be comments in sql 
+0

ありがとう!だから私はSQLのように取得:INSERT INTO学生(StdNumber、FName、LName、DOB、PhoneNumber)VALUES( ''、 ''、 ''、 ''、 '');存在する場合はドロップテーブル。 - ') – Bartholomas

+0

@Bartholomasまさに、私は説明のために電話番号といくつかのコメントを追加しました。 – jeroen

+0

しかし、それでもデータベース内のテーブルは削除されません。これは多分multi_query($ sql)と関係がありますか? – Bartholomas

関連する問題