密码被更改,cPanel被破解。修正了密码,它仍然被破解了!我必须在已停放的域上迭代。我已经通过PuTTY验证了用户/密码组合是正确的。
<?php
include_once('cpanel_api_xml.php');
$domain = 'example.com';
$pass = '';//etc
$user = '';//etc
$xmlapi = new xmlapi('127.0.0.1');
$xmlapi->password_auth($user,$pass);
$domains_parked = $xmlapi->listparkeddomains($user);
foreach ($domains_parked as $k1=>$v1)
{
if ($v1->domain == $domain) {$return = true; break;}
}
?>
该代码生成以下错误:
为foreach()提供的无效参数
显然,$domains_parked
甚至还没有设置好!我花了很多时间查看被调用的函数,所以没有转储所有的86 of,这里是清理过的$xmlapi->listparkeddomains
版本
<?php
public function listparkeddomains($username, $domain = null)
{
$args = array();
if (!isset($username))
{
error_log("listparkeddomains requires that a user is passed to it");
return false;
}
if (isset($domain))
{
$args['regex'] = $domain;
return $this->api2_query($username, 'Park', 'listparkeddomains', $args);
}
return $this->api2_query($username, 'Park', 'listparkeddomains');
}
?>
我不知道他们把变量设置为第二个参数是做什么的。我已经调用了这个函数,有和没有,并测试了一个简单的mail()
反应。
接下来,我尝试以更直接的方式调用API:
$xmlapi->api2_query($username, 'Park', 'listparkeddomains')
这也不起作用。好的,让我们尝试一些真正的原始输出测试:
echo "1:\n";
print_r($xmlapi);
echo "2:\n";
print_r($xmlapi->api2_query($user, 'Park', 'listparkeddomains'));
echo "3:\n";
$domains_parked = $xmlapi->listparkeddomains($user);
print_r($domains_parked);
die();
其产出如下:
1: xmlapi对象( 调试:xmlapi:私有=>主机:xmlapi:私有=> 127.0.0.1端口:xmlapi:私有=> 4099协议:xmlapi:私有=> https输出:xmlapi:=> simplexml auth_type:xmlapi:private => pass auth:xmlapi:private =>用户:xmlapi:private => http_client:xmlapi:private => curl ) 2: 3:
我从未遇到过如此脆弱的代码,尽管我别无选择,只能使用它。帮帮忙好吗?
发布于 2018-12-03 21:59:03
因此,XML 74删除了整个XML,它不会告诉您任何错误消息。我不能客观地说,cPanel提供了一个稳定的平台来构建任何可靠的基础。您可以故意使服务器无法自动更新(并且可能会错过安全更新),或者每隔一段时间就会完全重写代码again...and again...and。
https://stackoverflow.com/questions/53601545
复制相似问题