[渗透测试]热门搜索引擎推荐— — fofa篇

[渗透测试]热门搜索引擎推荐--- --- fofa篇

免责声明:本文仅用于分享渗透测试工具,大家使用时,一定需要遵守相关法律法规。

除了fofa,还有很多其他热门的,比如:shodan、奇安信的鹰图、钟馗之眼等,这里就不一一介绍了,感兴趣的同学可以下来自行了解。想要了解shodan使用的可以看下面这篇文章:

1. 介绍

fofa可以理解为中国版的shodan,FOFA(Fingerprinting Organizations with Advanced Tools)是一家总部位于中国的网络安全公司提供的一款网络搜索引擎,专注于帮助用户收集和分析互联网上的设备和服务信息。其主要功能包括:

  1. 设备指纹识别: FOFA 可以通过对设备的指纹信息进行识别,帮助用户发现和查找特定类型的设备。
  2. 漏洞扫描: FOFA 提供了一些漏洞扫描功能,可以帮助用户检测目标设备中可能存在的漏洞。
  3. 定制搜索: 用户可以使用 FOFA 的搜索语法和过滤器,根据特定的条件和关键词来执行定制搜索,以找到目标设备和服务。
  4. 图形化界面: FOFA 提供图形化的搜索界面,使用户能够直观地查看搜索结果、图表和图谱,从而更好地理解互联网上的设备布局。
  5. 历史数据: FOFA 记录了历史搜索结果,用户可以查看设备和服务的历史信息,帮助他们了解网络的发展和变化。
  6. API 支持: FOFA 提供了 API,使用户能够通过编程方式访问其搜索引擎,从而集成 FOFA 的功能到自己的应用程序或工作流程中。

2. 使用

  1. 进入官网:https://fofa.info/
  2. 搜索框输入内容,并点击搜索
  3. 查看服务技术信息

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管理后台

  1. fofa搜索:org!="Hangzhou Alibaba Advertising Co.,Ltd." && body="ActiveMQ" && port="8161"
  2. 点击第一个链接进入网站,并在网址后输入/admin 进行管理后台
  3. 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

相关推荐
martian665几秒前
【Java基础篇】——第4篇:Java常用类库与工具类
java·开发语言
寰宇软件12 分钟前
PHP音视频课程培训系统
小程序·uni-app·php·音视频
在下陈平安27 分钟前
java-LinkedList源码详解
java·开发语言
C666688832 分钟前
同步(Synchronous)和异步(Asynchronous)
开发语言·c#
MYX_30936 分钟前
第七节 文件与流
开发语言·c++·学习·算法
m0_7482489438 分钟前
在线影视播放网站PHP电影网站源码自动采集MKCMS升级版米酷模板含WAP手机版附三套模板
android·开发语言·php
~怎么回事啊~2 小时前
chrome-mojo C++ Bindings API
开发语言·c++
muxue1782 小时前
数据结构:栈
java·开发语言·数据结构
小涵3 小时前
Python和JavaScript在字符串比较上的差异
开发语言·javascript·python
运维小文4 小时前
python文本处理-基础篇
开发语言·python·正则表达式