[Pulling Hair] cURL spoof referer fails to open URL

Hello experts.

I was wondering if any of you could help me on this. I am trying to spoof referer via 2 pages, first page to refresh to the second, and the second supposed to redirect to the destination bearing any referer of my choice. But the process failed in the second page as it didnt redirect to the final site. Here is what i did:

Page 1 (called file.php)
[php]<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.abc.com/redirect.php”);
?>[/php]

Page 2 (called redirect.php)
[php]<?php

$url = “destination.com”;

function doMagic($url)
{
$curl = curl_init();

$header[0] = “Accept: text/xml,application/xml,application/xhtml+xml,”;
$header[0] .= “text/html;q=0.9,text/plain;q=0.8,image/png,/;q=0.5”;
$header[] = “Cache-Control: max-age=0”;
$header[] = “Connection: keep-alive”;
$header[] = “Keep-Alive: 300”;
$header[] = “Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7”;
$header[] = “Accept-Language: en-us,en;q=0.5”;
$header[] = "Pragma: ";

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101

Firefox/7.0.12011-10-16 20:23:00");
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, “imfromhere.com”);
curl_setopt($curl, CURLOPT_ENCODING, “gzip,deflate”);
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);

$html = curl_exec($curl);
echo 'Curl error: '. curl_error($curl);
curl_close($curl);

return $html;
}

?>[/php]

As i explained, page 1 to page 2 works fine, but then it stuck on page 2 as it failed to redirect to destination. Any suggestion would be appreciated. Thank you.

ps: those scripts are from the internet, i dont really do PHP

You are not calling the function anywhere.

[php] $url = “destination.com”;
doMagic($url);[/php]

or

[php]doMagic(“destination.com”);[/php]

Hi Kevin

Thanks, i have now changed/picked the second option, the code looks like this now:

[php] <?php

$url = “destination.com”;
doMagic($url);
{
$curl = curl_init();

$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";

$header[0] .= “text/html;q=0.9,text/plain;q=0.8,image/png,/;q=0.5”;
$header[] = “Cache-Control: max-age=0”;
$header[] = “Connection: keep-alive”;
$header[] = “Keep-Alive: 300”;
$header[] = “Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7”;
$header[] = “Accept-Language: en-us,en;q=0.5”;
$header[] = "Pragma: ";

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101

Firefox/7.0.12011-10-16 20:23:00");
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, “imfromhere.com”);
curl_setopt($curl, CURLOPT_ENCODING, “gzip,deflate”);
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);

$html = curl_exec($curl);
echo 'Curl error: '. curl_error($curl);
curl_close($curl);

return $html;
}

?>
[/php]

Now i have "Fatal error: Call to undefined function doMagic() in xxxxxxxx/redirect.php on line 4

i mean the first option:

$url = “destination.com”;
doMagic($url);

OKAAYY, i finally managed to make the second page fires to the destination site, BUT…

For some reason, the url bar of the destination site shows address of the second page?? Plus the hit on destination site is not shown on Google analytic,…

Is this how cURL spoof referer supposed to behave?

What I posted was an addition to your code, not a replacement. You removed “function”

[php] <?php

$url = “destination.com”;

doMagic($url);// ADDED THIS TO CALL FUNCTION

function doMagic($url)
{
$curl = curl_init();

$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";

$header[0] .= “text/html;q=0.9,text/plain;q=0.8,image/png,/;q=0.5”;
$header[] = “Cache-Control: max-age=0”;
$header[] = “Connection: keep-alive”;
$header[] = “Keep-Alive: 300”;
$header[] = “Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7”;
$header[] = “Accept-Language: en-us,en;q=0.5”;
$header[] = "Pragma: ";

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101

Firefox/7.0.12011-10-16 20:23:00");
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, “imfromhere.com”);
curl_setopt($curl, CURLOPT_ENCODING, “gzip,deflate”);
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);

$html = curl_exec($curl);
echo 'Curl error: '. curl_error($curl);
curl_close($curl);

return $html;
}

?>
[/php]

hi Kevin, i managed to get it work before you replied, but i found the result is a bit strange:

  1. The url bar shows the second page url, but the browser display the final destination site
  2. I add google analytic in final site, and it doesnt capture the traffic that was bounced from page 2

Any idea why this happens?

Sponsor our Newsletter | Privacy Policy | Terms of Service