SQL注入漏洞

想要挖掘一个漏洞我们首先就要知道这个漏洞是如何产生的。

1.漏洞产生原理

用户提交的数据没有被服务器进行检测和过滤,被数据库直接当作sql语句的一部分执行就造成了sql注入

2.如何查找sql注入呢?

一般是根据网站的功能点是否和数据库产生数据交互来判断的,如果产生了数据交互就可能存在sql注入.

3.靶场案例讲解

在这里给大家推荐: http://114.116.45.110/里面有各种靶场,不想自己搭建的小伙伴可以使用一下

这里使用Sqli-labs靶场Less-1(第一关)讲解,Sqli-labs是一个帮你总结大部分SQL注入漏洞类型的靶场,学习SQL注入漏洞原理,复现SQL注入漏洞的必备靶场环境,给我整!

1.根据提示输入id为参数,所以我们输入?id=1

通过id数字值不同返回的内容也不同,所以我们输入的内容是带入到了数据库里面查询的

id=1

id=2

2.存在注入点判断

加上单引号报错 :Less-1 **Error Based- String**

加上注释符页面正常:–+为注释符

3.根据上述结果确定是字符型且存在sql注入漏洞。因为该页面存在回显,所以我们可以使用联合查询。

1.首先判断字段数(使用order by)

输入id=1′ order by 1,2,3,–+ 页面显示正常,输入id=1′ order by 1,2,3,4–+页面显示报错,说明字段数为3

2.爆出显示位,就是看看表格里面那一列是在页面显示的。

输入id=-1′ union select 1,2,3–+,可以看到是第二列和第三列里面的数据是显示在页面的

4.接下来就是最重要的一步了,爆出数据库信息

将显示位替换成我们要查询的数据库信息函数,这里我们要查询数据库名称database()和数据库版本version().

          所以输入id=-1' union select 1,database(),version()--+

就爆出了数据库名称:security 数据库版本:5.6.50-log

在输入id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+就可以查看security数据库下的所有表名

5.危害

未经授权的情况下操作数据库中的数据。攻击者通过构造不同的sql语句来实现对数据库的任意操作。

6.防护

控制用户的权限,禁止普通用户的数据库建立、删除、修改等权限。

对用户输入进行检查,确保数据输入的安全性,在具体检查输入或提交的变量时,对于单引号、双引号、冒号等字符进行转换或者过滤。

小黑子:以上属于sql注入中的get类型字符型注入。手工注入是很少用到的,通常都是使用各种工具,本人是使用BurpXray联动扫描出漏洞,然后根据漏洞详情使用sqlmap工具进行深入利用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xiaoheizi安全

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

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

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

打赏作者

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

抵扣说明:

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

余额充值