[渗透测试]热门搜索引擎推荐— — fofa篇
[渗透测试]热门搜索引擎推荐— — fofa篇
免责声明:本文仅用于分享渗透测试工具,大家使用时,一定需要遵守相关法律法规。
除了fofa,还有很多其他热门的,比如:shodan、奇安信的鹰图、钟馗之眼等,这里就不一一介绍了,感兴趣的同学可以下来自行了解。想要了解shodan使用的可以看下面这篇文章:
- https://blog.csdn.net/weixin_45565886/article/details/145461374?spm=1001.2014.3001.5501
1. 介绍
fofa可以理解为中国版的shodan,FOFA(Fingerprinting Organizations with Advanced Tools)是一家总部位于中国的网络安全公司提供的一款网络搜索引擎,专注于帮助用户收集和分析互联网上的设备和服务信息。其主要功能包括:
- 设备指纹识别: FOFA 可以通过对设备的指纹信息进行识别,帮助用户发现和查找特定类型的设备。
- 漏洞扫描: FOFA 提供了一些漏洞扫描功能,可以帮助用户检测目标设备中可能存在的漏洞。
- 定制搜索: 用户可以使用 FOFA 的搜索语法和过滤器,根据特定的条件和关键词来执行定制搜索,以找到目标设备和服务。
- 图形化界面: FOFA 提供图形化的搜索界面,使用户能够直观地查看搜索结果、图表和图谱,从而更好地理解互联网上的设备布局。
- 历史数据: FOFA 记录了历史搜索结果,用户可以查看设备和服务的历史信息,帮助他们了解网络的发展和变化。
- API 支持: FOFA 提供了 API,使用户能够通过编程方式访问其搜索引擎,从而集成 FOFA 的功能到自己的应用程序或工作流程中。
2. 使用
- 进入官网:https://fofa.info/
- 搜索框输入内容,并点击搜索
- 查看服务技术信息
3. 常用语法
官方教程:https://fofa.info/
3.1 指定标题:title=“管理后台”
3.2 指定域名:domain=“baidu.com”
搜索所有子域名
3.3 指定host:host=“qq.com”
搜索host内所有带有qq.com的域名
浏览器中的 host 头可能与访问的域名不一致,这通常是由于重定向、代理或 DNS 解析等原因导致的
例:
- 你访问的域名是 cloud.baidu.com,但浏览器中的 Host 是 fclog.baidu.com。
- 这种情况可能是由于以下原因:
- 重定向:服务器可能将请求重定向到 fclog.baidu.com,导致 Host 头被修改。
- 代理或中间件:某些代理服务器或中间件可能会修改 Host 头。
- DNS 解析:域名解析可能指向了 fclog.baidu.com 的 IP 地址。
3.4 指定ip:ip=“10.63.x.x” / ip=“10.16.1.0/16”
指定单一ip或根据ip段来进行搜索
3.5 指定请求体:body=“后台”
例如:我们搜索微博的登录后台
body=“后台” && domain=“weibo.com”
3.6 指定服务器:server=“Apache”
例如:Apache被爆出有漏洞,我们就可以通过server进行过滤
3.7 指定城市:city=“beijing”
4. 实战
下面将演示弱口令爆破ActiveMQ管理后台
- fofa搜索:org!=“Hangzhou Alibaba Advertising Co.,Ltd.” && body=“ActiveMQ” && port=“8161”
- 点击第一个链接进入网站,并在网址后输入/admin 进行管理后台
- Active mq默认账户是 admin/admin,我们尝试输入,发现成功登录后台,可任意操作消息队列,包括删除等高危操作
5. tips:高级用法
5.1 查找未授权访问漏洞
title=“401 Unauthorized” || title=“403 Forbidden” || title=“404 Not Found”
原理:
- 401 Unauthorized:表示未授权访问,通常出现在需要认证但未提供凭证的场景。但若系统配置错误(如未正确关闭调试接口),可能允许绕过认证直接访问敏感接口。
- 403 Forbidden:表示禁止访问,但某些目录或文件(如备份文件、配置接口)因权限设置错误可能被直接访问。
- 404 Not Found:虽然表示资源不存在,但结合路径遍历漏洞(如 /admin/…/backup.zip)可能暴露本应隐藏的文件。
漏洞逻辑:
这些HTTP状态码可能暴露未正确配置权限的接口或文件,攻击者可通过进一步探测确认是否存在未授权访问。
5.2 查找弱口令漏洞
方式一:title=“401 Unauthorized” && body=“input type=password” && status_code=200
方式二:body=“<input type=“password””
原理:
- title=“401 Unauthorized”:表明页面需要认证。
- body=“input type=password”:页面包含密码输入框,说明是登录接口。
- status_code=200:页面实际返回200(成功),但需要认证,说明接口暴露但未正确配置(如未启用强制HTTPS),可能允许暴力破解或默认口令登录。
漏洞逻辑:
通过定位未正确保护的登录页面,结合常见弱口令(如admin/admin)尝试登录。
5.3 查找文件上传漏洞
方式一:title=“Upload” && body=“form enctype=multipart/form-data method=post”
方式二:body=“<form[>]*?enctype=“multipart/form-data”[>]*?>”
原理:
- enctype=multipart/form-data:表示表单支持文件上传。
- title=“Upload”:页面标题包含“上传”关键词,可能为上传功能页。
漏洞逻辑:
文件上传功能若未对文件类型、后缀或内容进行严格校验,攻击者可上传恶意文件(如Webshell)控制服务器。
5.4 查找CMS漏洞
title=“Powered by WordPress” || title=“Powered by Joomla” || title=“Powered by Drupal”
原理:CMS(内容管理系统,如WordPress、Joomla)会在页面标题或源码中标识自身版本。
漏洞逻辑:
已知CMS的特定版本存在公开漏洞(如插件漏洞、核心RCE),攻击者可通过版本匹配快速定位目标。
5.5 查找Web漏洞
title=“404 Not Found” || title=“403 Forbidden” || title=“401 Unauthorized” || title=“500 Internal Server Error” || title=“502 Bad Gateway” || title=“503 Service Unavailable” || title=“SQL Error” || title=“ASP.NET Error”
原理:
- 5xx错误(如500、503):可能暴露后端代码异常(如未处理的异常信息)。
- SQL Error:直接显示数据库报错信息,可能存在SQL注入漏洞。
漏洞逻辑:
错误信息可能泄露敏感数据(如数据库结构),或为漏洞利用提供线索(如SQL注入、路径遍历)。
5.6 查找未加密的数据库
title=“phpMyAdmin” || title=“MySQL” || title=“phpPgAdmin” || title=“PostgreSQL” || title=“Microsoft SQL Server” && body=“input type=password”
原理:
- phpMyAdmin、phpPgAdmin:数据库管理工具的默认页面标题。
- body=“input type=password”:页面包含密码输入框,表明是登录接口。
漏洞逻辑:
数据库管理界面若暴露在公网且未设置强密码,攻击者可通过爆破或默认凭证登录,直接操作数据库。
5.7 查找存储型XSS漏洞
body=“textarea” && body=“input type=text” && body=“input type=password”
原理:textarea、input标签:常见于用户输入表单(如评论框、注册页)。
漏洞逻辑:
若输入内容未经过滤直接存储并展示,攻击者可注入恶意脚本(如 ),触发存储型XSS。
5.8 查找常见漏洞指纹(特征)
title=“404 Not Found” || title=“403 Forbidden” || title=“401 Unauthorized” || title=“500 Internal Server Error” || title=“502 Bad Gateway” || title=“503 Service Unavailable” || title=“SQL Error” || title=“ASP.NET Error” || title=“404” || title=“Login - Powered by Discuz” || title=“Login - Powered by UCenter” || title=“Powered by DedeCMS” || title=“Powered by PHPWind” || title=“Powered by discuz” || title=“Powered by phpMyAdmin” || title=“Powered by phpwind” || title=“Powered by vBulletin” || title=“Powered by wordpress” || title=“phpMyAdmin” || title=“phpinfo” || title=“Microsoft-IIS” || title=“Joomla” || title=“Drupal” || title=“WordPress” || title=“Apache Tomcat” || title=“GlassFish Server” || title=“nginx” || title=“Oracle HTTP Server”
原理:
- 特定标题或标识符可精准匹配目标系统(如 Powered by DedeCMS 表示织梦CMS)。
- 常见指纹识别方式:
- md5:一些图片、文件的md5等,有些网站是通过开源框架开发的,可能不会修改默认的图标等,这是我们就可以通过爬虫进行爬取并比对md5版本来确认目标站软件的版本等信息
- 关键字:先访问首页或特定页面如robots.txt等,通过正则的方式去匹配某些关键字,如Powered by Discuz、dedecms等。
或者可以构造错误页面,根据报错信息来判断使用的CMS或者中间件信息,比较常见的如tomcat的报错页面。
漏洞逻辑:
已知CMS或中间件(如Apache Tomcat)的特定版本存在公开漏洞,攻击者可通过指纹识别快速定位。
5.9 查找远程命令执行漏洞
body=“<form method=“post” enctype=“multipart/form-data” action=”\S*/index.php" name=“form” id=“form”>"
原理:
- action=“\S*/index.php”:表单提交到动态脚本(如PHP),可能包含未过滤的用户输入。
- enctype=“multipart/form-data”:支持文件上传,可能触发文件解析漏洞。
漏洞逻辑:
若后端代码对用户输入(如文件名、参数)未做过滤,攻击者可构造恶意请求执行系统命令(如 ; cat /etc/passwd)。
参考文章:
https://blog.csdn.net/2302_82189125/article/details/135935575
https://www.freebuf.com/sectool/268246.html