Jump to content

Archived

This topic is now archived and is closed to further replies.

mildlyincoherent

Email Header Inject Test

Recommended Posts

So I'm trying to write a script to check if someone is trying to do a header inject using my web based email form.  The problem is that, regardless of the content, it is being tagged as hijacked.  The following is the relevant part of my code:


[code] $ip=$_POST['ip'];
$httpref=$_POST['httpref'];
$httpagent=$_POST['httpagent'];
$visitor=$_POST['visitor'];
$visitormail=$_POST['visitormail'];
$subject=$_POST['subject'];
$notes=$_POST['notes'];

$passedTests = "yes";
$Hijacked = "no";
$HijackAttempt=$visitormail;

if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,".")))
{
echo "<div class=\"centerIt\">";
echo "The following error(s) were encountered: <br />";
echo "<font color='red'>Invalid email address. <br /></font>";
$passedTests = "no";
}

if(empty($visitor) || empty($visitormail) || empty($notes ))
{
if($passedTests == "yes")
{
echo "<div class=\"centerIt\">";
echo "The following error(s) were encountered: <br />";
}
echo "<font color='red'>Please fill in ALL of the required fields.</font>";
$passedTests = "no";
}

    if (!preg_match("/(%0A|%0D|\n+|\r+)(content-type:|to:|cc:|bcc:)/i", $HijackAttempt) && ($passedTests == "yes"))
{
$passedTests = "no";
$Hijacked = "yes";
}[/code]

Any help identifying the problem with this code would be much appreciated.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.