2017-09-28 18 views
-1

私は代入に取り組んでおり、その一部として、studentsという名前のテーブルに値を入力するためのフォームからtestという名前のテーブルにSQLインジェクションを実行しています。私はSQLインジェクションテーブルを削除しようとすると構文エラーが発生する

'; DROP TABLE test; -- 

をしようとしてきた

私はこのエラーが

Error: INSERT INTO student (student_id, first_name, last_name, DOB, sex, phone, user_id) VALUES ('nhdb', ''; DROP TABLE test; -- ', '', '', '', '', 'u01') 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 
'; DROP TABLE test; -- ', '', '', '', '', 'u01')' 
at line 1 

もともと私は学生のテーブルをドロップしようとしていたが、私は、ユーザーがドロップする権利を持っていたかどうかをテストしていた時に取得しますそのテーブルには、外部キー制約の問題がありました。だから、私は一緒に問題なしでユーザーが削除することができますテストという名前のテーブルを入れます。

私はここで間違っていますか? '; DROP TABLE test; --が動作するはずです。

答えて

0

残りの値の値があなたの例でコメントアウトされているため失敗します。 7つの価値が期待されますが、2つしか提供されません。 また、閉じ括弧)もありません。
INSERTが失敗するため、DROPも実行されません。

', '', '', '', '', ''); DROP TABLE test; -- 
+0

ありがとうございました – nwalmaer

0
INSERT INTO student (student_id, first_name, last_name, DOB, sex, phone, user_id) 
VALUES ('nhdb', ''; DROP TABLE test; -- ', '', '', '', '', 'u01') 

それはあなたがあるためである:

これは動作するはず

  1. 'nhdb, ''
  2. は1つのクエリで二つの文を実行しようとした後、閉じ括弧が欠落し、かつ1それらのうちクエリではなくDDLステートメント
  3. 0の5つの引数がありません節。
  4. INSERTステートメントの途中にDROPステートメントを挿入しようとしています。

これは有効なSQLを開始しません。

関連する問題