ctfhub–信息泄露做题记录

ctfhub信息泄露

image-20220123001918522

目录遍历

题目背景

目录遍历是web中常见的基础操作,我们通常会通过目录的遍历来发现是否存在对我们有用的信息。

解答题目

首先打开靶机,启动环境,可以看到是一个Apach目录的遍历

目录遍历

  • 首先F12一下,看看有没有什么惊喜,但是没有什么收获。
  • 点开“点击开始寻找flag”

image-20220122233255742

image-20220123000413392

有两种思路:

  1. 一个一个点,挨个查询下列的子目录,可以在最后的3/4下找到flag.txt文件。
  2. 利用python脚本的requests库进行查询,脚本在下面。
#! /usr/bin/env python
# _*_  coding:utf-8 _*_
import requests
url = "http://challenge-88fe15103038d8b0.sandbox.ctfhub.com:10080/flag_in_here"
for i in range(5):
    for j in range(5):
        url_menu = url + "/" + str(i) + "/" + str(j)
        r = requests.get(url_menu)
        r.encoding = "utf-8"
        get_file = r.text
        if "flag.txt" in get_file:
            print(url_menu)

以上就是脚本,最后python3 find_flag.py运行即可

#!/usr/bin/env python
#-*- coding: utf-8 -*-
第一行注释事为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释市为了告诉Python解释器,按照UTF-8编码读取源代码,否则,在源代码中写的中文输出可能会有乱码。

PHPINFO

题目背景

phpinfo — 输出关于 PHP 配置的信息

输出 PHP 当前状态的大量信息,包含了 PHP 编译选项、启用的扩展、PHP 版本、服务器信息和环境变量(如果编译为一个模块的话)、PHP环境变量、操作系统版本信息、path 变量、配置选项的本地值和主值、HTTP 头和PHP授权信息(License)。

因为每个系统安装得有所不同,phpinfo() 常用于在系统上检查 配置设置预定义变量

phpinfo() 同时是个很有价值的、包含所有 EGPCS(Environment, GET, POST, Cookie, Server) 数据的调试工具。

解答题目

image-20220123001321369

点击“点击查看phpinfo”,进入如下界面:

image-20220123001520447

随手ctrl+f搜索一下flag:

image-20220123001619782

突然发现了宝藏:

ctfhub{780dc5e53d1c76308084bec3}
> 注意别把空格复制了,会导致提交错误噢!

提交正确。

备份文件下载

image-20220123002428480

网站源码

image-20220123002950073

题解一:

先按他给的线索进行python脚本扫描。脚本如下:

#! /usr/bin/env python
# _*_  coding:utf-8 _*_
import requests
url="http://challenge-6a34ded4464be765.sandbox.ctfhub.com:10800/"
list1=['web', 'website', 'backup', 'back', 'www', 'wwwroot', 'temp']
list2=['tar', 'tar.gz', 'zip', 'rar']
for i in list1:
    for j in list2:
        url_f=url+i+"."+j
        r=requests.get(url_f)
        if(r.status_code == 200):
            print(url_f)

image-20220123003628945

扫出了一个名为http://challenge-6a34ded4464be765.sandbox.ctfhub.com:10800/www.zip的文件

在网址栏输入得到一个文件:

image-20220123003758332

image-20220123003913633

打开flag文件:

image-20220123003946492

用上面的网站去访问该文件就可以得到flag:

image-20220123004123797

ctfhub{110539f8cc74728417c0e261}

提交即可!!!

题解二:

使用dirsearch进行扫描.git泄露

python3 dirsearch.py -u challenge-6a34ded4464be765.sandbox.ctfhub.com:10800 -e*

image-20220123010122609

得到如上结果(我自己没有扫出来不知道是什么原因)

image-20220123012354564

然后和上面操作一样就可以了。

题解三:

image-20220123011259911

使用御剑后台扫描工具扫描(本题中超时要设置为10s , 一般来说设置为3s即可)

得到文件,依上面步骤继续操作即可得到最终的flag

在这里插入图片描述

题解四:

使用burpsuite根据字典进行子域名扫描,同样可得到上述文件及flag。

bak文件

背景

当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。

题解一:

首先打开靶场,得到下列图片:

image-20220123102428764

题目上说了是bak泄露了,就在地址栏后面接上index.php.bak。出现一个下载文件,如图:

image-20220123102658939

我这上面这个显示是因为我安装了autoCAD,这个软件也有bak文件,同样是备份文件,换个打开方式就可以了。

image-20220123102948190

Capture the flag!

ctfhub{b583b93ab1b0531b80dee8bc}

题解二:

在cmder/cmd 利用 curl 也可以得到flag,且不用下载文件(强迫症狂喜!!!)

image-20220123103339830

题解三:

不看题目,直接拿dirsearch扫描。可以看到:

image-20220123110853170

????what

不知道是网上的wp是怎么扫出来的,总之扫出来了就照着上面的做。(猜测可能是被ctfhub禁掉了)

vim缓存

题目背景

当vim异常退出时,都会生成一个用于备份缓冲区内容的swp临时文件,来记录了用户在非正常关闭vim编辑器之前未能及时保存的修改,用于文件恢复。

  • 第一次产生的交换文件名为 .index.php.swp

  • 再次意外退出后,将会产生名为 .index.php.swo 的交换文件

  • 第三次产生的交换文件则为 .index.php.swn

和bak文件题一样,使用curl命令获取index.php.swp文件,得到flag

题解一:

