Pikachu-Sql Inject(SQL注入)基本概述和原理

先来看下我们的实验流程

 

Sql Inject(SQL注入)概述

哦,SQL注入漏洞,可怕的漏洞。

在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞

 

SQL注入又是怎么形成的呢???

粗糙点来说:SQL注入漏洞主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄露的一种漏洞。

 

SQL注入的攻击流程:

其核心思想:构造一些测试的SQL语句,然后通过前端拼接进去,它传到后台之后,我们通过它返回的数据,

      看它是否有报错或者根据它返回的逻辑来判断 我们输入的内容在后台是不是被拼接到数据库里面执行了。

      如果是这样的,就以为着后端的数据库会接受我们前端一些其他的数据库操作,说明这个地方存在SQL注入。

 

 

SQL注入-常见的注入点类型

●数字型    user_id = $id

●字符型    user_id = '$id'

●搜索型    text LIKE '%{$_GET['search']}%'"

不管是啥型,总而言之,就是对SQL中的各种类型的输入进行闭合测试,构造合法SQL,欺骗后台执行!

 MySQL服务器支持3种注释:

✔从 '#' 字符从行尾

✔从 '--  ' 序列到行尾,请注意 '--'(破折号)注释风个要求第二个破折号后面至少跟一个空格符

✔从 /*序列到后面的*/序列,结束序列不一定在同一行中,因此该语法允许注释跨越多行。

 

在构建代码时,一般会从如下几个方面的策略来防止SQL注入漏洞:
1.对传进SQL语句里面的变量进行过滤,不允许危险字符传入;
2.使用参数化(Parameterized Query 或 Parameterized Statement);
3.还有就是,目前有很多ORM框架会自动使用参数化解决注入问题,但其也提供了"拼接"的方式,所以使用时需要慎重!

 

posted @ 2020-04-03 09:07  escwq  阅读(374)  评论(0编辑  收藏  举报