SQL-Inject漏洞的概念原理
概述:数据库注入漏洞,主要是开发人员在过后见代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构建的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄露的一种漏洞。
一般的网站都会有一个相对应的数据库用来存放相关用户信息,在前端会有一个窗口用于用户输入用户id,按一般运作流程,在前端输入的信息将会被提交至应用程序,经过参数的转化会去连接数据库,凭借对应的操作去获取数据库的信息。
eg:在前端输入:1 会执行如下语句: select email from users where id=1;
这时候如果攻击者在前端输入1 or 1=1.如果后端没有对对应的数据点进行安全措施保护的话,输入的内容可能会直接被拼接到后端的语句中去变成: select email from users where id=1 or 1=1;
这样整个语句的逻辑就发生了改变,不能再像最初一样给出相应的正确操作,而是反馈错误的信息。
这样就会导致数据库的信息泄露。
SQL Inject漏洞的攻击流程
第一步:注入点探测
自动方式:使用web漏洞扫描工具,自动进行注入点发现。
手动方式:手工构建sql Inject测试语句进行注入点发现。
第二部:信息获取
通过注入点取得期望得到的数据。
1.环境信息:数据库类型,数据库版本,操作系统版本,用户信息等。
2.数据库信息:数据库名称,数据库表,表字段