Php 这行代码是否容易受到SQLI攻击?

Php 这行代码是否容易受到SQLI攻击?,php,mysql,security,Php,Mysql,Security,我目前正在玩弄我朋友的代码(他给了我100%的权限来测试他的web应用程序以获取乐趣),我发现了一个漏洞,允许我查看他的代码的某些部分。但是,在尝试使用各种模糊/手动测试技术进行攻击时,我无法获得详细错误,也无法使用查询绕过身份验证。但是,我尝试通过--cookie=”“标志使用sqlmap利用此漏洞,但没有成功 我知道$token变量没有包装在“”之间,因此我认为可以添加以下内容:1或1=1“-”(这不起作用) 到目前为止,我只能得到一个mysqli_结果对象作为返回: mysqli_

我目前正在玩弄我朋友的代码(他给了我100%的权限来测试他的web应用程序以获取乐趣),我发现了一个漏洞,允许我查看他的代码的某些部分。但是,在尝试使用各种模糊/手动测试技术进行攻击时,我无法获得详细错误,也无法使用查询绕过身份验证。但是,我尝试通过--cookie=”“标志使用sqlmap利用此漏洞,但没有成功

我知道$token变量没有包装在“”之间,因此我认为可以添加以下内容:1或1=1“-”(这不起作用)

到目前为止,我只能得到一个mysqli_结果对象作为返回:

    mysqli_result Object
(
    [current_field] => 0
    [field_count] => 5
    [lengths] => 
    [num_rows] => 0
    [type] => 0
)
//which, by the way, changes values depending upon what I input/fuzz.

    <?php

include_once("mysql.php");

$ck = $_COOKIES;
if(isset($ck["session"])){
  $token = $ck['session'];
  $conn->query("SELECT * FROM sessions WHERE token=$token AND loggedin=1");
  if ($result->num_rows > 0) {
    header("Location: account.php");
  }
}

?>
mysqli\u结果对象
(
[当前_字段]=>0
[字段计数]=>5
[长度]=>
[num_行]=>0
[类型]=>0
)
//顺便说一下,它会根据输入/模糊的内容更改值。

是的,该行代码易受SQL注入攻击

如果您要求一个模式来暴露漏洞,请考虑只提供字符串<代码>令牌< /C> > /P> 那么生成的SQL将是:

 SELECT * FROM sessions WHERE token=token AND loggedin=1
或者,包括一个
1或1=1--
,用
--
开始注释,因此查询可以是:

 SELECT * FROM sessions WHERE token=1 OR 1=1 -- AND loggedin=1 
--

至于进一步利用这一漏洞,黑客们有工具可以帮助他们快速发现

我们不需要花时间深入研究这个问题,只需通过重构代码,使用带有绑定占位符的准备好的语句来修复该漏洞


如果这是易受攻击的,很可能是同一个开发人员在代码中留下了大量SQL注入漏洞。所有代码都需要修复。

是的,这一行代码易受SQL注入攻击

如果您要求一个模式来暴露漏洞,请考虑只提供字符串<代码>令牌< /C> > /P> 那么生成的SQL将是:

 SELECT * FROM sessions WHERE token=token AND loggedin=1
或者,包括一个
1或1=1--
,用
--
开始注释,因此查询可以是:

 SELECT * FROM sessions WHERE token=1 OR 1=1 -- AND loggedin=1 
--

至于进一步利用这一漏洞,黑客们有工具可以帮助他们快速发现

我们不需要花时间深入研究这个问题,只需通过重构代码,使用带有绑定占位符的准备好的语句来修复该漏洞


如果这是易受攻击的,很可能是同一个开发人员在代码中留下了大量SQL注入漏洞。所有代码都需要修复。

是的,它会。参数化。是的,它会。参数化。