VBS伪造HTTP-REFERER的实现方法

在测试目录写了一个简单的referer.php,代码如下


代码如下:

<?php
if (!isset($_SERVER["HTTP_REFERER"]))
echo "No Referer";
else
echo $_SERVER["HTTP_REFERER"];
?>

如果直接点击上面的链接,那么页面会显示referer页面的链接。


代码如下:

Set http = CreateObject("msxml2.xmlhttp")
http.open "GET","http://jb51.net/test/referer.php",False
http.setRequestHeader "Referer","http://jb51.net"
http.send
WScript.Echo http.responseText

但是如果我用VBS调用msxml2.xmlhttp组件访问这个页面,返回的却是No Referer。实在匪夷所思,难道我的代码写错了?

于是Google了一下“VBS伪造HTTP REFERER”,发现搜出来的内容大部分和这篇文章一样,不用看又是复制粘贴,你抄我的,我抄你的,抄来抄去不知道到底是谁的,而且还是错的!
那篇文章第一个例子是ASP的


代码如下:

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

开始我还以为ASP下的VBS和我直接双击运行的VBS不一样,ASP下的比较牛逼,可以改Referer。为此我还专门装了IIS测试,发现返回的照样是No Referer。后来才看到下面的留言,“原谅我对asp不熟,给不了你什么帮助,自己查点其他资料参考一下吧”,“这我没怎么玩asp了,代码只是参考来的,asp的没测试过”。

我真的不想骂人,不熟你写也就算了,起码测试一下吧,没有测试过的代码你也好意思贴上来?后来在千一网络(这个网络貌似不错)看到一个比较靠谱的答案,Referer在ASP和Ajax中是无法通过设置Header来更改的。

怒了,既然xmlhttp组件不行,我用socket来写总行了吧!(注:不是所有电脑上都注册了Winsock组件)


代码如下:

Set socket = WScript.CreateObject("MSWinsock.Winsock","Winsock_")
socket.RemoteHost = "jb51.net"
socket.RemotePort = 80
socket.Connect
Do
WScript.Sleep 100
Loop
Sub Winsock_Connect()
data = "GET /test/referer.php HTTP/1.1" & vbCrLf &_
"Referer: http://jb51.net" & vbCrLf &_
"Host: jb51.net" & vbCrLf & vbCrLf
socket.SendData data
End Sub
Sub Winsock_DataArrival(bytesTotal)
socket.GetData str
WScript.Echo Utf8ToUnicode(str)
WScript.Quit
End Sub

Utf8ToUnicode函数比较长就不贴出来了,以前的文章写过。测试结果如下:


代码如下:

HTTP/1.1 200 OK
Date: Thu, 04 Nov 2010 14:05:20 GMT
Server: Apache
Transfer-Encoding: chunked
Content-Type: text/html
f
http://jb51.net
0

可以肯定伪造Referer成功了,但是返回的结果好像有点奇怪,jb51.net前面和后面一行的f和0是什么东西啊?(其实用浏览器访问也是这样返回的,只不过浏览器不显示给我们看罢了)我猜想f是Referer字符串的长度,但是搜了半天也找不到解释。不管了,伪造成功就行,结果难看点就难看点吧。
原文:http://demon.tw/programming/vbs-http-referer.html

(0)

