4 069
contributi
(Creata pagina con '__TOC__ == Introduzione == Quando un sito in PHP viene viene utilizzato per inviare tonnellate di email di SPAM tramite una qualche vulnerabilità nel codice, la prima cosa che ...') |
|||
Riga 9: | Riga 9: | ||
== Configurazione di PHP == | == Configurazione di PHP == | ||
Creiamo un nuovo file contenente le istruzioni personalizzate: | |||
<pre> | |||
# nano /usr/local/bin/sendmail-php | |||
</pre> | |||
con contenuto: | |||
<pre> | |||
#!/usr/bin/php | |||
<?php | |||
/** | |||
Script per tracciare in un log tutti gli script che fanno uso | |||
della funzione PHP mail(). | |||
Author: Till Brehm, www.ispconfig.org | |||
(Hopefully) secured by David Goodwin <david @ _palepurple_.co.uk> | |||
Test e implementazione: Ferdinando Bassi per Debianizzati.org | |||
*/ | |||
$sendmail_bin = '/usr/sbin/sendmail'; | |||
$logfile = '/var/log/mail_php.log'; | |||
//* Get the email content | |||
$logline = ''; | |||
$pointer = fopen('php://stdin', 'r'); | |||
while ($line = fgets($pointer)) { | |||
if(preg_match('/^to:/i', $line) || preg_match('/^from:/i', $line)) { | |||
$logline .= trim($line).' '; | |||
} | |||
$mail .= $line; | |||
} | |||
//* compose the sendmail command | |||
$command = 'echo ' . escapeshellarg($mail) . ' | '.$sendmail_bin.' -t -i'; | |||
for ($i = 1; $i < $_SERVER['argc']; $i++) { | |||
$command .= escapeshellarg($_SERVER['argv'][$i]).' '; | |||
} | |||
//* Write the log | |||
file_put_contents($logfile, date('Y-m-d H:i:s') . ' ' . $_ENV['PWD'] . ' ' . $logline, FILE_APPEND); | |||
//* Execute the command | |||
return shell_exec($command); | |||
?> | |||
</pre> |