CTF教程: 从信息泄露开始

0x00 写在前面

这是CTF入门教程的第一篇. 所以, 在开始之前, 让我们先来明确我们要干什么:

.1 CTF是什么?

CTF, 即夺旗赛(Capture The Flag), 起源于1996年的DEFCON极客大会, 脱胎于信息安全实战, 是网络安全爱好者之间的竞技游戏.

CTF比赛分为Jeopardy(解题), Belluminar(中文译名不明), A&D(攻防)等模式. 同时又分为Misc(杂项), Web(网络攻防), Crypto(密码学), Pwn(二进制漏洞), Reverse(逆向工程), ICS(工控系统), BlockChain(区块链)等方向.

这一节是对Web方向中信息泄露和信息收集的简单介绍.

.2 怎么学习CTF?

至少对于本教程而言, 学习CTF的门槛并不高. 你只需要基本掌握一门编程语言(推荐C或Python), 会使用浏览器, 会使用Linux基本指令(包括git)即可.

根据我为数不多的参加线下赛的经历, CTF考验的并不是对知识的掌握, 而是快速学习的能力. 因此在掌握必要的知识后, 需要培养的其实是对漏洞的敏感度(俗称第六感).

.3 一些题外话

我正在策划为本教程搭建配套的靶机环境, 有条件的还请赞助一下(服务器也可以):

 

 


0x01 工具/环境准备

这一节的工具出乎意料地简单…

你需要一台Linux/Unix机器, 如果你在使用Windows10的话, 请在Microsoft Store中搜索Ubuntu然后安装即可(18.04LTS或20.04LTS随意.)

然后更换APT源, 在华为开源镜像站中选择Ubuntu, 然后根据提示操作, 或直接在终端中键入如下命令:

sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak #备份配置
sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
sudo apt update

接着安装curl(虽然说这一节好像不需要…)

sudo apt install curl

然后切回你的Windows系统, 安装Chrome或Firefox.

众所周知我是新时代共产主义接班人, 所以接下来以Firefox做演示.

原因无它, 软件商店没被墙而已.

本节需要的插件不多, 下面是链接:

Wappalyzer(网站技术分析)

Server IP(查看服务端IP)


0x02 信息泄露

.1 git泄露

对于git泄露, 推荐GitHacker

GitHacker是一个多线程工具,用于检测站点是否存在git源码泄漏,并能够将网站源代码下载到本地。值得一提的是,这个工具会将整个git repo恢复到本地,而不是像githack那样,只是简单的恢复到最新版本。如此一来,你就可以查看到开发人员的历史提交记录以及提交注释,以更好的掌握开发者的性格和心理,从而为进一步的代码审计奠定基础。

安装很简单, 直接在Linux终端中键入

pip3 install GitHacker

即可.使用也一样简单:

githacker --url http://domain/.git/ --folder result

.2 SVN泄露

当SVN隐藏文件夹暴露在外网时, 可以通过.svn/entrieswc.db获取源码等信息.

推荐工具dvcs-ripper

.3 gedit及vim备份文件

当使用gedit保存文件后, 当前目录下会生成一个后缀为~的文件, 文件内容就是刚刚保存过的文件内容.

当vim意外退出时, 会在当前目录下生成一个备份文件, 格式为.filename.swp. 对于这种文件 , 可以使用vim -r命令恢复内容.

.4 Google Hack

利用搜索引擎有争对性的搜索信息来对网络入侵的技术和行为。搜索引擎对于搜索的关键字提供了很多种语法,构造出特殊的关键字,能够快速全面的让攻击者挖掘到有价值的信息。

轻量级的搜索可搜索出一些遗留后门,不想被发现的后台入口,中量级的搜索出一些用户信息泄露,源代码泄露,未授权访问等等,重量级的则可能是mdb文件下载,CMS 未被锁定install页面,网站配置密码,SQL注入、远程文件包含漏洞等重要信息。

A | 逻辑运算

  • 逻辑与:AND

  • 逻辑或:OR

  • 逻辑非:- 或 NOT

  • 完整匹配:“关键词”

  • 通配符:*?

B | 进阶功能

intext

寻找正文中含有关键字的网页,例如:intext:后台登陆 将只返回正文中包含后台登陆的wang网页。

intitle

寻找标题中含有关键字的网页,例如:intitle:后台登陆 密码 将返回标题中包含黑客而正文中包含中国的网页。

allintitle

用法和intitle类似,只不过可以指定多个词,例如:alltitle:后台登陆 管理员 将返回标题中包含黑客和中国的网页。

inurl

将返回url中含有关键词的网页,例如:inurl:Login 将返回url中含有Login的网页。

inininurl: //admin/login.php

查找管理员登陆页面

inurl:/phpmyadmin/index.php

查找后台使用PMA的MySQL数据库管理页面

allinurl

用法和inurl类似,只不过可以指定多个词,例如:inrul:Login admin 将返回url中含有Login和admin的网页。

site

指定访问的站点,例如:site:baidu.com inurl:Login 将只在baidu.com中查找url中含有Login的网页。

filetype

指定访问的文件类型,例如:site:baidu.com filetype:pdf 将只fan返回baidu.com站点上文件类型为pdf的网页。

link

指定链接的网页,例如:link:www.baidu.com 将返回所有包含指向www.baidu.com的网页。

info

返回站点的指定信息,例如:info:www.baidu.com 将返回百度的一些信息。

查找网站后台

site:xxx.com intext:管理

site:xxx.com inurl:login

site:xxx.com intitle:后台

查看服务器使用的程序

site:xxx.com filetype:asp

site:xxx.com filetype:php

site:xxx.com filetype:jsp

site:xxx.com filetype:aspx

查看上传漏洞

site:xxx.com inurl:file

site:xxx.com inurl:load

Tips

  1. google查询是不区分大小写的。(除布尔操作符OR)

  2. google通配符(*仅代表搜索词组中的一个词,在一个词的开始或结尾使用星号和直接使用这个单词的效果相同。)

  3. Google会智能地保留一些内容,比如一些过时的词,一些不适合呈现的内容。

  4. 32个单词的限制(如一串英文单词,如果用*部分替换单词,可以扩展搜索单词的数量)

  5. 最常用的:“关键词”,双引号会使Google强制搜索包含关键字的内容。

.5 子域名查询

这方面有很多成熟的在线工具, 你也可以使用subDomainsBrute

.6 端口扫描

A | 安装:

命令:

apt install nmap

安装后可执行命令: nmap -h 查看帮助文档,如有帮助文档则表示安装成功。

B | 基本使用方法:

nmap -sT ip_address #TCP contect()
nmap -p 1-65535 -T4 -A -v ip #扫描1-65535(基本覆盖所有端口)
nmap -sU ip_address #UDP端口扫描

C | 生成报告

输出命令

-oN 文件名 #输出普通文件

-oX 文件名.xml #输出xml文件

.7 CMS指纹识别

还记得你刚刚装的wappalyzer?

现在, 访问wordpress.org

点击wappalyzer, 你应该会看到CMS项下的WordPress.

另外, 网上有大量成型的CMS指纹库, 你可以自行翻阅.

.8 目录遍历

https://github.com/maurosoria/dirsearch, 不多说

0x03 小结

信息泄露在CTF中并不作为一个单独的题目, 而往往是Web题目的一部分, 善用工具, 适当地开开脑洞, 就往往可以发现题目的突破口.

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容