常规漏洞之一SQL注入漏洞(1)—Hack之路

SQL注入基础—Hack之路
  介绍SQL注入
SQL注入就是就是指Web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数带入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。一般情况下,开发人员可以使用动态SQL语句创建通用,灵活的应用。动态SQL语句是在执行过程中构造的,它根据不同的条件产生不同的SQL语句。当开发人员在运行过程中需要根据不同的查询标准决定提取什么字段,或者根据不同的条件选择不同的查询表时,动态低构造SQL语句会非常有用

  SQL注入的原理
SQL注入漏洞的产生需要满足以下两个条件。
参数用户可控:前端传给后端的参数内容是用户可以控制的
参数带入数据库查询:传入的参数吧拼接到SQL语句,且带入数据库查询。
当传入的ID参数为1’时,数据库执行的代码如下所示。
select * from users where id = 1′
这不符合数据库语法规范,所以会报错。当传入的ID的参数为and 1 = 1时,执行的SQL语句如下所示
select * from users where id = 1 and 1= 1
因为1=1为真,且where语句中id=1也为真,所以页面会返回与id=1相同的结果。当传入的ID参数为and 1=2时,由于1=2不成立,所以返回假,页面就会返回与id=1不同的结果,由此可以初步判断ID参数存在SQL注入漏洞,攻击者可以进一步拼接SQL语句进行攻击,致使数据库信息泄露,甚至进一步获取数据库权限等。

与MySQL注入相关的知识点
在详细介绍SQL注入漏洞前,先说下MySQL中与SQL注入漏洞相关的知识点。在MySQL5.0版本之后,MySQL默认在数据库中存放一个”information_schema”的数据库,在该库中,读者需要记住三个表明,分别是SCHEMATA,TABLES和COLUMNS。SCHEMATA表储存该用户创建的所有数据库的库名,我们需要记住该表中记录数据库名的字段为SCHEMA_NAME常规漏洞之一SQL注入漏洞(1)---Hack之路
SCHEMTA表
常规漏洞之一SQL注入漏洞(1)---Hack之路
TABLES表
常规漏洞之一SQL注入漏洞(1)---Hack之路
COLUMNS表
常用的Mysql查询语句和函数如下所示
Mysql查询语句
在不知道任何条件时,语句如下所示。
select要查询的字段名 FROM库名.表名
在知道一条已知条件时,语句如下所示
Select要查询的字段名FROM库名,表名 WHERE 已知条件的字段名=’已知条件的值
需要记住的几个函数
database()当前网站使用的数据库
version()当前网站用的数据库的版本
user()当前Mysql的用户

网站地址:https://www.hackzl.cn;发布者:hack之路,转转请注明出处:https://www.hackzl.cn/index.php/2020/09/19/%e5%b8%b8%e8%a7%84%e6%bc%8f%e6%b4%9e%e4%b9%8b%e4%b8%80sql%e6%b3%a8%e5%85%a5%e6%bc%8f%e6%b4%9e1-hack%e4%b9%8b%e8%b7%af/

发表评论

邮箱地址不会被公开。 必填项已用*标注