SQL注入类型与Sqlmap安装与使用详解(附Sqlmap安装包)

1、SQL注入简介

SQL注入是一种恶意用户通过Web页面使用SQL语句注入SQL命令的技术。攻击者可以绕过用户认证和访问限制,修改、删除数据库中的数据。在某些情况下,SQL注入甚至可以用来执行操作系统级的命令,攻击者入侵内网可能带来更大的威胁。

SQL注入的原理,就是开发时未对用户的输入数据(可能是 GET 或 POST 参数,也可能是 Cookie、HTTP 头等)进行有效过滤,直接带入 SQL 语句解析,使得原本应为参数数据的内容,却被用来拼接 SQL 语句做解析,也就是说,将数据当代码解析,最终导致 SQL 注入漏洞的产生。

接下来我们一起来看一个简单SQL语句:

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1

很明显可以看出,这句SQL语句显而易见是指从user表中进行查询,通过第一张表的第一列与输入进去的id进行校验。

这时如果我们向url里面添加:

?id=1'#

这是什么意思呢,很简单。1代表永真, ' 这个单引号是为了和原本sql语句中id前面的单引号形成闭合。#这个井字符是什么意思,相信有一部分人已经猜到了,这个符号是起一个注释的作用。将后面的东西全都注释掉,以便为了让自己的payload可以顺利的拼接进入sql语句。

我们通常先用?id=1 and 1=1 和?id=1 and 1=2,来判断是否为数字型闭合。若输入这两个语句的界面不同。则说明这是数字型闭合,反之则说明是字符型闭合。

若是数字型闭合我们就可以直接使用?id=1

猜你喜欢

转载自blog.csdn.net/qq_35029061/article/details/132639986