cPanel停放域不返回数组

时间:2018-12-03 20:40:34

标签: php cpanel cpanel-xmlapi

密码更改,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尚未设置!我花了一些时间看一下要调用的函数,所以这里没有转储全部86KB,这是$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对象(

[debug:xmlapi:private] => 

[host:xmlapi:private] => 127.0.0.1

[port:xmlapi:private] => 4099

[protocol:xmlapi:private] => https

[output:xmlapi:private] => simplexml

[auth_type:xmlapi:private] => pass

[auth:xmlapi:private] => <pass>

[user:xmlapi:private] => <user>

[http_client:xmlapi:private] => curl ) 2: 3:

尽管我别无选择,只能使用它,但我从未遇到过如此脆弱的代码。请帮忙吗?

1 个答案:

答案 0 :(得分:0)

因此cPanel 74版取消了整个XML API,并且它不会向您显示任何错误消息。我至少不能客观地说cPanel提供了一个稳定的平台来构建任何可靠的东西。您可以故意使服务器无法自动更新(并可能错过安全更新),也可以每隔X次重复一次就完全重写代码了。