assetnote/php2shell-scanner

GITHUB项目档案

主语言 Python · 956 星 · MIT · 创建于 2026-10-22

新秀7 天第 15 名
打开 GitHub 仓库

High fidelity scanner for php2shell (CVE-2026-109618 and CVE-2026-109619)

Stars 956 累计 star,越多说明被认可得越广
Watching 7 订阅该仓库变动的人数
Forks 139 被派生出去的仓库数
Issues 2 当前开放的 Issue 数
语言 Python GitHub 自动判定的主语言
许可证 MIT 开源协议,用之前先确认能不能商用
24h 增长 — 数据积累中
7 日增长 — 数据积累中
30 日增长 — 数据积累中

仓库健康度

5 个维度
只看客观信号,不构成安全性结论
维护活跃度 数据完整
2026-10-24 11:40 最近推送

最近推送 2026-10-24 11:40(4 天前),属于活跃维护

社区响应 数据完整
2 开放 Issue

开放 Issue 2 个 · Fork 139 个

增长趋势 证据不足
— 7 日新增

star 记录还不够天数,增量算不出来

项目规范 数据完整
MIT 许可证

许可证 MIT · 开了 Wiki

版本发布 证据不足
— 发布次数

这一项暂无数据,不代表项目没有发布

「证据不足」表示这项数据暂时没有取到,不能读成「项目有问题」;「部分数据」表示只拿到一部分信号。版本发布要额外调 Releases 接口,下一版补。

Star 趋势

5 天记录
最近 90 天站内记录的星数
956当前 Star +389首尾差值 2026-10-24最早记录 2026-10-28最近记录

横轴 2026-10-24 → 2026-10-28,纵轴按这段时间的最小/最大值拉伸。趋势来自站内每天记录一次的星数,页面打开时不会实时请求 GitHub。

README 原文细节

7 个板块
项目自己写的功能与用法,原文照录

怎么安装从零跑起来的步骤

Installation

pip install -r requirements.txt

怎么用最典型的用法与示例

Usage

python3 scanner.py -u https://example.com

环境与依赖跑它之前要准备什么

Requirements

  • Python 3.9+

实现原理它内部是怎么做的

How It Works

The scanner sends a minimal multipart control request followed by up to three crafted multipart probes. The probes use PHP array keys nested 62 levels deep and increase from 1 MiB to 20 MiB, matching the detection logic used by Assetnote's internal scanner.

A target is reported vulnerable when the probe produces a PHP memory-exhaustion error, a differential empty HTTP 500, a PHP-FPM worker failure, or an advertised PHP version known to be unpatched. Initial 5xx responses, common request-rejection statuses, and nonempty HTTP 500 responses without the PHP fatal-error signature are not treated as crash signals.

The scanner tests /index.php by default. A path supplied in the URL is preserved, and --path or --path-file can test custom paths. phpMyAdmin targets are automatically retested at /showconfigerrors.php. Redirects are not followed unless --follow-redirects is set.

配置项能调整哪些参数

Options

-u, --url         Single URL to check
-l, --list        File containing hosts (one per line)
-t, --threads     Number of concurrent threads (default: 10)
--timeout         Request timeout in seconds (default: 60)
-o, --output      Output file for results (JSON)
--all-results     Save all results, not just vulnerable hosts
-k, --insecure    Disable TLS certificate verification
--follow-redirects Follow HTTP redirects (up to 10 hops)
-H, --header      Custom header (can be used multiple times)
-v,

限制与常见问题项目自己写明的坑与限制

Limitations

On specific PHP configurations, the scanner may report a false positive when its multipart probe exceeds PHP's memorylimit. Patched and vulnerable versions can then return the same empty HTTP 500 response.

This was reproduced on patched PHP 8.4.27 with memorylimit values from 2M to 32M, and on PHP 8.3.36 at 128M when maxmultipartbodyparts is set to 2785 or higher. The exact threshold may vary between builds.

When PHP does not disclose its version, the scanner cannot distinguish this safe post-patch OOM from the vulnerable pre-patch behavior. Results should therefore be verified against the installed PHP version and any vendor backports

其它说明README 里剩下的内容

SAPI Modes

The default --sapi auto mode applies both modphp and PHP-FPM verdict rules, matching the combined behavior of Assetnote's postmodules. Use --sapi modphp or --sapi fpm to restrict detection to a known SAPI.

Network Impact

Each tested path may receive a 42-byte control request and three probes totalling about 29 MiB. Probing stops as soon as the verdict is settled, and duplicate input URLs are scanned once.

Docker

Mount the current directory to read host lists and write results:

关于 php2shell-scanner 的常见问题

3 个问题
答案来自 README 归纳与 GitHub 实时数据
php2shell-scanner 是做什么的?

assetnote/php2shell-scanner 是 GitHub 上的开源项目:High fidelity scanner for php2shell (CVE-2026-109618 and CVE-2026-109619)。

运行 php2shell-scanner 需要什么环境?

README 写明的依赖:Python 3.9+。

php2shell-scanner 现在还在维护吗?数据怎么样?

目前 956 星,139 个 Fork,主语言 Python,创建于 2026-10-22,最近一次推送 2026-10-24 11:40,许可证 MIT。星数、Fork、推送时间都是 GitHub 返回的实时数据,「最近推送」离现在越近说明越活跃;长期不动要留意是否已停止维护。

这些内容来自哪

读法说明
中文整理据 README 归纳,数据取自 GitHub
中文说明据项目 README 归纳只写 README 能确认的内容,不替作者补功能与数字
关键数据与 GitHub 页面一致星数、Fork、语言与时间都不做二次加工
数据日期2026-10-25 00:22星数与介绍这份数据是哪一天的

项目数据取自 GitHub 官方接口与项目 README;星数、Fork、语言与时间以 GitHub 页面为准,档案更新于 2026-10-25 00:22。