2017-09-25 9 views
1

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 :

는 PHP 코드는 다음 명령을 multi_query ($의 SQL)로 데이터베이스에 양식을 제출합니다. '. = SQL'

이 이전 SQL 문을 닫습니다
');"; $sql .= "DROP TABLE IF EXISTS Student;";-- - 

, 그때는 또 다른 문을 시작하고 나는 그것을의 나머지 부분을 언급 - -

그러나 테이블 ISN : 그래서 사용 떨어지는거야. 내 injection 명령을 데이터베이스의 input5 (PhoneNumber) 내에 표시하지 않으므로 이전의 진술을 성공적으로 닫을 수 있습니다.

그래서 내가 잘못 무엇인지 모르겠다, 나는 multi_query를 잘못 사용하고 있습니까? 내 주사가 잘못 되었나요? 내가 양식을 제출하면 그것을 받아 데이터베이스에 다른 항목을 만들고, 또한 :

편집 한 주셔서 감사합니다.

+0

같이 할 필요가 :

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

같은 것을해야한다 - = "학생 INTO INSERT'$의 SQL (StdNumber를, FName, LName, DOB, PhoneNumber) VALUES ('$ input1', '$ input2', '$ input3', '$ input4', '$ input5') "; $ sql. = "DROP TABLE IF EXISTS가 존재한다면;"; 그리고'multi_query'를 사용하십시오. –

+0

제가 지금하고있는 일은 살아있는 것입니까? – Bartholomas

답변

1

당신은 php 자체가 아닌 php에 의해 생성 된 sql을 조작하려고합니다.

그래서 당신은 당신의 5 번째 입력에 PHP를 추가하지 않아야

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

감사합니다. 그래서 나는 SQL을 얻는다. INSERT INTO Student (StdNumber, FName, LName, DOB, PhoneNumber) VALUES ('', '', '', '', ''); DROP TABLE IF 존재 학생; - ') – Bartholomas

+0

@ Bartholomas 정확히, 설명하기 위해 전화 번호와 몇 가지 설명을 추가했습니다. – jeroen

+0

그러나 여전히 데이터베이스에 테이블을 삭제하지는 않습니다. 이것은 아마도 multi_query ($ sql)과 관련이 있습니까? – Bartholomas