因此,我试图设计一个非常简单和易受攻击的网站来演示SQL注入是如何工作的,但是当我尝试使用
');SELECT * FROM users;--我收到一条错误消息,声明:
错误:您的SQL语法出现了错误;请检查与您的MySQL服务器版本对应的手册,以便在第1行使用接近“SELECT* FROM users;--”的正确语法。
源代码如下:
欢迎1.html:
<form action="test.php" method="get">
<div><label for="firstname">First name:
<input type="text" name="firstname" id="firstname"/></label>
</div>
<div><label for="lastname">Last name:
<input type="text" name="lastname" id="lastname"/></label></div>
<div><label for="email">E-mail :
<input type="text" name="email" id="email"/></label></div>
<div><label for="password">password:
<input type="text" name="password" id="password"/></label></div>
<div><input type="submit" value="GO"/></div>
</form>
test.php:
<html>
<body>
<?php
$con = @mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect ' . mysql_error());
}
mysql_select_db("accounts", $con);
$firstname = $_GET['firstname'];
$lastname = $_GET['lastname'];
$email = $_GET['email'];
$password = $_GET['password'];
$sql="INSERT INTO users(firstname, lastname, email, password)
VALUES
('$firstname','$lastname','$email','$password')";
if(!mysql_query("INSERT INTO users(firstname, lastname, email, password) VALUES ('$firstname','$lastname','$email','$password')"))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
</body>
</html>
在win10上运行WAMP服务器3.0.6,如果不是很明显的话,我在html/php上是个菜鸟
发布于 2017-09-09 18:36:47
您尝试的SQL类型将不适用于mysql_query() API。该API不支持多查询,因此不能在一次调用mysql_query()时执行两条语句。SQL在分号(;)之后包含任何内容,这是语法错误。
它将适用于查询()。另见http://php.net/manual/en/mysqli.quickstart.multiple-statement.php
在PDO::query()中,IIRC默认支持多个查询。
https://stackoverflow.com/questions/46133864
复制相似问题