All Projects → designsecurity → Progpilot

designsecurity / Progpilot

Licence: mit
A static analysis tool for security

Projects that are alternatives of or similar to Progpilot

Rapidscan
🆕 The Multi-Tool Web Vulnerability Scanner.
Stars: ✭ 775 (+242.92%)
Mutual labels:  security-tools, vulnerability-scanners
Lynis
Lynis - Security auditing tool for Linux, macOS, and UNIX-based systems. Assists with compliance testing (HIPAA/ISO27001/PCI DSS) and system hardening. Agentless, and installation optional.
Stars: ✭ 9,137 (+3942.92%)
Mutual labels:  security-tools, vulnerability-scanners
Ossa
Open-Source Security Architecture | 开源安全架构
Stars: ✭ 796 (+252.21%)
Mutual labels:  security-tools, vulnerability-scanners
Jackhammer
Jackhammer - One Security vulnerability assessment/management tool to solve all the security team problems.
Stars: ✭ 633 (+180.09%)
Mutual labels:  vulnerability-scanners, static-code-analysis
Owasp Orizon
Owasp Orizon is a source code static analyzer tool designed to spot security issues in Java applications.
Stars: ✭ 130 (-42.48%)
Mutual labels:  vulnerability-scanners, static-code-analysis
Jok3r
Jok3r v3 BETA 2 - Network and Web Pentest Automation Framework
Stars: ✭ 645 (+185.4%)
Mutual labels:  security-tools, vulnerability-scanners
Trivy
Scanner for vulnerabilities in container images, file systems, and Git repositories, as well as for configuration issues
Stars: ✭ 9,673 (+4180.09%)
Mutual labels:  security-tools, vulnerability-scanners
Gosec
Golang security checker
Stars: ✭ 5,694 (+2419.47%)
Mutual labels:  security-tools, static-code-analysis
Patrowldocs
PatrOwl - Open Source, Free and Scalable Security Operations Orchestration Platform
Stars: ✭ 105 (-53.54%)
Mutual labels:  security-tools, vulnerability-scanners
Purify
All-in-one tool for managing vulnerability reports from AppSec pipelines
Stars: ✭ 72 (-68.14%)
Mutual labels:  security-tools, vulnerability-scanners
Scanners Box
A powerful hacker toolkit collected more than 10 categories of open source scanners from Github - 安全行业从业者自研开源扫描器合辑
Stars: ✭ 5,590 (+2373.45%)
Mutual labels:  vulnerability-scanners, security-tools
Patrowlengines
PatrOwl - Open Source, Free and Scalable Security Operations Orchestration Platform
Stars: ✭ 162 (-28.32%)
Mutual labels:  security-tools, vulnerability-scanners
Satansword
红队综合渗透框架
Stars: ✭ 482 (+113.27%)
Mutual labels:  security-tools, vulnerability-scanners
Stacoan
StaCoAn is a crossplatform tool which aids developers, bugbounty hunters and ethical hackers performing static code analysis on mobile applications.
Stars: ✭ 707 (+212.83%)
Mutual labels:  security-tools, static-code-analysis
Vulscan
vulscan 扫描系统:最新的poc&exp漏洞扫描,redis未授权、敏感文件、java反序列化、tomcat命令执行及各种未授权扫描等...
Stars: ✭ 486 (+115.04%)
Mutual labels:  security-tools, vulnerability-scanners
Secretscanner
Find secrets and passwords in container images and file systems
Stars: ✭ 895 (+296.02%)
Mutual labels:  security-tools, vulnerability-scanners
Patrowlmanager
PatrOwl - Open Source, Smart and Scalable Security Operations Orchestration Platform
Stars: ✭ 363 (+60.62%)
Mutual labels:  security-tools, vulnerability-scanners
Hellraiser
Vulnerability scanner using Nmap for scanning and correlating found CPEs with CVEs.
Stars: ✭ 413 (+82.74%)
Mutual labels:  security-tools, vulnerability-scanners
Vuls
Agent-less vulnerability scanner for Linux, FreeBSD, Container, WordPress, Programming language libraries, Network devices
Stars: ✭ 8,844 (+3813.27%)
Mutual labels:  security-tools, vulnerability-scanners
Detexploit
OSS Vulnerability Scanner for Windows Platform
Stars: ✭ 146 (-35.4%)
Mutual labels:  security-tools, vulnerability-scanners

progpilot

A static analyzer for security purposes
Only PHP language is currently supported

Build Status Packagist Packagist

Installation

Option 1: use standalone phar

  • Download the latest phar archive from the releases page.
  • Place the file somewhere in your path and make it executable:
chmod +x progpilot_vX.Y.Z.phar
sudo mv progpilot_vX.Y.Z.phar /usr/local/bin/progpilot

Option 2: build phar from source code

phar-composer.phar should be located in a directory listed in the $PATH environment variable before starting the build:

git clone https://github.com/designsecurity/progpilot
cd progpilot
./build.sh

The resulting phar archive will be located in the builds folder at the root of this project.

Option 3: use composer

Use Composer to install progpilot:

composer require --dev designsecurity/progpilot

Configuration

Use a yaml configuration file (look at this example) to configure and customize the progpilot analysis otherwise the default configuration will be used with, in particular the standard taint configuration data.

Usage

CLI example

The progpilot command takes as arguments the path to the files and folders to be analyzed and optionally a configuration file:

# without config file
progpilot example1.php example2.php folder1/ folder2/
# with a config file
progpilot --configuration configuration.yml example1.php example2.php folder1/ folder2/

If you installed it with composer, the program will be located at vendor/bin/progpilot.

Library example

It is also possible to use progpilot inside PHP code. For more information look at the API documentation.

Use this code to analyze source_code1.php:

<?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);

When source_code1.php contains this code:

<?php
$var7 = $_GET["p"];
$var4 = $var7;
echo "$var4";

The simplified output will be:

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"
  }
}

All files (composer.json, example1.php, source_code1.php) used in this example are in the projects/example folder. For more examples look also at this page.

Specify an analysis

It is strongly recommended to customize the taint analysis configuration (the definitions of sinks, sources, sanitizers and validators) according to the context of the application to be analyzed. In the following specification, superglobals variables _GET, _POST or _COOKIE are defined as untrusted and also the return of the shell_exec() function:

{
    "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"}
    ]
}

See available settings in the corresponding chapter about specifying an analysis.
Custom rules can be created too, see the corresponding chapter about custom rules.

Development

Learn more about the development of Progpilot.

Faq

Here

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].