Hacktricks-skills php-disable-functions-bypass
Bypass PHP disable_functions restrictions using stream wrapper exploits. Use this skill when testing PHP applications for security vulnerabilities, specifically when you encounter disabled functions like fopen, file_get_contents, or similar file operations. Trigger this when the user mentions PHP security testing, disable_functions bypass, PHP wrapper exploits, or when analyzing PHP configurations with restricted functions. Make sure to use this skill whenever the user is doing authorized pentesting on PHP applications and needs to understand or demonstrate function restriction bypasses.
install
source · Clone the upstream repo
git clone https://github.com/abelrguezr/hacktricks-skills
manifest:
skills/network-services-pentesting/pentesting-web/php-tricks-esp/php-useful-functions-disable_functions-open_basedir-bypass/disable_functions-bypass-php-5.2-fopen-exploit/SKILL.MDsource content
PHP Disable Functions Bypass
A skill for bypassing PHP's
disable_functions restriction using stream wrapper exploits during authorized security testing.
Overview
PHP's
disable_functions directive restricts dangerous functions like fopen(), file_get_contents(), exec(), etc. However, certain stream wrappers can be exploited to bypass these restrictions in specific PHP versions.
PHP 5.2 - FOpen Exploit
Technique
In PHP 5.2, the
srpath:// stream wrapper can be used with fopen() to bypass disable_functions restrictions:
php -r 'fopen("srpath://../../../../../../../dir/pliczek", "a");'
How it works
The
srpath:// wrapper allows path traversal that can bypass certain restrictions. By using this wrapper with fopen(), you can potentially write to files even when the function appears to be disabled.
Requirements
- PHP 5.2 (specific version)
- The
stream wrapper must be availablesrpath:// - Appropriate file system permissions
Usage
Command Line
php -r 'fopen("srpath://../../../../../../../target/path", "a");'
In PHP Script
<?php fopen("srpath://../../../../../../../target/path", "a"); ?>
Testing Checklist
Before attempting this bypass:
- Verify PHP version (5.2)
- Check if
is setdisable_functions - Confirm
wrapper availabilitysrpath:// - Ensure you have write permissions to target directory
- Document findings for security report
Important Notes
- This technique is version-specific and may not work on newer PHP versions
- Requires proper file system permissions
- Should only be used in authorized security testing environments
- Modern PHP versions have patched many of these vulnerabilities
Security Considerations
This skill is for authorized security testing only. Always:
- Obtain proper authorization before testing
- Document all findings
- Report vulnerabilities responsibly
- Never use these techniques on systems you don't own or have permission to test
References
- Safebuff Blog - Disable Functions Bypass
- PHP Stream Wrappers Documentation
- OWASP PHP Security Cheat Sheet