[英]sql syntax error while creating a demo for sql injection
我正在嘗試創建一個登錄頁面以演示輕度的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();
}
?>
該數據庫具有一個帶有列的表用戶名
UsernameID userName pass
1 mrboolnew mrbool123
我正在嘗試在用戶名列中輸入以下內容:
Y'; UPDATE用戶名SET userName ='mrboolnew1'WHERE userName ='mrboolnew';
但我得到以下錯誤:
您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊,以在'UPDATE username SET userName ='mrboolnew1'WHERE userName ='mrboolnew';''附近使用正確的語法
有人可以幫我解決注射查詢問題嗎? 提前致謝。
您添加了保護措施,以防止注入攻擊,甚至可能根本不知道mysql_query()
僅向數據庫發送一個查詢(請參見此處 )。 不允許使用分號; 也不是多個查詢。
您將不得不更加努力地注入自己的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.