Command Palette

Search for a command to run...

为什么插件扫描会返回为空,以及这证明了什么

为什么插件扫描会返回为空,以及这证明了什么

T
Toolz Team
|Sep 25, 2026|8 最小读数
Google 上的首选 Toolz.dev

WordPress 插件检测器

查看任何页面上加载哪些 WordPress 插件,其中文件夹 slug、版本、安装计数和每个插件的证据均来自。

用WordPress 插件检测器

我扫描了一个客户端's商店购买插件,拿回了三个。该网站运行了二十六个。没有什么被破坏,也没有故意隐藏任何内容:他们的优化插件已将每个脚本合并为一个组合文件,并且合并的文件在其名称中没有插件文件夹。扫描准确地说明了页面加载的内容,并且作为库存毫无用处,这就是本指南的区别。

站点外部检测插件确实有用,而且真正有限,大多数工具只告诉你前半部分,下面是检测的工作原理,每个结果可以和不能意味着什么,以及如何在不得出错误结论的情况下读取短列表 WordPress 插件检测器 故意报告两半。

TL;博士: 插件检测的工作原理是查找从中加载的文件 /wp-content/plugins/<slug>/ page。not load a front-end file 的任何东西都是不可见的:仅管理员插件,在其他页面上开火的插件,以及任何其资产缓存插件合并到一个组合文件中的东西。将结果视为地板,永远不会总共扫描内部页面而不是主页可靠地找到更多。

插件检测实际上是如何工作的?

做任何可见的插件,必须从自己的文件夹中加载某些东西,WordPress 从固定的路径中服务于插件文件, /wp-content/plugins/<slug>/(so), 因此从那里加载的任何样式表、脚本或图像都会命名拥有它的插件:

<link rel="stylesheet" href="/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=5.9.3" />
<script src="/wp-content/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js?ver=9.2.3"></script>

就是 contact-form-7 並 woocommerce的,由页面陈述而不是从它的行为方式推断出来。几个插件仍然更简单地宣布自己:身体类,下面的REST命名空间 /wp-json/、元标签、HTML 注释、cookie 名称。

该版本通常在查询字符串中运行。 ?ver=5.9.3 wordpress附加的东西来破坏缓存,并且在大多数安装上它是插件&#39;s真实版本。出于缓存原因剥离版本查询字符串的网站,或者硬编码一个值,将报告什么都没有或什么陈旧的东西。

证据 例子 信心
资产路径 /wp-content/plugins/woocommerce/... 该插件在此页面上加载了一个文件
版本查询字符串 ?ver=9.2.3 通常安装版本
REST 命名空间 /wp-json/wc/v3 该插件注册了 API 路由
身体等级 woocommerce-page 该插件在此页面类型上处于活动状态

为什么这么多插件保持不可见?

4个普通设置隐藏插件,它们都不意味着网站做错了什么。

仅管理员插件不会为访问者加载任何内容。 备份调度程序、SEO 编辑器、迁移工具、用户角色管理器、暂存实用程序:他们在内部完成工作 wp-admin and 前端不加任何东西任何真实站点&#39;s插件列表中,有很大一部分都属于此类,从外部设计看不见。

插件会在它们要使用的页面上开火。 Checkout插件加载在结帐上,表单插件加载在表单所在的位置,扫描一个主页,得出站点有三个插件,就像读一本书的第一页,报告它的字数。

优化插件删除文件夹名称。 This is the big one。cache文件夹下将每个脚本和样式表连接成一个文件的插件,去掉它合并的所有内容的插件文件夹名称,包括它自己的代码都还存在,证据不是。

主机和 CDN 重写资产路径。 某些托管主机通过不再包含的路径代理每个静态文件 /wp-content/plugins/。效果相同,一次性应用于全站。

So 空结果至少有五个含义:没有插件是活动的,没有加载前端资产,优化器合并了它们,主机重写了路径,或者站点不是 WordPress。reports &quot;0 插件&quot;的工具,而没有分离那些不是报告发现,而是报告自己的盲点。

没有真名的文件夹名称是什么意思?

Detection 给你一个slug。将那个slug变成一个已发布的名称,当前版本和安装计数需要将其与插件目录匹配,而不是每个插件都合而为一。

裸slug没有匹配条目几乎总是意味着三件事之一,它是在WordPress。org之外出售的高级插件,它描述了大多数商业页面构建器,表单插件和会员系统,它是自定义的,由谁构建了那个站点或文件夹,只是简单地重新命名,一些站点所有者故意这样做。

That本身就是一个有用的信号,一个插件列表大多是无与伦比的slugs的站点正在运行商业或定制软件,并且在你问过任何人问题之前,它会告诉你一些关于它背后的预算。

如何获得更完整的图片?

1页以上扫描, 这是单一的最高价值习惯, 而且不花钱:

  1. 主页,适用于全站家具:分析、同意横幅、页面构建器、滑块。
  2. 博客文章,用于内容端插件:相关帖子、目录、社交共享、评论系统。
  3. 用于商业的产品或定价页面:商店插件、支付网关、货币切换器。
  4. 联系页面,用于表格、地图和垃圾邮件保护。

以工会为例。即使这样,它也是一层楼,但比任何一页给出的楼层都要高得多。

的 /wp-json/ index 也值得一看, 当它被启用时, 注册 REST 路由的插件无论前端加载什么, 都会通过命名空间出现在那里, 因此它会捕获一些资产路径错过的内容:

curl -s https://example.com/wp-json/ | grep -o '"namespace":"[^"]*"' | sort -u

扫某人&#39;s站点可接受吗?

阅读公共页面是一个普通的请求,它出现在站点&#39;s访问日志中,就像浏览器访问一样,它不登录、提交任何内容或触摸管理区。 WordPress 安全文档 关注经过身份验证或探测请求可以做什么,而不是页面自愿向每个访问者发布的内容。

越尖锐的地方就是意图。插件列表是侦察,如果你把它作为一个:一个过时的版本的插件,有一个已知的漏洞,这正是攻击者寻找的。那是保持自己的插件更新的原因,而不是假装信息是秘密的理由,因为任何人都可以阅读同一页面。如果你正在审计一个你不拥有的网站,请坚持该页面告诉你的内容并将其留在那里。

结果有什么好处

Used within its limits, 外部插件扫描快速回答真题, 这个站点用哪个页面构建器, 所以我可以引用更改, 这个商店是WooCommerce还是托管的东西, 什么是表单插件, 所以我可以匹配这个竞争对手运行的是同一个SEO栈我们是自己的分期站点吗, 不小心加载了一个插件我在本地禁用。

它不能做的是产生库存。为此你需要管理员, wp plugin list 超过 WP-CLI或者有登录名的人。

如果问题是渲染页面是什么而不是加载页面是什么,那么就是 WordPress 主题检测器的,其中读取主题&#39;s自己的 style.css 对于名称、版本和父级。当您是发布插件的人时, readme 生成器 写的 readme.txt 这决定了您的插件&#39;自己的目录列表如何读取。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!