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注入 | 二次注入的主要内容,如果未能解决你的问题,请参考以下文章
PHP代码审计 那些年我们一起挖掘SQL注入 - 4.全局防护Bypass之二次注入
安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段