天天听SQL注入,SQL注入到底是怎么注入的?

天天听SQL注入,SQL注入到底是怎么注入的?天天说 SQL 注入 写程序的时候要如何如何避免 SQL 注入 有多少人根本都不知道 SQL 注入是怎么注入的 下面是 SQL 注入的一个简单实现步骤 首先我自己简单写了一个有 SQL 注入漏洞的接口用来测试 第一步 判断接口是否存在数据库注入漏洞 使用 and 1 1 使条件成立

大家好,我是讯享网,很高兴认识大家。

天天说SQL注入,写程序的时候要如何如何避免SQL注入,有多少人根本都不知道SQL注入是怎么注入的?

下面是SQL注入的一个简单实现步骤

首先我自己简单写了一个有SQL注入漏洞的接口用来测试


讯享网

 

第一步:判断接口是否存在数据库注入漏洞

使用and 1=1,使条件成立,看接口是不是还可以正常返回数据

 

使用and 1=2,使条件不成立,看接口是不是不返回数据了,或者报错

 

 上面两个步骤达到预期结果,就说明这个接口存在SQL注入漏洞

 第二步:判断字段数

虽然看起来是返回了两个字段数据,但是SQL不一定查了两个数据,可能在程序中处理过后才返回的两个数据,所以需要判断SQL到底查询了几个字段

使用order by (一个数字)来依次请求,判断接口的SQL查询了几个字段。

先使用order by 1来试试,结果没问题

再使用order by 2 后面3 4 5,直到接口报错或者不返回数据,就说明SQL查询的字段数是前一个不报错的数字,我这里是查询的三个字段,所以到4的时候就报错了

 现在知道了SQL查询的是字段数是3

 第三步:判断回显点

回显点可以将我们输入的SQL语句执行,并返回回来

先试用and 1=2 使原SQL的条件不成立,再使用union 加上自己的SQL

 我这里是用的Oracle,mysql可以直接select 1,2,3

可以看到报错提示数据类型不匹配,那就换成下面三个试一下,一般不是number就是varchar,看第几个字段可以返回回来1。

'1',null,null 

null,'1',null 

null,null,'1'

第一个字段可以返回,说明可以在第一个字段这里写我们想查询的东西

 

 可以查询实例名

 可以查询数据库版本

 

小讯
上一篇 2025-03-15 20:25
下一篇 2025-03-16 18:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/75090.html