阿权这些天有研究过一下这个问题,其实伪造HTTP-REFERER是一些流氓软件或者是一些批量注册或灌注信息的工具必备的,因为这样才能跳过服务器的HTTP-REFERER检查。

当然,出于研究也好或者出于伪造也好,了解一下吧!

先看看伪造的方法,看看服务器端的手段,服务器可以轻松实现,但是一个直接的问题就是查 remote_addr的时候,就只有一个了,容易被禁止IP:

ASP:
dim http
set http=server.createobject("MSXML2.XMLHTTP") '//MSXML2.serverXMLHTTP也可以
Http.open "GET",url,false
Http.setRequestHeader "Referer","http://www.fromdomain.cn/"
Http.send()


PHP(前提是装了curl):

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://www.readdomain.cn/xxx.asp");
curl_setopt ($ch, CURLOPT_REFERER, "http://www.fromdomain.cn/");
curl_exec ($ch);
curl_close ($ch);


PHP(不装curl用sock)

$server = 'www.readdomain.cn';
$host = 'www.fromdomain.cn';
$target = '/xxx.php';
$referer = 'http://www.aslibra.com/'; // Referer
$port = 80;
$fp = fsockopen($server, $port, $errno, $errstr, 30);
if (!$fp)
{
echo "$errstr ($errno)<br />\n";
}
else
{
$out = "GET $target HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Cookie: SESSIONID=test\r\n";
$out .= "Referer: $referer\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp))
{
echo fgets($fp, 128);
}
fclose($fp);
}


VB.NET/C#.NET


Dim oXMLHttp As MSXML2.XMLHTTP30 = New MSXML2.XMLHTTP30()
或者
MSXML2.XMLHTTP30 oXMLHttp = new MSXML2.XMLHTTP30();
oXMLHttp.open(....
oXMLHttp.setRequestHeader(...
oXMLHttp.send(..


引用
原理都是sock构造http头来senddata。其他语言什么的比如perl也可以,目前比较简单的防御伪造referer的方法是用验证码(Session)。现在有一些能防盗链软件的商业公司比如UUDOG,linkgate,VirtualWall什么的,都是开发的应用于IIS上面的dll。有的是采用cookies验证、线程控制,有的是能随机生成文件名然后做URL重写。有的方法能的确达到不错的效果.


一般的就是这样的了,但是服务器就不好实现伪造,只能制造不多的数据了,如果可以实现访问网页就可以伪造,那就可以实现了真正的伪造,实现自然IP分布。

不过,js好像不支持修改,网上有代码,可是测试过是不行:


 <script   language="javascript">  
 var   oReq   =   new   ActiveXObject("Microsoft.XMLHTTP");  
 oReq.Open("GET","b.php",false);  
 oReq.SetRequestHeader("Referer","");  
 oReq.Send();  
 document.write(oReq.responseText);
 </script>


上面是JS的代码,请求的b.php只要简单的把信息打印出来就知道了:

<?
$out="";
foreach($_SERVER as $k=>$v){
 $out.=$k." : ".$v."\n";
}
//可以写入文件做分析
file_put_contents(time().".txt",$out);
echo '<pre>';
echo $out;
?>


引用
   [HTTP_ACCEPT] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-shockwave-flash, */*
   [HTTP_REFERER] => http://www.aslibra.com/test/referrer/a.php?1187692842
.....


看的出来,修改并不成功,也就是没法做修改了,如果是出于安全,那也真的不给修改的,否则这个世界真的不安静了,特别像我这种可能做坏事的人,呵呵~~


原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘
Tags: ,
素衣 Homepage Email
2011/03/19 12:18
请问博主,php用socks那段,对使用JS统计的网站有效么?
hqlulu 回复于 2011/03/20 09:02
你是指对造假是否有帮助吗?
beijing
2010/02/05 18:53
asp的代码不起作用啊,是不是新的iis识别了这个手段?
hqlulu 回复于 2010/02/05 19:42
原谅我对asp不熟,给不了你什么帮助,自己查点其他资料参考一下吧
INGHOT
2009/12/17 17:13
好像ASP的那个不行哦
hqlulu 回复于 2009/12/17 19:17
这我没怎么玩asp了,代码只是参考来的,asp的没测试过
kalso Homepage Email
2008/11/10 13:12
php的代码那个怎么使用啊?
望博主指教啊!
kalso@qq.com
谢谢!
小弟不才 对php不熟悉
还望博主给小弟一个完整的代码
能运行的代码
谢谢博主啦
kalso@qq.com期待博主的莅临!
hqlulu 回复于 2008/11/10 22:33
文中的已经是完整的代码了,请自己尝试去做,基础的内容还是需要自己多看书和相关资料学习
kalso Homepage Email
2008/11/07 12:54
php的代码那个怎么使用啊?
望博主指教啊!
kalso@qq.com
谢谢!
hqlulu 回复于 2008/11/07 21:56
你说的是哪一段?是哪里不明白呢
分页: 1/1 第一页 1 最后页
发表评论
AD
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML 打开UBB 打开表情 隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

 

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