Web网络安全分析二次注入攻击原理详解

 更新时间:2021年11月02日 15:49:01   作者:Phanton03167  
这篇文章主要为大家讲解介绍了Web网络安全分析二次注入攻击原理的详解,有需要相关学习的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

二次注入攻击

二次注入攻击的测试地址:http://127.0.0.1/sqli/double1.php?username=test 和 http://127.0.0.1/sqli/double2.php?id=1。 其中,double1.php页面的功能是注册用户名,也是插入SQL语句的地方;double2.php页面的功能是通过参数ID读取用户名和用户信息。

第一步,访问double1.php?username=test',如图40所示。

 

图40 注册用户名test'

从页面返回结果可以看到用户名test'对用的ID为9,访问double2.PHP?id=9,结果如图41所示。

 

图40 访问test'的信息

从返回结果可以看到服务端返回了MySQL的错误(多了一个单引号引起的语法错误),这时回到第一步,先访问double1.php?username=test' order by 1--+,获取一个新的id=10,当再次访问double2.php?id=10时,页面返回空白;再次尝试,访问double1.php?username=test' order by 10--+,获取一个新的id=11,当再次访问double2.php?id=11时,页面返回错误信息(Unknown column ‘10' in ‘order clause'),如图42所示。

 

图42 访问order by 10的结果

这说明空白页面就是正常返回,通过不断地尝试,笔者判断出数据库中一共有3个字段。

访问double1.php?username=test' union select 1,2,3--+,获取一个新id=12,再访问double2.php?id=12,发现页面返回了union select中的1和2字段,结果如图43所示。

 

图43 使用Union语句的结果

在2或3的位置,插入我们的语句,比如访问double1.php?username=test' union select 1,user(),3--+,获得新的id=13,再访问double2.php?id=13,得到user()的结果,如图44所示,使用此方法就可以获取数据库中的数据。

 

图44 利用二次注入获取数据

二次注入代码分析

二次注入中double1.php页面的代码如下所示,实现了简单的用户注册功能,程序获取到GET参数username的参数password,然后将username和password拼接到SQL语句,使用insert语句插入到数据库中。由于参数username使用addslashes进行转义(转义了单引号,导致单引号无法闭合),参数password进行了MD5哈希,所以此处不存在SQL注入漏洞。

<?php header('Content-type:text/html;charset=utf-8');
$con=mysqli_connect("localhost","root","root","test");
if (mysqli_connect_errno())
{
    echo "连接失败: " . mysqli_connect_error();
}
$username = @$_GET['username'];
$password = @$_GET['password'];
$result = mysqli_query($con,"insert into users(`username`,`password`) values ('".addslashes($username)."','".md5($password)."')");
echo "新的id为:".mysqli_insert_id($con);
?>

当访问username=test'&password=123456时,执行的SQL语句为:

insert into users(`username`,`password`) values ('test\'','e10adc3949ba59abbe56e057f20f883e')

从图45中的数据库里可以看到,插入的用户是test'。

 

图45 插入到数据库中的数据

在二次注入中double2.php中的代码如下所示。首先将GET参数ID转换成int类型(防止拼接到SQL语句时,存在SQL注入漏洞),然后到users表中获取ID对应的username,接着到person表中查询username对应的数据。

<?php header('Content-type:text/html;charset=utf-8');
$con=mysqli_connect("localhost","root","root","test");
if (mysqli_connect_errno())
{
    echo "连接失败: " . mysqli_connect_error();
}
$id = intval(@$_GET['id']);

$result = mysqli_query($con,"select * from users where `id`=".$id);
$row = mysqli_fetch_array($result);

$username = $row['username'];
$result2 = mysqli_query($con,"select * from person where `username`='".$username."'");
if (!$result2)
{
    echo mysqli_error($con);
    exit();
}
if($row2 = mysqli_fetch_array($result2))
{
    echo $row2['username'] . " : " . $row2['money'];

}
else
{
    echo mysqli_error($con);
}
?>

但是此处没有对$username进行转义,在第一步中我们注册的用户名是test',此时执行的SQL语句为:

select * from users where `username`='test''

单引号被带入SQL语句中,由于多了一个单引号,所以页面会报错。

以上就是Web网络安全分析二次注入攻击原理详解的详细内容,更多关于Web网络安全二次注入攻击的资料请关注脚本之家其它相关文章!

相关文章

  • Web网络安全漏洞分析存储型XSS攻击原理

    Web网络安全漏洞分析存储型XSS攻击原理

    这篇文章主要为大家介绍了Web网络安全漏洞分析存储型XSS攻击原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • 无线网攻击工具进攻方法及防范技巧小结

    无线网攻击工具进攻方法及防范技巧小结

    对无线网安全攻防有兴趣的人应该都需要一套工具,英特网上有很多免费的工具。本文不求全面,但求能提供一些指导和建议。
    2008-02-02
  • SQL注入详细讲解(万字长文,全网最全!)

    SQL注入详细讲解(万字长文,全网最全!)

    SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,下面这篇文章主要给大家介绍了关于SQL注入详细讲解的相关资料,需要的朋友可以参考下
    2023-03-03
  • 网络安全渗透测试小程序抓包流程步骤详解

    网络安全渗透测试小程序抓包流程步骤详解

    这篇文章主要为大家介绍了网络安全渗透测试之小程序抓包流程的步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-02-02
  • 关于Web网络如何防范XSS攻击的措施

    关于Web网络如何防范XSS攻击的措施

    这篇文章主要介绍了关于Web网络如何防范XSS攻击的措施,XSS攻击是一种常见的网络安全漏洞,它可以通过注入恶意代码来攻击用户的计算机和浏览器,从而窃取用户的敏感信息或执行恶意操作,需要的朋友可以参考下
    2023-07-07
  • 微软又爆预留后门 警方可轻松获取硬盘资料

    微软又爆预留后门 警方可轻松获取硬盘资料

    一直以来,人们都在猜测微软为了配合警方执法,设立了各种各样的后门来方便警方获得证据。
    2008-05-05
  • Web网络安全分析二次注入攻击原理详解

    Web网络安全分析二次注入攻击原理详解

    这篇文章主要为大家讲解介绍了Web网络安全分析二次注入攻击原理的详解,有需要相关学习的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • 网管员需注意的十点安全技巧

    网管员需注意的十点安全技巧

    结合工作经验,在这里笔者给企业网管员提供一些保障企业网络安全的建议,帮助他们用以抵御网络入侵、恶意软件和垃圾邮件。
    2008-03-03
  • 在Real影片中放木马后门

    在Real影片中放木马后门

    在Real影片中放木马后门...
    2007-04-04
  • Web安全解析报错注入攻击原理

    Web安全解析报错注入攻击原理

    这篇文章主要为大家介绍了Web安全解析报错注入攻击的原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2021-11-11

最新评论