相关推荐

  • 流量统计器如何鉴别C#:WebBrowser中伪造referer

    使用webbrowser伪造referer的方法:webBrowser1.Navigate(url, "_self", null, "Referer:http://www.xxx.com") 这段时间一直研究怎么才能在 webbrowser中设置referer来路来伪造来路进行刷流量,可是最后研究了半个月最终以失败告终,因为现在的统计代码,比较实际的就是cnzz.com和google adsense自带的统计,他们的统计都是通过js文件进行统计的,这样就形成了伪造来

  • ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER方法探讨

    HTTP-REFERER这个变量已经越来越不可靠了,完全就是可以伪造出来的东东. 以下是伪造方法: ASP: 复制代码 代码如下: dim http   set http=server.createobject("MSXML2.XMLHTTP") '//MSXML2.serverXMLHTTP也可以  Http.open "GET",url,false   Http.setRequestHeader "Referer","http://

  • ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER的方法

    HTTP-REFERER这个变量已经越来越不可靠了,完全就是可以伪造出来的东东. 以下是伪造方法: ASP/Visual Basic代码 dim http      set http=server.createobject("MSXML2.XMLHTTP") '//MSXML2.serverXMLHTTP也可以     Http.open "GET",url,false      Http.setRequestHeader "Referer",&

  • 使用php伪造referer的方法 利用referer防止图片盗链

    什么是HTTP Referer简言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理.比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站.Referer其实应该是英文单词Referrer,不过拼错的人太多了,所以编写标准的人也就将错就错了.我的问题我刚刚把feed阅读器改变为Grega

  • PHP伪造referer实例代码

    这里就直接给出完整的程序吧,具体的应用可以自己修改. 我这里给出的例子是很简单的,其实可以从这个例子中发展出很多的应用.比如隐藏真实的URL地址--嘿嘿,具体的就自己分析去吧 这里新建一个文件file.php.后面的参数就是需要伪造referfer的目标地址吧.如:file.php/http://www.xxx.xxx/xxx.mp3 复制代码 代码如下: <? $url=str_replace('/file.php/','',$_SERVER["REQUEST_URI"]);/

  • 用PHP伪造referer突破网盘禁止外连的代码

    比如我放纳米盘里的文件http://img.namipan.com/downfile/da333ee178bdad6531d1ec1540cf86277c116b6300887600/02.Paid%20In%20Full.mp3 这个地址不能直接下载也不能在网页播放器里播放,点击下载转到了一个下载页面.要想能够直接下载这个文件或播放这个文件,那就要伪造referfer,欺骗服务器,referfer是来自纳米盘的链接. 最开始使用的方法是用PHP内置的函数stream_context_creat

  • VBS伪造HTTP-REFERER的实现方法

    在测试目录写了一个简单的referer.php,代码如下 复制代码 代码如下: <?php if (!isset($_SERVER["HTTP_REFERER"])) echo "No Referer"; else echo $_SERVER["HTTP_REFERER"]; ?> 如果直接点击上面的链接,那么页面会显示referer页面的链接. 复制代码 代码如下: Set http = CreateObject("msx

  • 浅谈ASP.NET MVC 防止跨站请求伪造(CSRF)攻击的实现方法

    在HTTP POST请求中,我们多次在View和Controller中看下如下代码: 1.View中调用了Html.AntiForgeryToken(). 2.Controller中的方法添加了[ValidateAntiForgeryToken]注解. 这样看似一对的写法其实是为了避免引入跨站请求伪造(CSRF)攻击. 这种攻击形式大概在2001年才为人们所认知,2006年美国在线影片租赁网站Netflix爆出多个CSRF漏洞,2008年流行的视频网址YouTube受到CSRF攻击,同年墨西哥一

  • php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法

    解决方法: 使用服务器作为代理. 在PHP中, 使用我最喜欢的最强大的CURL,嘿嘿 下面是在万网查询域名的实例代码 复制代码 代码如下: <?php $dn = $_GET['dn']; // 域名, 不包括www $ex = $_GET['ex']; // 顶级域名, 如 .com, .cn, 包括最前面的. // 查询域名是否已经注册 $url = 'http://pandavip.www.net.cn/check/check_ac1.cgi'; $ch = curl_init($url)

  • 使用 Iisext.vbs 列出Web服务扩展的方法

    应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1 可使用命令行脚本 iisext.vbs(存储在 systemroot\system32 中)列出所有已定义的 Web 服务扩展的 ID.这些扩展必须驻留在运行带有 IIS 6 的 Windows Server 2003 家族的成员的计算机上. Iisext.vbs 执行可用于 IIS 管理器的相同的操作.您可以使用任一工具来管理 IIS 网

  • vbs 解析html文档的方法(htmlfile)

    关于VBS采集,网上流行比较多的方法都是正则,其实 htmlfile 可以解析 html 代码,但如果 designMode 没开启的话,有时候会包安全提示信息. 但是开启 designMode (@预言家晚报 分享的方法) 的话,所有js都不会被执行,只是干干净净的dom文档,所以在逼不得已的情况下开启 designMode 一般情况保持默认即可. Set html = CreateObject("htmlfile") Set http = CreateObject("Ms

  • VBS加密与VBE解密实现方法

    用Script Encoder加密VBS脚本 Script Encoder 是一个简单的命令行工具,脚本设计者可使用此工具对他们的最终脚本进行编码,从而使 Web 主机和 Web 客户端无法查看或更改其源代码.注意,这种编码只能防止对您代码的一般性浏览,而无法防止专业黑客查看您的代码和实现方式. 这其实并不是加密(encrypt)而仅仅是编码(encode),只不过乍一看是乱码,好像被加密过一样.使用方法很简单,安装目录有帮助手册,上面写得很清楚,在这里举一个最简单的用法,使用下面的命令加密ex

  • 最新恶意复制型病毒autorun.inf,stNP.VBS,NP.VBS代码简单解析和解决方法

    最新恶意复制型病毒autorun.inf,stNP.VBS,NP.VBS 及代码分析与病毒处理两种方法 方法一:来自于指间轻舞 此病毒最大的特点在于中毒后,自动感染你的硬盘根目录,并复制病毒文件.无论你是采用双击,还是右键选择打开,或者运行资源管理器都会自动运行其代码(病毒),所以中此病毒后,新手往往打不开盘符,导致数据无法读取. 下面是病毒的代码分析 文件总共有三个 都很简单,已经加上了注解. 文件名:autorun.inf 复制代码 代码如下: [autorun]  open=  shell

  • VBS访问剪贴板的几种方法小结

    复制代码 代码如下: Set IE = CreateObject("InternetExplorer.Application") IE.Navigate("about:blank") Set clipboard = IE.document.parentWindow.clipboardData 'SetData设置剪切板的内容 clipboard.SetData "text", "忘记了,喜欢一个人的感觉" 'GetData获取

  • 使用 iisext.vbs 禁用 Web 服务扩展的方法

    应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1 可以使用命令行脚本 iisext.vbs(存储于 systemroot\system32 中),通过禁用所有具有特定 Web 服务扩展 ID 的文件来禁用 Web 服务扩展.该命令可在运行带有 IIS 6.0 的 Windows Server 2003 家族的成员的本地或远程计算机上执行. Iisext.vbs 执行可用于 IIS 管理器的

  • 使用 Iisext.vbs 启用Web服务扩展的方法

    应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1 可以使用命令行脚本 iisext.vbs(存储于 systemroot\system32 中)启用 Web 服务扩展.Web 服务扩展在 WebSvcExtRestrictionList Metabase Property中必须至少有一个文件与之关联.该命令可在运行带有 IIS 6.0 的 Windows Server 2003 家族的成员

随机推荐