# 信息收集
面对任何一个问题,尽全力去熟悉他们我们才有可能更好的解决他们,这个熟悉的过程就是信息收集
# 1 查看源代码
# 1. 直接查看 view-source
-
主要注意源代码的中的注释,类似于 <!–>
注释里面一般藏有一些敏感信息,比如有关路径,题目的有关信息,甚至是 flag
-
源代码中链接的一些奇怪路径 (网站后台目录,编辑器)
根据 ctfshow-web382
, 可以看到 3 链接有一个链接比其他链接多了一个目录,逐个路径 alsckdyf/layui/css
, alsckdyf/layui
, alschdyf/
访问就有可能发现有意思的东西,比如说最后一个就是 后台目录
,甚至可以尝试去除根目录 /layui/css
解释:
- 这种情况,就有可能是个 css 页面前台用到了,后台也用到了,但是相关人员误把后台的 css 目录用作前台这就暴露了后台的路径
注意:
- 根据文件路径找到相关的编辑器 ctfshow-web14 ctfshow-web388
- 可以利用编辑器上传文件,允许上传 html,zip 等文件,我们可以利用 zip 文件上传一句话给日志文件之后执行之后包含目录访问一句话执行,详细操作可以参考 ctfshow-web388wp
- 根据源码中的编辑器路径直接网站后台访问文件
-
如果没办法查看源代码尝试利用
Burpsuite
, 查看数据包,比如web2/3
-
抓包过程可以同时注意
cookie
的设置,服务器的类型等等
# 2. 抓包查看的情况:
flag
放在 cookie
的情况:
# 3. 查看源代码的方式
- 右键查看源代码 F12
- 打开开发者工具 Ctrl+U 查看
- Burp 抓包查看
- 从 js 代码中获取 flag
# 2 扫目录
# 1. 常见的扫描工具
-
Dirsearch:
Usage:
python3 dirsearch.py -u "http://www.example.com/"
- Dirmap
# 2. 常见的目录
-
robots 协议
访问
http://www.example.com/robots.txt
,这个文件会告诉我们哪些文件可以爬,哪些文件不可以用作爬虫,但在 ctf 题目中,常用来提示题目有关的重要文件 -
install 安装目录
# 3 源码泄漏 (敏感目录的泄漏)
# 1. git 泄漏
-
# 漏洞描述:
- 开发者在使用 git 作为版本控制时,在一个目录中初始化一个仓库以后,会在这个目录下产生一个名叫
.git
的隐藏文件夹,这个文件夹里面保存了这个仓库的所有版本等一系列信息。 - 如果服务器将
.git
文件夹放在了 web 目录下,就可能导致攻击者利用.git
文件夹内的信息获取应用程序所有源代码。
-
# 漏洞危害:
- 攻击者利用此漏洞可获取应用程序源代码,分析源码进行进一步攻击利用;
- 攻击者利用此漏洞可获取数据配置信息,可能直接导致应用程序用户信息泄漏,设置获取服务器权限;
-
# 修复建议
- 删除网站目录下的
.git
文件 - 中间件上设置
.git
目录访问权限,禁止访问
- 删除网站目录下的
-
# 相关工具:
-
scrabble
scrabble http://www.example.com/
-
githack
python2 GitHack.py http://cb28608e-55f8-4dd3-98c7-f3a74b2abb0d.node3.buuoj.cn/.git/
工具使用完之后,都会生成一个
index.html
或者是新的文件夹
,查看。。。 -
# 2. .svn
泄漏
-
# 漏洞描述:
-
使用
svn
管理本地文件代码的过程,会自动生成一个.svn
的文件夹 — 包含这网站的重要信息 -
如果网站管理员在发布网站的时候,没有使用到处功能,而是直接复制微网站后台的文件夹,就会导致
.svn
文件暴露在外网环境 -
黑客可以借助其中包含的用于版本信息追踪的
entries
文件,获取站点信息
-
-
# 漏洞危害:
- 攻击者可以利用
.svn/entries
文件,查找网站的应用程序源代码、svn 服务器账号密码等信息。 - SVN 产生的
.svn
目录还包含了.svn-base
结尾的源代码文件副本(低版本 SVN 具体路径为text-base
目录,高版本 SVN 为pristine
目录),如果服务器没有对此类后缀做解析,黑客则可以直接获得文件源代码。 - 攻击者利用该漏洞可下载网站源代码,获得数据库的连接账号密码等敏感信息;
- 攻击者可通过获取的源代码进一步分析出新的系统漏洞,从而进一步入侵系统;
- 攻击者可以利用
-
# 修复建议:
- 查找服务器上所有.svn 隐藏文件夹,删除。
- 开发人员在使用 SVN 时,严格使用导出功能,禁止直接复制代码。
# 3. HG 泄露
-
Mercurial 是一种轻量级分布式版本控制系统,使用
hg init
的时候会生成.hg。 -
漏洞利用工具:dvcs-ripper
# 4. 文件恢复 Vim 临时文件缓存)
-
# 漏洞描述:
- 有时候扫目录会出现
.filename.swp
, 这就是在 vim 编辑 filename 时意外退出而产生的恢复文件
- 有时候扫目录会出现
-
# vim 文件备份以及缓冲:
vim
编辑的文件,在vim
异常退出的时候,会生成.filename.swp
的交换文件,用来恢复文件依次为.swo``.swn
vim
编辑的文件,在修改的时候,会自动生成一个备份文件 (修改之前的版本)
-
# 恢复文件的命令
vi -r .filename.swp
查看恢复之后的文件
# 5. 获取网站指纹信息:
-
# 漏洞描述:
一个网站的 Banner 信息,即是该网站服务器对外现实的一些基础信息。
比如:
- 知道该网站的 Web 框架是什么,即可通过搜索引擎进行查找该 Web 框架的历史漏洞;
- 或者是了解到了该网站的系统类型,即可利用相关特性以及漏洞。
-
# 搜集指纹库:
- GitHub 公开的 CMS 指纹库
-
# 工具使用:
- Wappalyzer https://github.com/chorsley/python-Wappalyzer
-
技巧:
在网站上随意输入一些 URL,有时会通过 404 页面或者是 302 跳转页面 发现一些有用信息。
-
例如:开启了 Debug 选项的 ThinklPHP 网站会在一些错误提示页面显示 ThinkPHP 版本。
-
gedit 备份文件:
Linux 中,使用 gedit 编辑器保存文件
flag
之后,会在当前目录下生成一个flag~
的文件,内容也是flag
文件当中的内容。可通过浏览器访问该文件
~
,即可得到源代码
-
phps
泄漏:-
就是 php 的源代码文件,通常用于提供给用户(访问者)查看 php 代码,
-
因为用户无法直接通过 Web 浏览器看到 php 文件的内容,所以需要用 phps 文件代替。
-
其实,只要不用 php 等已经在服务器中注册过的 MIME 类型为文件即可,但为了国际通用,所以才用了 phps 文件类型。 它的 MIME 类型为:text/html, application/x-httpd-php-source, application/x-httpd-php3-source。
-
访问相关文件的
phps
后缀名
-
-
网站备份文件泄露 (压缩包)
常见 .rar、.zip、.7z、.tar、.gz、.tar.gz、.bz2、.tar.bz2、.sql、.bak、.dat、.txt、.log、.mdb
www.zip 等这些都是可以用目录工具扫出来 ,之后进行查看
-
# 4 收集域名信息
获取域名注册信息:该域名 DNS 服务器信息、注册人联系信息
# 1. Whois 查询:
查询域名是否已被注册以及已被注册域名的详细信息(域名所有人、域名注册商等)
-
收集网络注册信息、注册的域名、IP 地址
- 收集注册人姓名、邮箱、电话、地址等,然后可通过大量的
搜索引擎
与社交网站
得到域名所有人的很多信息 - 中小站点而言,域名所有人经常是
管理员
- 在线工具:
- 站长之家 http://whois.chinaz.com/
- Virus Total https://www.virustotal.com/gui/
- 爱站工具网 https://www.aizhan.com/cha/nuc.edu.cn/
- Kali whois 查询
- 收集注册人姓名、邮箱、电话、地址等,然后可通过大量的
# 2. 备案信息查询
国家信息产业部对网站的一种管理,为防止在网上从事非法活动。主要针对国内网站,搭建在国外的网站,不需要备案。
- 天眼查 https://www.tianyancha.com/
- ICP 备案查询网 https://www.beianx.cn/
# 3. 历史解析记录
-
http://www.jsons.cn/nslookup/
-
https://zijian.aliyun.com/
-
dns 检查查询链接
- TXT 记录,一般指为某个主机名或域名设置的说明。
- A 记录,一般为自己域名解析的 IP
通过 dns 检查查询 flag
# 5 寻找真实 IP
# 1. 判断是否存在 CDN
-
ping 目标域名,观察域名解析情况(发现显示的是 ping 其他网站)
-
nslookup:发现返回时多个 IP 的话,多半使用了 CDN
-
在线网址 :
-
全国多地 ping 服,对比多个地区 ping 出的 IP 结果是否一致。
-
站长工具:http://ping.chinaz.com/
-
全球 ping:https://www.wepcc.com
-
17CE:https://www.17ce.com
-
IPIP:https://www.ipip.net/ip.html
-
# 2. 不存在 CDN
- 直接进行 https://site.ip138.com
# 3. 存在 CDN
CDN 高速缓存服务器,主要解决因传输距离与不同运营商节点在承德网络速度性能低下的问题。把用户经常访问的静态数据资源直接缓存到节点服务器上,用户再次请求时,会直接分发到离用户较近的节点服务器来响应,只有用户有实际数据交互时才会从远程 WEB 服务器上进行响应。
-
如果渗透目标购买了 CDN 服务器,我们直接进行 ping 目标的域名,得到的不是真正的 Web 服务器,而是离我们最近的一台 CDN 服务器,导致我们无法直接得到真实的 IP 范围。
-
绕过 CDN 寻找真实 IP
- 分站域名,ping 二级域名
- ping 目标域名,观察域名解析情况(发现显示的是 ping 其他网站)
- nslookup:发现返回时多个 IP 的话,多半使用了 CDN
-
国外代理访问
- 在线代理网站
-
查询域名解析记录
- 网站
- 抓取目标网站相应 APP 包
- CloudFlare http://www.crimeflare.us/cfs.html#box
# 6 搜索引擎
# 1. Google 搜索引擎:
可以搜索 数据库文件、SQL 注入、配置信息、源代码泄露、未授权访问、robots.txt 等敏感信息
关键字 | 目的 |
---|---|
site | 指定域名 |
inurl | url 中存在关键字的网页 |
intext | 网页正文当中的关键字 |
filetype | 指定文件后缀、扩展名,即文件类型 |
intitle | 网页标题中的关键字 |
link | 返回所有和其做了链接的 url |
info | 查找指定站点的一些基本信息 |
cache | 查找某些内容的缓存 |
site: nuc.edu.cn | |
inurl:login.php | |
inurl:admin/login.php intitle:管理 | |
intitle:网络安全 | |
intext:SQL注入 | |
link:baidu.com | |
filetype:mdb | |
查找后台地址: | |
site:域名inurl:login|admin|manage|member|admin_login|login_admin|system|login|user|main|cms | |
查找文本内容: | |
site:域名 intext:管理|后台|登陆|用户名|密码|验证码|系统|admin|login|sys|managetem|password|username | |
查找可注入点: | |
site:域名 inurl:aspx|jsp|php|asp | |
查找上传漏洞: | |
site:域名 inurl:file|load|editor|Files | |
找eweb编辑器 | |
site:域名 inurl:ewebeditor|editor|uploadfile|eweb|edit | |
存在的数据库: | |
site:域名 filetype:mdb|asp|# | |
查看脚本类型: | |
site:域名 filetype:asp/aspx/php/jsp | |
迂回策略入侵: | |
inurl:cms/data/templates/images/index/ | |
Shodan | |
Fofa | |
Zoomeye |
# 7 子域名信息收集
# 1. 子域名检测工具:
- Layer 子域名挖掘机
- subDomainsBrute 可爆破出三级四级甚至五级等不易被探测到的域名
https://github.com/lijiejie/subDomainsBrute
cd /opt/ | |
git clone https://github.com/lijiejie/subDomainsBrute.git | |
#用法 | |
python subDomainsBrute.py [options] target.com | |
#实例 | |
python subDomainsBrute.py csdn.net | |
#注意 | |
windows 在python路径下的script文件夹中需要执行 | |
pip install dnspython gevent | |
pip install aiodns |
Options: | |
--version 显示版本号并退出 | |
-h, --help 帮助 | |
-f FILE 指定暴力猜解字典,默认使用subnames.txt. | |
--full 全扫描,使用subnames_full.txt | |
-i, --ignore-intranet | |
忽略不想采集的IP地址 | |
-t THREADS, --threads=THREADS | |
扫描线程数,默认200 | |
-p PROCESS, --process=PROCESS | |
扫描进程数,默认为6 | |
-o OUTPUT, --output=OUTPUT | |
输出文件名称 {target}.txt |
-
Sublist3r
-
wydomain https://github.com/ring04h/wydomain
-
在线网址:
子域名爆破网站 https://phpinfo.me/domain/
-
IP 反查绑定域名网站
https://dns.aizhan.com/
https://site.ip138.com
http://dns.aizhan.com/
https://hackertarget.com/find-dns-host-records/
https://dnsdumpster.com/
www.virustotal.com
-
证书透明度(CT)公开日志枚举
搜索引擎搜索公开的 CT 日志
https://crt.sh
https://censys.io
# 8 收集端口信息
# 1. 扫描工具:
- Nmap
-
Masscan
-
ZMap
-
御剑 TCP 端口扫描
# 2. 常见端口以及相应的攻击手段
# 9 探针信息
# 1. PHP 探针
php 探针 是用来探测空间、服务器运行状况和 PHP 信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。
常用 4 款 PHP 探针
如果有 phpinfo 界面
,尝试 crtrl+f
搜索 flag
字样,还有一些其他的重要信息
# 10 CTF Show 思路总结
-
第一步:查看 源代码
- 右键查看源代码
-
F12 打开开发者工具
-
Ctrl + U 查看源代码
-
Burp 抓包查看
-
抓包 可能发现一些有用信息
-
robots.txt
-
phps 源代码泄露
-
下载源码文件、网站备份文件
-
版本控制不要部署到生产环境中
.git .svn
-
Vim 缓存
.文件名.php.swp .文件名.php.swo .文件名.php.swn
-
cookie 的重要性
-
域名、子域名 信息搜集
nslookup 在线网站
-
Banner 等公开信息
管理员密码 QQ QQ邮箱等 第三方软件查个人信息
-
技术文档
-
对应编辑器漏洞
-
探针 (phpinfo)
-
前端源码 密钥泄露
-
db.mdb