0x00 写在前面
这是CTF入门教程的第一篇. 所以, 在开始之前, 让我们先来明确我们要干什么:
.1 CTF是什么?
CTF, 即夺旗赛(Capture The Flag), 起源于1996年的, 脱胎于信息安全实战, 是网络安全爱好者之间的竞技游戏.
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做演示.
原因无它, 软件商店没被墙而已.
本节需要的插件不多, 下面是链接:
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/entries
或wc.db
获取源码等信息.
推荐工具
.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
-
google查询是不区分大小写的。(除布尔操作符OR)
-
google通配符(*仅代表搜索词组中的一个词,在一个词的开始或结尾使用星号和直接使用这个单词的效果相同。)
-
Google会智能地保留一些内容,比如一些过时的词,一些不适合呈现的内容。
-
32个单词的限制(如一串英文单词,如果用*部分替换单词,可以扩展搜索单词的数量)
-
最常用的:“关键词”,双引号会使Google强制搜索包含关键字的内容。
.5 子域名查询
这方面有很多成熟的在线工具, 你也可以使用
.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?
现在, 访问
点击wappalyzer, 你应该会看到CMS项下的WordPress.
另外, 网上有大量成型的CMS指纹库, 你可以自行翻阅.
.8 目录遍历
, 不多说
0x03 小结
暂无评论内容