XCTF-Cat

Cat

  • 题目描述

    抓住那只猫!

  • 解题过程

    看这个提示,让输入域名,猜测是php下的命令执行,先试试

    看了下请求头,是ubuntu

    • 测试规则

      • 不能包含|
      • 不能包含&
      • 可以用十进制/十六进制/二进制ip
    • 去看了官方wp

      • 使用%80得到报错信息

        • 因为url编码使用的是16进制,x 80==d 128,ascii码的范围是0-127,所以会报错

        把报错信息渲染一下,可以看到这是django的错误页面,里面包含了数据库配置信息

        DATABASES	{'default': {'ATOMIC_REQUESTS': False,
                     'AUTOCOMMIT': True,
                     'CONN_MAX_AGE': 0,
                     'ENGINE': 'django.db.backends.sqlite3',
                     'HOST': '',
                     'NAME': '/opt/api/database.sqlite3',
                     'OPTIONS': {},
                     'PASSWORD': u'********************',
                     'PORT': '',
                     'TEST': {'CHARSET': None,
                              'COLLATION': None,
                              'MIRROR': None,
                              'NAME': None},
                     'TIME_ZONE': None,
                     'USER': ''}}
        
      • 使用@来传输文件内容

        • php(<5.5)的curl中,可以使用@前缀+绝对路径来发送文件
      • 访问@/opt/api/database.sqlite3,得到报错信息,内容是数据库内容,在里面有flag

  • 参考

    https://blog.csdn.net/stepone4ward/article/details/94615617

    https://blog.csdn.net/zz_Caleb/article/details/95041031

原文地址:https://www.cnblogs.com/R3col/p/13050331.html