我试图注入下面给出的脚本,并且我给出类似的东西-
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。它具有不同的注释语法。