打开环境,可以看到:

image-20220123113142901

提示是vim缓存漏洞,可以尝试访问./index.php.swp,得到文件。

再使用vim -r恢复文件。

vim -r index.php.swp

image-20220123113656754

得到flag!

题解二:

尝试运行下列命令:

curl http://challenge-219f0974df40800e.sandbox.ctfhub.com:10800/.index.php.swp

image-20220123114059947

按照提示输入--output -

image-20220123114144382

同样可以得到flag!

.DS_Store

背景

.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单。

题解一:

试着扫描一下!(没有扫描成功过,不知道为啥,可能是ctfhub改了以后不让扫!)

Python-dsstore打开文件DS_Store

image-20220123121840292

在浏览器访问即可得到flag:

image-20220123122030155

题解二:

下载得到的文件打开发现是一个二进制文件,编译得到字符串:

image-20220123141608172

然后和上面一样就行。

题解三:

使用ds_store_exp脚本来读取DS_Store文件也可以得到flag!

Usage: python ds_store_exp.py http://www.example.com/.DS_Store

我这边用的是win_server2012,运行脚本得到:

image-20220123140726948

进入目录:

image-20220123141340650

image-20220123141354423

image-20220123141419286

image-20220123122833721

Git泄露

Log

背景

当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。请尝试使用BugScanTeam的GitHack完成本题

题解:

首先进入环境:

image-20220123143532698

按照题目描述的是一个git泄露,利用githack进行进行文件恢复。

我尝试了BugScanTeam的GitHack但是一直报错,可能是没有维护的原因?

image-20220123161830538

补充:

这个脚本没有错是我的使用方式有错,这个脚本兼容的是python2的环境,所以改用成python2 GitHack.py xxx即可。

image-20220123195011449

所以改用lijiejie/GitHack,使用命令GitHack.py http://challenge-35c195fe89d8f778.sandbox.ctfhub.com:10800/.git/ 进行扫描,结果:

image-20220123152813867

我以为好了,打开文件一看:

image-20220123162240532

麻了!

使用scrabble工具进行操作

./scrabble http://challenge-d11e15df0759ddba.sandbox.ctfhub.com:10800/

image-20220123161123294

使用git log命令查询历史记录,当前版本为remove flag,于是使用git reset命令进行版本切换,在目录下发现flag文件得到flag。

image-20220123161434737

顺利解决得到flag,感谢《从0到1:ctfer成长之路》的推荐!

Stash

背景

stash可以把当前工作现场“保存”起来,等以后恢复现场后继续工作。

git stash list 查看保存的工作现场列表    
git stash pop 恢复工作现场    
git stash show 显示做了哪些改动  
git stash show -p 显示第一个保存的工作现场的改动 

题解

首先打开环境,还是老样子

image-20220123195850221

先用GitHack扫描恢复一下

python2 GitHack.py http://challenge-40545d1d900ad6a1.sandbox.ctfhub.com:10800/.git/

image-20220123200312807

来到目录里的dist目录,里面有扫描出来的结果,在终端内打开恢复。

image-20220123200357423

  • 根据题目的提示,使用git stash list命令查看保存的工作列表,发现有一个stash@{0}的改动。
  • 使用git stash pop命令恢复工作现场,在目录下给出有flag的txt文件,得到flag。
  • 使用git stash show -p命令显示第一个保存的工作现场的改动,得到flag。(cat 7737280804297.txt也可以)

image-20220123200805204

Index

背景

当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。

题解

GitHack进行恢复,直接可以发现文件下的flag:

image-20220123202614661

image-20220123202553013

image-20220123202517036

SVN泄露

背景:

当开发人员使用 SVN 进行版本控制,对站点自动部署。如果配置不当,可能会将.svn文件夹直接部署到线上环境。这就引起了 SVN 泄露漏洞。

SVN(subversion)是源代码版本管理软件,造成SVN源代码漏洞的主要原因是管理员操作不规范。“在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。”(可以利用.svn/entries文件,获取到服务器源码、svn服务器账号密码等信息)

SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码。

题解:

打开环境:

image-20220123202928741

svn1.6及以前版本会在项目的每个文件夹下都生成一个.svn文件夹,里面包含了所有文件的备份,文件名为.svn/text-base/文件名.svn-base

svn1.7及以后版本则只在项目根目录生成一个.svn文件夹,里面的pristine文件夹里包含了整个项目的所有文件备份。

安装dvcs-ripper

git clone https://github.com/kost/dvcs-ripper

安装需要的perl模块

sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl

获取SVN

perl rip-svn.pl -v -u http://www.example.com/.svn/

使用dvcs-ripper获取SVN文件夹

image-20220123204303028

进入.svn文件,由于SVN中的pristine文件夹里包含了整个项目的所有文件备份,里面的文件很少,打开文件检查,很容易在第一个文件中找到flag文件。

image-20220123204921676

除了一个一个点,在命令行进行查找也是可行的,如下:

image-20220123210012593

HG泄露

背景

当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞。

题解

打开环境看到:

image-20220123212831549

已知是.hg泄露,则运行下列命令:

sudo perl rip-hg.pl -v -u http://challenge-5bd46808b5fa4ab3.sandbox.ctfhub.com:10800/.hg/

==-v 应该是显示详细的选项,最好顺带写上==

然后:

image-20220123214031260

==执行过程有大量文件未找到,查看已旦拿到文件,进一步访问txt文件==

image-20220123214145110

得到flag!!!!

image-20220123214336004

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