У меня есть PHP-функция с именем getServerAddres (), и я пытаюсь выполнить exec () из веб-браузера. Я понимаю, что это неправильный способ использования этой функции, я был просто задачей использовать веб-сервер с помощью удаленного внедрения кода. Будем весьма благодарны за любую помощь в том, как выполнить дистанционное внедрение кода с помощью exec () через веб-браузер.
Допустим, логин на экране: https: //www.10.10.20.161/test/
function getServerAddress() {
if(isset($_SERVER["SERVER_ADDR"]))
return $_SERVER["SERVER_ADDR"];
else {
// Running CLI
if(stristr(PHP_OS, 'WIN')) {
// Rather hacky way to handle windows servers
exec('ipconfig /all', $catch);
foreach($catch as $line) {
if(eregi('IP Address', $line)) {
// Have seen exec return "multi-line" content, so another hack.
if(count($lineCount = split(':', $line)) == 1) {
list($t, $ip) = split(':', $line);
$ip = trim($ip);
} else {
$parts = explode('IP Address', $line);
$parts = explode('Subnet Mask', $parts[1]);
$parts = explode(': ', $parts[0]);
$ip = trim($parts[1]);
}
if(ip2long($ip > 0)) {
echo 'IP is '.$ip."\n";
return $ip;
} else
; // to-do: Handle this failure condition.
}
}
} else {
$ifconfig = shell_exec('/sbin/ifconfig eth0');
preg_match('/addr:([\d\.]+)/', $ifconfig, $match);
return $match[1];
}
}
}
Скрипт php пришел из файла login.php.
Вы, кажется, не понимаете функцию exec ….
Прежде всего, прочитайте документацию здесь.
Эта функция выполняется на стороне сервера и, следовательно, не может быть выполнена на стороне клиента.
Если вам нужна информация о хост-машине, вы можете выполнить команду там и вывести результат.
Создайте этот файл: example.php и введите этот код:
<?php
echo exec('whoami');
?>
Теперь загрузите этот файл на хост и сделайте запрос:
www.YOURHOST.smg / example.php
И прочитайте результат
Других решений пока нет …