Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为sql注入创建演示时出现sql语法错误_Php_Html_Sql_Sql Injection - Fatal编程技术网

Php 为sql注入创建演示时出现sql语法错误

Php 为sql注入创建演示时出现sql语法错误,php,html,sql,sql-injection,Php,Html,Sql,Sql Injection,我试图创建一个登录页面来演示smple sql注入攻击。 下面是从login.html接收输入的php代码: <?php define('DB_HOST', 'localhost'); define('DB_NAME', 'sql-injection'); define('DB_USER','root'); define('DB_PASSWORD',''); $con=@mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Fail

我试图创建一个登录页面来演示smple sql注入攻击。 下面是从login.html接收输入的php代码:

<?php 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'sql-injection'); 
define('DB_USER','root'); 
define('DB_PASSWORD',''); 
$con=@mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 
/* $ID = $_POST['user']; $Password = $_POST['pass']; */ 

function SignIn() 
{ 
session_start(); //starting the session for user profile page 

if(!empty($_POST['user']) and !empty($_POST['pass'])) //checking the username and password which is coming from Sign-In.html, are they empty or have some text
 {      

        $query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]'") or die(mysql_error()); 

        $row = mysql_fetch_array($query) or die(mysql_error()); 

        if(!empty($row['userName']) AND !empty($row['pass'])) 
        { 
                if ($_POST['pass'] == $row['pass'])
                {
                    echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE...";
                }
                else
                {
                    echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY..."; 
                }

        } 
        else 
        {   
                    echo "The db is corrupt";
        } 
} 
else{
    echo "The username and password fields cant be empty";
}
} 
if(isset($_POST['submit'])) 
{ 

SignIn(); 

} 

?>
我正在尝试在用户名列中输入以下内容:

Y′;更新用户名集username='mrboolnew1',其中username='mrboolnew'

但我得到以下错误:

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在“updateusername SET username='mrboolnew1'附近使用的正确语法,其中username='mrboolnew';“”在1号线

有人能帮我解决注射问题吗。
提前感谢。

您已经添加了针对注入攻击的保护,甚至可能在不知道的情况下
mysql\u query()
只向数据库发送一个查询(请参阅)。不允许使用分号;多个查询也不例外


您必须更加努力地注入自己的代码。

这种精确的sql注入无法使用,因为它只允许一个查询,而不允许多个查询。一旦遇到分号-
-它将出错。他们是故意注射吗?看来我可能还没有领会这个道理question@Fred-二-。标题是“为SQL注入创建演示”,因此注入似乎是有意的。我不打算就如何做到这一点给出建议,但OP采取的方法有一个明显的缺陷;好吧,戈登,我当时没有理解这个问题。标题比问题本身更清楚,或者只是我hahaThanks Gordon,我不得不重新实现php脚本并成功地进行了sql注入。
UsernameID userName   pass
1          mrboolnew  mrbool123