Web中二次注入攻击原理的示例分析

技术Web中二次注入攻击原理的示例分析这篇文章主要介绍Web中二次注入攻击原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!二次注入攻击二次注入攻击的测试地址:http://127.0.

本文主要介绍了网络二次注入攻击原理的实例分析。很详细,有一定的参考价值。感兴趣的朋友一定要看完!

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

第一步是去double1.php?Username=test ',如图40所示。

Web中二次注入攻击原理的示例分析

图40注册用户名测试

从页面返回的结果中,可以看到用户名测试的ID为‘9’,可以访问double2.PHP?Id=9,结果如图41所示。

Web中二次注入攻击原理的示例分析

图40访问测试信息

从返回结果中,我们可以看到服务器返回了MySQL错误(多了一个单引号导致的语法错误)。然后,回到第一步,先参观double1.php。用户名=test' order by 1 -,获得新id=10,何时再次访问double2.php?当id=10时,页面返回空白;再试一次,去double1.php?再次访问double2.php时,用户名=test' order by 10 -,获得新id=11?当id=11时,页面返回一条错误消息(order子句中的未知列“10”),如图42所示。

Web中二次注入攻击原理的示例分析

图42按10访问订单的结果

这说明空白页正常返回,通过不断尝试,笔者判断数据库中有三个字段。

参观double1.php?Username=test' union select1,2,3-,获取一个新的id=12,然后访问double2.php?Id=12,发现页面返回union select中的1和2字段,结果如图43所示。

Web中二次注入攻击原理的示例分析

图43使用Union语句的结果

在2或3的位置,插入我们的声明,如访问double1.php?Username=test' union select1,user(),3-,获取一个新的id=13,然后访问double2.php?Id=13,得到user()的结果,如图44所示,使用这个方法可以得到数据库中的数据。

Web中二次注入攻击原理的示例分析

图44二次注入数据采集

00-1010二次注入中double1.php页面的代码如下,实现了简单的用户注册功能。程序获取get参数username的参数密码,然后将用户名和密码拼接成SQL语句,用insert语句插入数据库。这里没有SQL注入漏洞,因为参数username使用addslashes来转义(转义了单引号,这使得无法关闭单引号),并且参数password具有MD5哈希。

?phpheader(' Content-type : text/html;charset=utf-8 ');

$ con=MySQL _ connect(' localhost ',' root ',' root ',' test ');

if(MySQL _ connect _ errno())

{

回应“连接失败:”。myqli _ connect _ error();

}

$ username=@ $ _ GET[' username '];

$passwordnbs

p;= @$_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'。

Web中二次注入攻击原理的示例分析 

图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中二次注入攻击原理的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/75522.html

(0)

相关推荐

  • 抖音刷赞推广平台便宜,全网最便宜的平台!

    技术抖音刷赞推广平台便宜,全网最便宜的平台!抖音快速涨粉方法抖音无疑是目前新媒体里面涨粉最容易,涨粉最快的平台了。前有成都小甜甜一夜涨粉500万,后有灵魂当铺一天涨粉75万。这种涨粉速度在其他平台是想都不敢想象的。不过,

    测评 2021年11月9日
  • 如何判断处女,怎样看一个女人是不是处女

    技术如何判断处女,怎样看一个女人是不是处女1如何判断处女、从身后观察。处女的胯部和大腿浑然一体。这是因为处女的胯骨之间闭合较好。而非处则不同,她们的胯部松散,两个屁股在走路时象两个筐子在空中飘荡。这是因为女性只要有了第一

    生活 2021年10月25日
  • 心的折法,怎么折爱心,爱心的折法

    技术心的折法,怎么折爱心,爱心的折法折爱心的方法心的折法:取得红色或者粉色折纸一张,暖色调为宜,不是正方形请裁成正方形。对折,不要太用力,有个折痕就可以了。再沿着步骤2出现的折痕分别对折,然后展开。这样一共有3道折痕,把

    生活 2021年10月24日
  • 塞下曲拼音版古诗,北师大版五年级下册的古诗有哪些?

    技术塞下曲拼音版古诗,北师大版五年级下册的古诗有哪些?千里送鹅毛缅伯高将鹅贡唐朝,山高路远遥塞下曲拼音版古诗。钙阳湖失去,倒地哭号号。上复唐天子,可饶缅伯高。礼轻人意重,千里送鹅毛。秋浦歌(唐)李白 炉火照天地,红星乱紫

    生活 2021年10月20日
  • CentOS7环境中DHCP怎么配置

    技术CentOS7环境中DHCP怎么配置这篇文章主要讲解了“CentOS7环境中DHCP怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CentOS7环境中DHCP

    攻略 2021年11月29日
  • css中float属性的属性值有哪些(div的float属性)

    技术css3中float属性怎么用这篇文章主要介绍了css3中float属性怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    攻略 2021年12月19日