gpt4 book ai didi

php - SQL 注入(inject)测试查询

转载 作者:行者123 更新时间:2023-11-29 02:28:46 24 4
gpt4 key购买 nike

我用 php 编写了一个代码,使管理员可以登录。密码信息是从表中获取的。我知道编写此类代码不是一个好习惯,我应该使用准备好的语句或 mysqli_ 但我只想了解 sql 查询漏洞。我只想知道我的代码如何容易受到 SQL 注入(inject)攻击?我怎样才能绕过密码限制。我尝试在密码字段中输入 password = 'anything' OR 'x'='x' 但它没有绕过它。这是我的代码:-

if(isset($_POST["Submit"]))
{
include 'db_connect.php';
$user=$_POST['user'];
$pass=$_POST['pass'];
$checkquery="select * from adminlogin where password='$pass' ";
$queryex= mysql_query($checkquery);
$row= mysql_fetch_array($queryex);
$checkcasepass = $row['password'];
if($user=='admin' && strcmp($checkcasepass,$pass)==0)
{
setcookie("admin",$user);
setcookie ("student", "", time() - 3600);
header("location: admin option.php");
}
else
{
echo "Sorry User Name and Password is Wrong";
}
}

出于测试目的,我将查询字符串更改为此:-

$checkquery="select * from adminlogin where password='$pass' OR 1=1 ";

但是没有用。可能是由于魔术引号吗?但我使用的是 PHP 5.4.3,魔术引号已经贬值了。我想知道为什么 SQL 注入(inject)不起作用。 ?

最佳答案

您选择的注入(inject)测试方式是错误的。

此代码允许注入(inject),但验证代码不检查找到的行数,而是检查返回值。

但是,再次谈到 SQL 注入(inject) - 这段代码没问题,注入(inject)没问题。

关于php - SQL 注入(inject)测试查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16363610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com