wangyihang/vulnerable-php-lib

A collection of vulnerable PHP functions for security testing and education purposes

Maintainers

Package info

github.com/WangYihang/vulnerable-php-lib

Homepage

pkg:composer/wangyihang/vulnerable-php-lib

Statistics

Installs: 15

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

dev-main 2025-08-01 14:17 UTC

This package is auto-updated.

Last update: 2026-03-29 01:13:16 UTC


README

A PHP library containing vulnerable functions for security testing and educational purposes. This library can be used for:

  • Security testing
  • Vulnerability scanner testing
  • Security training
  • Vulnerability research

Installation

Install via Composer:

composer require wangyihang/vulnerable-php-lib

Usage

Command Injection Vulnerabilities

use VulnerablePhpLib\CommandInjection;

// Execute command directly (no filtering)
$result = CommandInjection::executeCommand($_GET['command']);

// Execute ping command (only space filtering)
$result = CommandInjection::pingHost($_GET['host']);

// Execute file find (incomplete filtering)
$result = CommandInjection::findFile($_GET['filename']);

// Execute directory listing (improper parameter concatenation)
$result = CommandInjection::listDirectory($_GET['path']);

// Execute filtered command (incomplete filtering)
$result = CommandInjection::executeFilteredCommand($_GET['command']);

SSRF Vulnerabilities

use VulnerablePhpLib\SSRF;

// Basic SSRF (no filtering)
$result = SSRF::fetchUrl($_GET['url']);

// SSRF with protocol filtering
$result = SSRF::fetchUrlWithProtocol($_GET['url']);

// SSRF with IP filtering
$result = SSRF::fetchUrlWithIPFilter($_GET['url']);

// SSRF with redirect handling
$result = SSRF::fetchUrlWithRedirect($_GET['url']);

// SSRF with domain filtering
$result = SSRF::fetchUrlWithDomain($_GET['url']);

// SSRF with response size limit
$result = SSRF::fetchUrlWithSizeLimit($_GET['url']);

File Read Vulnerabilities

use VulnerablePhpLib\FileRead;

// Basic path traversal
$result = FileRead::readFileBasic($_GET['path']);

// Path traversal with basic validation
$result = FileRead::readFileMedium($_GET['path']);

// Path traversal with advanced validation
$result = FileRead::readFileAdvanced($_GET['path']);

// File read with extension filtering
$result = FileRead::readFileWithExtension($_GET['path']);

// File read with directory restriction
$result = FileRead::readFileWithDirectory($_GET['path'], '/var/www/html');

Security Warning

⚠️ Warning: This library is for security testing and educational purposes only. Do not use these functions in production environments as they contain serious security vulnerabilities.

License

MIT License