sqli-labs靶场实现(一)【GET基于报错的SQL注入】(less-1~4、具体步骤+图文详解)

一)GET基于报错的SQL注入
  1)SQL注入的分类
  2)get基于报错的SQL注入发现
      less1(get型单引号字符型报错)
      less2(get型单引号数字型报错)
      less3(get型单引号+括号闭合字符型报错)
      less4(get型双引号字符型报错)
  3)get基于报错的SQL注入利用
      less1
      less2
      less3
      less4
  4)利用sqlmap测试

——————————————————————————————————————————————————


一)GET基于报错的SQL注入

1)SQL注入的分类

根据注入位置数据类型可以将SQL注入分为两类:

a)数字型:select * from 表名 where id=id值;
b)字符型:select * from 表名 where id='id值';


2)get基于报错的SQL注入发现

通过在url中修改对应的id值(例如:正常的数字、大数字、字符【单引号、双引号、括号】、反斜杠)来探测url中是否存在注入点。
注:url编码——将url中出现的特殊字符或者汉字变换为浏览器可以识别的内容。

url编码:
%27————'
%20————空格
%22————"

hex码:
0x3a————:
0x7E————~

sqli-labs靶场(less1-4的get型基于报错的SQL注入):

a)环境:
win7(有phpstudy):192.168.1.106
kali(在kali浏览器中访问win7中的靶场):192.168.1.
在这里插入图片描述
在这里插入图片描述

b)less1(get型单引号字符型报错)
I)根据less1的提示(请输入id作为有数值的参数):
在这里插入图片描述
构造url:

测试id的有效数值:

id=1(正常返回用户1的账号密码)
id=2(正常返回用户2的账号密码)
id=3(正常返回用户3的账号密码)
...
id=15(正常返回,但是此时已经没有用户了)

注:之所以不用 192.168.1.106/sqli/index.php?id=1 而是
   直接192.168.1.106/sqli/?id=1 是因为我们已经将index.php设置为默认的首页了,
   只要有设置默认页面即使没有将它加在url也可以,如果没有设置默认页面那么就一定要
   将index.php等页面加在url中。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结论:id的最大值(用户数量)为14

构造url:

判断参数id是否存在SQL注入:

id=1(正常)
id=1'(报错)

解析:
id=1’ 报错信息为:near ''1'' limit 0,1' at line 1【错误在’1’’ limit 0,1 附近】
I)先去掉报错信息自动为字符串加上的’ ‘就剩下 near '1'' limit 0,1 at line 1
II)我们构造url时输入的id值是 1',去掉1’ 就剩下 near '' limit 0,1 at line 1
III)猜测正确的SQL语句为:select login_name,password from admin where id='1' limit 0,1; (可见是单引号字符型)而我们构造后就变成:select login_name,password from admin where id='1'' limit 0,1; 多了一个单引号所以报错位置就是在 '14'' limit 0,1 这里。
在这里插入图片描述
c)less2(get型单引号数字型报错)
构造url:

判断参数id是否存在SQL注入:

id=1
id=1'

在这里插入图片描述
在这里插入图片描述
解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值