Asp WinHttp.WinHttpRequest.5.1 对象使用详解 伪造 HTTP 头信息_小偷/采集

由于微软封锁了 XmlHttp 对象,所以无法伪造部分 HTTP 头信息,但是 WinHttp.WinHttpRequest.5.1 对象,它居然用可以成功伪造所有 http 请求的 header 信息!

从msdn得知,WinHttp.WinHttpRequest.5.1 是 msxml 4.0 的底层对象,也就是说 XMLHTTP/ServerXMLHTTP 也是在它的基础上封装而来,WinHttpRequest 的用法与 XmlHttp 大致相同。

WaitForResponse 在使用异步方式发送请求时,可以用这个方法来控制请求的进程,指定的等待时间,以秒为一个异步传送方法来完成的值,SetTimeouts。

在服务端脚本中,不可以像客户端那样直接使用回调函数来控制异步请求,也没有相应的函数来使用程序休眠一定的时间,因此,为了等待请求返回,我们可以使用这个方法来等待一定时间。

复制代码 代码如下:

<%
Dim WinHttp
Set WinHttp = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
'设置参数
WinHttp.SetTimeouts 60000, 60000, 60000, 3000 '设置操作超时时间
'WinHttp.SetTimeouts resolveTimeout, connectTimeout, sendTimeout, receiveTimeout
'resolveTimeout = 10000 '解析 DNS 名字的超时时间,10000 毫秒。
'connectTimeout = 10000 '建立 Winsock 连接的超时时间,10000 毫秒。
'sendTimeout = 120000 '发送数据的超时时间,120000 毫秒。
'receiveTimeout = 60000 '接收 response 的超时时间,60000 毫秒。
WinHttp.Option(4) = 13056 '忽略错误标志
WinHttp.Option(6) = False '为 True 时,当请求页面重定向跳转时自动跳转,False 不自动跳转,截取服务端返回的302状态。
WinHttp.Open "GET", "http://www.baidu.com/", False 'GET 或 POST, Url, False 同步方式;True 异步方式
'组成 HTTP 头信息
WinHttp.SetRequestHeader "Accept", "*/*" '接受数据类型
WinHttp.SetRequestHeader "Accept-Language", "zh-cn,zh" '用户系统语言
WinHttp.SetRequestHeader "User-Agent", "Mozilla/6.0" '用户浏览器信息
WinHttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" '编码方式
WinHttp.SetRequestHeader "Referer", "http://www.baidu.com/" '来路
WinHttp.SetRequestHeader "Connection", "Close" 'Close = 不保持连接,Keep-Alive = 保持连接(持久连接)
'WinHttp.SetRequestHeader "Accept-Encoding", "gzip, deflate" '如果发送,会返回 gzip, deflate 压缩过的编码
'WinHttp.SetRequestHeader "Content-Length", Len(Str) '内容长度,Post 方式用的。
WinHttp.SetRequestHeader "Cookie", "test cookie!" '设置 Cookie
'发送数据
WinHttp.Send 'Post 方式:WinHttp.Send (参数)
WinHttp.WaitForResponse '等待返回请求,XMLHTTP中也可以使用
'输出结果
Response.Write WinHttp.Status '当前 HTTP 状态
'Response.Write WinHttp.ResponseText '文本数据
Response.BinaryWrite WinHttp.ResponseBody '二进制数据流数据
%>

Option()相关:

WinHttpRequestOption_UserAgentString = 0;
WinHttpRequestOption_URL = 1;
WinHttpRequestOption_URLCodePage = 2;
WinHttpRequestOption_EscapePercentInURL = 3;
WinHttpRequestOption_SslErrorIgnoreFlags = 4;
WinHttpRequestOption_SelectCertificate = 5; '13056 = 忽略错误标志
WinHttpRequestOption_EnableRedirects = 6; '为True时,当请求的页面中有跳转时,抓取跳转页面信息.False相反不抓取
WinHttpRequestOption_UrlEscapeDisable = 7;
WinHttpRequestOption_UrlEscapeDisableQuery = 8;
WinHttpRequestOption_SecureProtocols = 9;
WinHttpRequestOption_EnableTracing = 10;
WinHttpRequestOption_RevertImpersonationOverSsl = 11;
WinHttpRequestOption_EnableHttpsToHttpRedirects = 12;
WinHttpRequestOption_EnablePassportAuthentication = 13;
WinHttpRequestOption_MaxAutomaticRedirects = 14;
WinHttpRequestOption_MaxResponseHeaderSize = 15;
WinHttpRequestOption_MaxResponseDrainSize = 16;
WinHttpRequestOption_EnableHttp1_1 = 17;
WinHttpRequestOption_EnableCertificateRevocationCheck = 18;

