Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
progpilot — PHP静态应用安全测试(SAST)工具,通过执行污点分析,利用可自定义的规则和配置检测XSS、SQL注入及其他漏洞。 | Kitploit
工具/GitHubGitHub/designsecurity/progpilot
漏洞扫描器静态代码分析 (SAST)代码分析
GitHubdesignsecurity/progpilot

progpilot

PHP静态应用安全测试(SAST)工具,通过执行污点分析,利用可自定义的规则和配置检测XSS、SQL注入及其他漏洞。

查看仓库
3656531年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

progpilot

一个用于PHP的静态应用安全测试(SAST)工具

Build Status Packagist Packagist

安装

有多种选项可供选择,请选择最适合您使用场景的选项。

使用 PHAR 发布版

  • 从 releases 页面下载最新的 PHAR 归档文件。
  • 将文件放置在您的路径中,并使其可执行:
root@kitploit:~
chmod +x progpilot_vX.Y.Z.phar
sudo mv progpilot_vX.Y.Z.phar /usr/local/bin/progpilot

使用 Docker

  • 构建 Docker 镜像(此页面上有详细文档)并运行容器:
root@kitploit:~
docker build -t progpilot .
docker run -v $(pwd):/workspace progpilot /workspace/path/to/your/file.php

从源代码构建 PHAR 归档文件

phar-composer.phar 应位于 $PATH 环境变量所列的目录中:

root@kitploit:~
git clone https://github.com/designsecurity/progpilot
cd progpilot
./build.sh

生成的 PHAR 归档文件将位于本项目根目录的 builds 文件夹中。

使用 Composer

使用 composer 安装该包,通常是在将 progpilot 作为 PHP 项目的库时使用:

root@kitploit:~
composer require --dev designsecurity/progpilot

配置

使用 YAML 配置文件(请参阅 此示例)来配置和自定义 progpilot 分析,否则将使用默认配置,特别是标准的污点配置数据。

使用

CLI 示例

progpilot 命令接受待分析的文件和文件夹路径作为参数,并可选地接受一个配置文件:

root@kitploit:~
# without config file
progpilot example1.php example2.php folder1/ folder2/
# with a config file
progpilot --configuration configuration.yml example1.php example2.php folder1/ folder2/

如果您使用 composer 安装,程序将位于 vendor/bin/progpilot。

库示例

也可以在 PHP 代码中使用 progpilot。更多信息请参阅 API 文档。

使用以下代码分析 source_code1.php:

root@kitploit:~
<?php
require_once './vendor/autoload.php';

$context = new \progpilot\Context;
$analyzer = new \progpilot\Analyzer;

$context->inputs->setFile("source_code1.php");

try {
  $analyzer->run($context);
} catch (Exception $e) {
   echo "Exception : ".$e->getMessage()."\n";
}  
  
$results = $context->outputs->getResults();

var_dump($results);

当 source_code1.php 包含以下代码时:

root@kitploit:~
<?php
$var7 = $_GET["p"];
$var4 = $var7;
echo "$var4";

简化的输出将是:

root@kitploit:~
array(1) {
  [0]=>
  array(11) {
    ["source_name"]=>
    array(1) {
      [0]=>
      string(5) "$var4"
    }
    ["source_line"]=>
    array(1) {
      [0]=>
      int(4)
    }
    ["sink_name"]=>
    string(4) "echo"
    ["sink_line"]=>
    int(5)
    ["vuln_name"]=>
    string(3) "xss"
  }
}

此示例中使用的所有文件(composer.json, example1.php, source_code1.php)均位于 projects/example 文件夹中。 更多示例请查阅此页面。

指定分析

强烈建议根据待分析应用的上下文自定义污点分析配置(接收点、来源、消毒器和验证器的定义)。在以下规范中,超全局变量 _GET、_POST 或 _COOKIE 被定义为不受信任的,shell_exec() 函数的返回值也是如此:

root@kitploit:~
{
    "sources": [
        {"name": "_GET", "is_array": true, "language": "php"},
        {"name": "_POST", "is_array": true, "language": "php"},
        {"name": "_COOKIE", "is_array": true, "language": "php"},
        {"name": "shell_exec", "is_function": true, "language": "php"}
    ]
}

可用设置请参见关于指定分析的相应章节。
也可以创建自定义规则,请参见关于自定义规则的相应章节。

开发

了解更多关于 Progpilot 的开发信息。

常见问题

这里

下载工具