SQL注入实战:二阶注入

一、二阶注入的原理

1、二阶注入也称为SOL二次注入。

2、二次注入漏洞是一种在Web应用程序中广泛存在的安全漏洞形式:相对于一次注入漏洞而言,二次注入漏洞更难以被发现,但是它却具有与一次注入攻击漏洞相同的攻击威力。

3、简单的说,二次注入是指已存储(数据库、文件)的用户输入被读取后再次进入到 SOL查询语句中导致的注入。

4、网站对我们输入的一些重要的关键字进行了转义,但是这些我们构造的语句已经写进了数据库,可以在没有被转义的地方使用。

5、可能每一次注入都不构成漏洞,但是如果一起用就可能造成注入。

二、二阶注入与普通注入的区别

1、普通注入:

在http后面构造语句,是立即直接生效的

一次注入很容易被扫描工具扫描到

2、二次注入:

先构造语句(有被转义字符的语句)

我们构造的恶意语句存数据库

第二次构造语句(结合前面已经存入数据库的语句,成功。因为系统没有对已经存入数据库的数据做检查)

二次注入更加难以被发现

三、二阶注入的条件

1、用户向数据库插入恶意语句(即使后端代码对语句进行了转义,如mysql-escape_string、mysql_real_escape_string转义)

2、数据库对自己存储的数据非常放心,直接取出恶意数据给用户

四:二阶注入的步骤

二次注入,可以概括为以下两步:

第一步:插入恶意数据

进行数据库插入数据时,对其中的特殊字符进行了转义处理,在写入数据库的时候又保留了原来的

数据。

第二步:引用恶意数据

开发者默认存入数据库的数据都是安全的,在进行查询时,直接从数据库中取出恶意数据,没有进

行进一步的检验的处理。

五:二阶注入的代码分析

1、首先看注册的代码cat login_create.php

2、再来看修改密码的代码pass_change.php

如果修改的username是admin‘-- -那么实际上我们修改的是admin的password

也就是说我们注册了一个admin’-- -这样的一个用户,但修改可以修改admin的密码

六:二阶注入演示-sqli-labs less-24

第一步:注册一个admin’-- -,注意,后面这个-表示前面是一个注释,因为注释必须是空格才能生效

第二步:用admin‘-- -用户登入,修改admin’-- -密码

 

修改完成后会发现admin‘-- -的密码还是123456(原因是单引号后面的注释掉了,修改的就是admiin的密码)

admin的密码变成了ssssss

这就是二阶注入的特点

理解是:首先注册一个恶意的用户,修改密码时是修改是本身用户密码,从而达到了注入效果

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ting~liang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值