方法 Description 说明

Abort 中止一个WinHTTP的 发送方法。
GetAllResponseHeaders 检索所有的HTTP响应头。
GetResponseHeader 检索HTTP响应头。
Open 打开一个HTTP连接到HTTP资源。
Send 发送一个HTTP请求到HTTP服务器。
SetAutoLogonPolicy 设置当前自动登录策略。
SetClientCertificate 选择一个客户端证书发送到一个安全的超文本传输协议(HTTPS)服务器。
SetCredentials 设置要使用的凭据与HTTP服务器,要么是原籍国或代理服务器。
SetProxy 设置代理服务器信息。
SetRequestHeader 添加,更改或删除一个HTTP请求标头。
SetTimeouts 指定以毫秒为单位,个人的时间超过了一个组件发送/接收操作。
WaitForResponse 指定的等待时间,以秒为一个异步传送方法来完成的值,SetTimeouts。

该 WinHttpRequest 对象定义以下属性。

属性 访问类型 说明

Option 读/写 设置或检索一个WinHTTP的选项值。
ResponseBody 只读 检索作为无符号字节数组的响应实体机构。
ResponseStream 只读 检索机构作为响应实体的IStream。
ResponseText 只读 作为文本检索响应实体机构。
Status 只读 从上次检索响应的HTTP状态代码。
StatusText 只读 获取HTTP状态的文本。

Events 活动

The WinHttpRequest object defines the following events.
WinHttpRequest 对象定义的下列事件。

Event 事件 Description说明

OnError Occurs when there is a run-time error in the application.
当发生一个应用程序运行时错误时发生。
OnResponseDataAvailable Occurs when data is available from the response.
当响应数据可用时发生。
OnResponseFinished Occurs when the response data is complete.
响应数据完成时发生。
OnResponseStart Occurs when the response data starts to be received.
开始收到响应数据时发生。

Remarks 备注

The WinHttpRequest object uses the IErrorInfo interface to provide error data.
该 WinHttpRequest 对象使用 IErrorInfo 接口来提供错误数据。
A description and numerical error value can be obtained with the Err object in Microsoft Visual Basic Scripting Edition (VBScript),
and the Error object in Microsoft JScript.
The lower 16 bits of an error number correspond to the values found in Error Messages.
Note For Windows XP and Windows 2000, see Run-Time Requirements.
注意:对于 Windows XP 和 Windows 2000,请参阅运行时间要求。

Requirements 要求

最低支持的客户端 Windows XP, Windows 2000 Professional with SP3 Windows XP
最低支持的服务器 Windows Server 2003, Windows 2000 Server with SP3

可再发行 WinHTTP 5.0 and Internet Explorer 5.01 or later on Windows XP and Windows 2000.
WinHTTP的5.0和Internet Explorer 5.01或更高版本的Windows XP和Windows 2000。
IDL HttpRequest.idl HttpRequest.idl
Library Winhttp.lib Winhttp.lib
DLL Winhttp.dll Winhttp.dll

时间: 2024-09-20 05:57:04

Asp WinHttp.WinHttpRequest.5.1 对象使用详解 伪造 HTTP 头信息_小偷/采集的相关文章

Asp WinHttp.WinHttpRequest.5.1 对象使用详解 伪造 HTTP 头信息

由于微软封锁了 XmlHttp 对象,所以无法伪造部分 HTTP 头信息,但是 WinHttp.WinHttpRequest.5.1 对象,它居然用可以成功伪造所有 http 请求的 header 信息! 从msdn得知,WinHttp.WinHttpRequest.5.1 是 msxml 4.0 的底层对象,也就是说 XMLHTTP/ServerXMLHTTP 也是在它的基础上封装而来,WinHttpRequest 的用法与 XmlHttp 大致相同. WaitForResponse 在使用异

