为什么不用这个SQL注入工作?

时间:2014-05-11 15:24:17

标签: php mysql sql sql-injection

我正在尝试注入下面给出的脚本,我给的东西就像 -

的userid =" ABCD"和pid =" &#39 ;; drop table 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";
 ?>

1 个答案:

答案 0 :(得分:3)

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

但它没有删除表格。

mysql_query只接受一个声明。

通过该函数注入SQL需要使用不同的方法(例如子查询)。


  

我在stackoverflow上看到很多答案,每个人都在使用这些评论&#34; --&#34;但根据PHP手册,评论是&#34; //#/* */&#34;

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