We proberen de kwaliteit van onze kennisbank voortdurend te verbeteren.
Geef de informatie op deze pagina een waardering met de slider hierboven.
Mail Header Injectie
PHP Mail Header Injectie
Wat is het en hoe kom ik er vanaf?
Er zijn helaas veel manieren om anonieme mail te versturen. Één daarvan is misbruik te maken van PHP scripts. Sommige scripts bevatten de mail() functie om de headers voor uitgaande mail aan te passen. Deze mail zal, eenmaal verzonden, als afzender het adres (IP) van de webserver bevatten en geen enkel spoor van het IP van de misbruiker. De invoervelden van een dergelijk script variëreren, maar vaak is het mogelijk om in ieder geval het subject, het bericht en het adres van de afzender op te geven.
De meeste webmasters zetten het ontvanger (recipient) adres hardcoded in hun script, om er zeker van te zijn dat er niet naar andere adressen verzonden kan worden. Daar blijken ze toch niet altijd gelijk in te hebben...
<?php $to="webmaster@website.com"; if (!isset($_POST["send"])){ // no post data -> display form ?> <form method="POST" action="<?=$_SERVER['PHP_SELF'];?>"> To: webmaster@website.com From: <input type="text" name="sender"> Subject : <input type="text" name="subject"> Bericht : <textarea name="message" rows="10" cols="60" lines="20"></textarea> <input type="submit" name="send" value="Send"> </form> <? }else{ // post data gevonden $from=$_POST['sender']; // stuur mail : if(mail($to,$_POST['subject'],$_POST['message'],"From: $from\n")){ echo "Uw mail was inderdaad verzonden aan $to."; }else{ // sending failed, display error message echo "Uw mail kon niet worden verzonden!"; } } ?>
In dit voorbeeld is de ontvanger in het script gedefinieerd. De subject, from en bericht kunnen worden opgegeven.
Gebruik van de mail() functie
Deze functie, op de volgende manier aangeroepen:
<?php mail($recipient,$subject,$message,$headers); ?> </code> zal de volgende output genereren: <code> To: $recipient Subject: $subject $headers $message
Als de functie dus ZO wordt aangeroepen:
<?php mail("recipient@victim.xxx","Hello", "Hi,\nYour site is great.\nBye", "From: sender@anonymous.xxx\n"); ?> </code> zal de output er dus ZO uitzien: <code> To: recipient@victim.xxx Subject: Hello From: sender@anonymous.xxx Hi, Your site is great. Bye
Als de functie wordt aangeroepen met de volgende waarde voor Sender (op 1 regel):
sender@anonymous.www%0ACc:recipient@someothersite.xxx% 0ABcc:somebloke@grrrr.xxx,someotherbloke@oooops.xxx
..zal de output er zo uit zien...
To: recipient@victim.xxx Subject: ahem From: sender@anonymous.xxx Cc:recipient@someothersite.xxx Bcc:somebloke@grrrr.xxx,someotherbloke@oooops.xxx My Message...
Ander misbruik, zoals het invoeren van Mime headers, is ook mogelijk (alles op 1 regel):
haxor@attack.com%0AContent-Type:multipart/mixed;% 20boundary=frog;%0A--frog%0AContent-Type:text/html%0A%0A My%20Message.%0A--frog--
..wordt..
To: recip@ient.xxx Subject: Visit www.website.xxx ! From: haxor@attack.xxx Content-Type:multipart/mixed; boundary=frog; --frog Content-Type:text/html My Message. --frog-- Hello, A friend thought you might want to see this page : www.website.xxx. Bye Bye
Advies
Zorg er dus voor dat u alle invoer van uw script filtert op hexadecimale tekens en linefeeds (0x0a of \n tekens).
De huidige waardering is: 39/100 (3 stemmen)- Deze pagina is het laatst bewerkt op 29 nov 2011 om 13:06.
- Deze pagina is 567 keer bekeken.