ASP的Request和Response对象使用详解

Request和Response这两个对象是ASP所提供的内置对象中最常用的两个.在浏览器(或其他用户代理)和Web服务器之间,请求与响应中发生的信息交流可以通过ASP中的两个内置对象来进行访问和管理,这两个对象称为Request和Response对象. 在ASP页中所要进行的工作几乎都要访问这两个对象,使用这两个对象的方式将影响页面的效率及可靠性.当然,它们的主要用途是访问用户发回到服务器的值,即从HTML页的<FORM>段获得或附在URL后面作为查询字符串,并创建合适的输出返回给用户,且它

ASP利用XMLHTTP实现表单提交以及cookies的发送的代码_小偷/采集

确实,如果在原网站如果存在表单提交或cookies的验证,对于ASP来说,不使用基于SOCKET的组件就难以完成,其实,XMLHTTP的另外两个方法被我们忽略了,而这正是问题的关键. 下面首先来说说这个方法  1..send()         由于流行的小偷是使用的GET而不是POST来传送数据,所以很多人忽略了这个方法,而使用SEND发送数据也很简单,就是SEND("内容"),可是,         发送表单就不是这么简单,因为你发送的表单如果是中文的话,就要牵扯到编码的问题了. 

实例讲解ASP实现抓取网上房产信息_小偷/采集

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <!-- #include file="conn.ASP" -->  <!-- #include file="inc/function.asp" --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" &quo

详解ASM磁盘头信息备份

ASM磁盘头信息保存在每个磁盘的前4K里面,这个信息的备份对于ASM的恢复非常重要,有下面的几种方法 1.直接做dd来备份磁盘的前4K,磁盘头信息丢失时,dd回来 备份:dd if=/dev/raw/raw1    of=/gyj/asmheader.dd   bs=4096 count=1 恢复:dd if=/gyj/asmheader.dd    of=/dev/raw/raw1 2.利用oracle的kfed工具来备份,将磁盘头信息转换成文本明文形式记录下来,恢复时使用kfed merge

asp 内置对象 Application 详解

asp内置对象 Application 详解  在 ASP 的内建对象中除了用于发送.接收和处理数据的对象外,还有一些非常实用的代表 Active Server 应用程序和单个用户信息的对象.  让我们先来看看 Application 对象.在同一虚拟目录及其子目录下的所有 .asp 文件构成了 ASP 应用程序.我们非但可以使用 Application 对象,在给定的应用程序的所有用户之间共享信息,并在服务器运行期间持久的保存数据.而且,Application 对象还有控制访问应用层数据的方法

asp 内置对象 Application 详解_ASP基础

asp内置对象 Application 详解  在 ASP 的内建对象中除了用于发送.接收和处理数据的对象外,还有一些非常实用的代表 Active Server 应用程序和单个用户信息的对象.  让我们先来看看 Application 对象.在同一虚拟目录及其子目录下的所有 .asp 文件构成了 ASP 应用程序.我们非但可以使用 Application 对象,在给定的应用程序的所有用户之间共享信息,并在服务器运行期间持久的保存数据.而且,Application 对象还有控制访问应用层数据的方法

ASP内置对象ObjectContext详解

object|对象|内置对象|详解     您可以使用 ObjectContext 对象提交或放弃一项由 Microsoft Transaction Server (MTS) 管理的事务,它由 ASP 页包含的脚本初始化.      ASP 包含 @TRANSACTION 指令时,该页会在事务中运行,直到事务成功或失败后才会终止.      语法   ObjectContext.method      方法   SetComplete SetComplete 方法声明脚本不了解事务未完成的原因.

ASP内置对象Application详解

application|对象|内置对象|详解 在 ASP 的内建对象中除了用于发送.接收和处理数据的对象外,还有一些非常实用的代表 Active Server 应用程序和单个用户信息的对象.    让我们先来看看 Application 对象.在同一虚拟目录及其子目录下的所有 .asp 文件构成了 ASP 应用程序.我们非但可以使用 Application 对象,在给定的应用程序的所有用户之间共享信息,并在服务器运行期间持久的保存数据.而且,Application 对象还有控制访问应用层数据的方