我试图注入下面给出的脚本,并且我给出类似的东西-

userid =“ abcd”和pid =“';删除表shubh //”

但它不是删除表。而且我在stackoverflow上看到了很多答案,每个人都在使用这些注释“-”,但是根据PHP手册注释,这些都是“ //,#,/ * * /”

我指的是此资源-http://www.w3resource.com/sql/sql-injection/sql-injection.php

    <?php
 $host="localhost";
 $username="root";
 $password="";
 $db_name="hr";
 $con=mysql_connect("$host", "$username", "$password")or die("cannot connect");
 mysql_select_db("$db_name")or die("cannot select DB");
 $uid = $_POST['uid'];
 $pid = $_POST['passid'];
 $sql = "select * from user_details where userid = '".$uid."' and password = '".$pid."'";
 //$sql = "select * from user_details where userid = '".shubham."'";//shubham"' drop table shubh";//.$uid."' and password = '".$pid."'";
echo $sql;
 $result = mysql_query($sql);
 if(mysql_num_rows($result)>0)
 {echo "<h4>"."-- Personal Information -- "."</h4>","</br>";
 while ($row=mysql_fetch_row($result))
 {echo "<p>"."User ID    :  ".$row[1]."</p>";
 echo "<p>"."Password   :  ".$row[2]."</p>";
 echo "<p>"."First Name :  ".$row[3]." Last Name  :  ".$row[4]."</p>";
 echo "<p>"."Gender     :  ".$row[5]." Date of Birth :".$row[6]."</p>";
 echo "<p>"."Country  :  ".$row[7]." User rating :  ".$row[8]."</p>";
 echo "<p>"."Email ID :  ".$row[9]."</p>";
 echo "--------------------------------------------";
 }
 }
 else
 echo "Invalid user id or password";
 ?>

最佳答案

userid="abcd" and pid="'; drop table shubh //"

  
  但它不是删除表。


mysql_query仅接受一个语句。

通过该函数进行SQL注入需要使用其他方法(例如子查询)。




  我在stackoverflow上看到了很多答案,每个人都在使用这些注释“ --”,但是根据PHP手册注释,这些都是“ //#/* */


SQL不是PHP。它具有不同的注释语法。

09-30 14:22
查看更多