ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER的方法
ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER的方法
发布时间:2016-12-29 来源:查字典编辑
摘要:HTTP-REFERER这个变量已经越来越不可靠了,完全就是可以伪造出来的东东。以下是伪造方法:ASP/VisualBasic代码dimht...

HTTP-REFERER这个变量已经越来越不可靠了,完全就是可以伪造出来的东东。

以下是伪造方法:

ASP/VisualBasic代码

dimhttp

sethttp=server.createobject("MSXML2.XMLHTTP")'//MSXML2.serverXMLHTTP也可以

Http.open"GET",url,false

Http.setRequestHeader"Referer","http://www.dc9.cn/"

Http.send()

PHP(前提是装了curl):

PHP代码

$ch=curl_init();

curl_setopt($ch,CURLOPT_URL,"http://www.dc9.cn/xxx.asp");

curl_setopt($ch,CURLOPT_REFERER,"http://www.dc9.cn/");

curl_exec($ch);

curl_close($ch);

PHP(不装curl用sock)

PHP代码

$server='www.dc9.cn';

$host='www.dc9.cn';

$target='/xxx.asp';

$referer='http://www.dc9.cn/';//Referer

$port=80;

$fp=fsockopen($server,$port,$errno,$errstr,30);

if(!$fp)

{

echo"$errstr($errno)<br/>n";

}

else

{

$out="GET$targetHTTP/1.1rn";

$out.="Host:$hostrn";

$out.="Cookie:ASPSESSIONIDSQTBQSDA=DFCAPKLBBFICDAFMHNKIGKEGrn";

$out.="Referer:$refererrn";

$out.="Connection:Closernrn";

fwrite($fp,$out);

while(!feof($fp))

{

echofgets($fp,128);

}

fclose($fp);

}

VB.NET/C#.NET

C#代码

DimoXMLHttpAsMSXML2.XMLHTTP30=NewMSXML2.XMLHTTP30()

或者

MSXML2.XMLHTTP30oXMLHttp=newMSXML2.XMLHTTP30();

oXMLHttp.open(....

oXMLHttp.setRequestHeader(...

oXMLHttp.send(..

javascript

JavaScript代码

xmlHttp.setRequestHeader("Referer","http://URL");//???呵呵~假的~

JS不支持^_^

原理都是sock构造http头来senddata。其他语言什么的比如perl也可以,

目前比较简单的防御伪造referer的方法是用验证码(Session)。

现在有一些能防盗链软件的商业公司比如UUDOG,linkgate,VirtualWall什么的,都是开发的应用于IIS上面的dll。

有的是采用cookies验证、线程控制,有的是能随机生成文件名然后做URL重写。有的方法能的确达到不错的效果.

不过道高一尺,魔高一丈,这些雕虫小技终归是有破解方法的。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新黑客相关学习
热门黑客相关学习
编程开发子分类