SQL注入 | 二次注入

Posted 山川绿水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入 | 二次注入相关的知识,希望对你有一定的参考价值。

SQL注入 | 二次注入

1.二次注入介绍

update 表名 set 字段名修改的内容 where 限制条件


用户注册,用户使用浏览器向网站服务器发送注册请求,此时网站服务器与数据库服务器进行交互,而当用户登录时,忘记密码或想修改用户密码,执行的SQL语句是update 表名 set 修改的内容 where 限制条件

2.二次注入的原理

二次注入的原理,在第一次进行数据库插入数据的时候,仅仅只是使用了addslashes 或者是借助get_magic_quotes_gpc对其中的特殊字符进行了转义,但是addslashes有一个特点就是虽然参数在过滤后会添加“1”进行转义,但是“)”并不会插入到数据库°中,在写入数据库的时候还是保留了原来的数据。
在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入。比如在第一次插入数据的时候,数据中带有单引号,直接插入到了数据库中;然后在下一次使用中在拼凑的过程中,就形成了二次注入。

2.二次注入代码分析

发现注册的代码中,没有过滤--

更改密码的代码过程中admin'--空格-,就可以闭合前面的单引号,注释掉后面的代码,空格中间可以插入我们想要的SQL语句

3.二次注入利用

我们以sqli-labs-less24为例
1.查看security数据库users表中的内容

2.注册用户admin'-- -,修改密码查看数据库内容

3.注册一个admin’-- -的账号,密码任意

4.终端查看数据库的内容,发现成功

select * from users;


5.我们尝试使用admin'-- -登录查看

6.输入正确的密码,然后修改密码

7.查看数据库中的内容


8.当我们成功修改密码之后,查看数据库中的内容发现,admin的密码被修改,然而admin'-- -的密码没被修改

4.二次注入危害

1.注入payload触发二次SQL注入
2.注入payload触发xss攻击

以上是关于SQL注入 | 二次注入的主要内容,如果未能解决你的问题,请参考以下文章

SQL注入之盲注,二次注入,dnslog注入

PHP代码审计 那些年我们一起挖掘SQL注入 - 4.全局防护Bypass之二次注入

Sql 注入详解:宽字节注入+二次注入

安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段

SQL注入 | 二次注入

WEB漏洞攻防 - SQL注入 - 二次注入