Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
progpilot — PHP 정적 애플리케이션 보안 테스트(SAST) 도구로, 사용자 정의 가능한 규칙과 구성을 사용하여 XSS, SQL 인젝션 및 기타 취약점을 탐지하기 위해 오염 분석(taint analysis)을 수행합니다. | Kitploit
도구/GitHubGitHub/designsecurity/progpilot
Vulnerability ScannersStatic Code Analysis (SAST)Code Analysis
GitHubdesignsecurity/progpilot

progpilot

PHP 정적 애플리케이션 보안 테스트(SAST) 도구로, 사용자 정의 가능한 규칙과 구성을 사용하여 XSS, SQL 인젝션 및 기타 취약점을 탐지하기 위해 오염 분석(taint analysis)을 수행합니다.

저장소 보기
365651년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

progpilot

PHP를 위한 정적 애플리케이션 보안 테스트(SAST)

Build Status Packagist Packagist

설치

다양한 옵션이 있으며, 사용 사례에 가장 적합한 것을 선택하세요.

PHAR 릴리스 사용

  • 최신 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 사용

PHP 프로젝트의 라이브러리로 progpilot을 사용하는 경우 composer로 패키지를 설치하세요:

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

구성

yaml 구성 파일을 사용하여 progpilot 분석을 구성하고 사용자 정의하세요. (예시는 이 예제를 참조하세요.) 그렇지 않으면 기본 구성이 사용되며, 특히 표준 taint 구성 데이터가 사용됩니다.

사용법

CLI 예제

progpilot 명령은 분석할 파일 및 폴더의 경로와 선택적으로 구성 파일을 인수로 받습니다:

root@kitploit:~
# 구성 파일 없음
progpilot example1.php example2.php folder1/ folder2/
# 구성 파일 사용
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 폴더에 있습니다. 더 많은 예제는 이 페이지를 참조하세요.

분석 지정

분석 대상 애플리케이션의 컨텍스트에 맞게 taint 분석 구성을 사용자 정의하는 것이 강력히 권장됩니다. 다음 지정에서 슈퍼글로벌 변수 _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 개발에 대해 자세히 알아보기.

FAQ

여기

도구 다운로드