在ASP.net C#中伪造浏览器请求

时间:2009-03-13 14:02:54

标签: asp.net http-headers c#-2.0

我正在使用下面的代码来提取我们的第三方开发页面之一,因此我可以将其解析为XML,用于随机工作。

我们在服务器上设置了浏览器检测级别,只允许某些浏览器访问该站点;所以问题是如何伪造它以便服务器认为它是浏览器请求?

   static string GetHtmlPage(string strURL)
    {

        String strResult;
        System.Net.WebResponse objResponse;

        System.Net.WebRequest objRequest = System.Net.HttpWebRequest.Create(strURL);

        objResponse = objRequest.GetResponse();
        using (System.IO.StreamReader sr = new System.IO.StreamReader(objResponse.GetResponseStream()))
        {
            strResult = sr.ReadToEnd();
            sr.Close();
        }
        return strResult;
    }

4 个答案:

答案 0 :(得分:15)

浏览器检测是根据对服务器的请求中的标头完成的。您需要做的就是设置标题。但是,使用HttpWebRequest时,不要通过headers集合设置它,而是使用.UserAgent属性。

...
System.Net.WebRequest objRequest = 
   System.Net.HttpWebRequest.Create(strURL);

//Pretend to be IE7
((System.Net.HttpWebRequest)objRequest).UserAgent = 
   "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)";

objResponse = objRequest.GetResponse();
...

答案 1 :(得分:3)

您可以在页面中使用ClientTarget属性。 E.g。

http://msdn.microsoft.com/en-us/library/system.web.ui.page.clienttarget.aspx

http://msdn.microsoft.com/en-sg/library/6379d90d(v=vs.85).aspx

根据需要设置配置......

E.g。

<configuration>
   <system.web>
      <clientTarget>
         <add alias="ie5" userAgent="Mozilla/4.0 (compatible;MSIE 5.5;Windows NT 4.0)"/>
         <add alias="ie4" userAgent="Mozilla/4.0 (compatible;MSIE 4.0;Windows NT 4.0)"/>
         <add alias="uplevel" userAgent="Mozilla/4.0 (compatible;MSIE 4.0;Windows NT 4.0)"/>
         <add alias="downlevel" userAgent="Unknown"/>
      </clientTarget>
   </system.web>
</configuration>

然后您可以按如下方式使用它。

<asp:Page ClientTarget="downlevel" />

这会伪造请求!

答案 2 :(得分:1)

我认为大多数(如果不是全部)浏览器检测都是基于HttpRequest.UserAgent属性设置的User-Agent标头。我看到有一个网站用于各种浏览器的用户代理字符串:http://www.user-agents.org/

答案 3 :(得分:0)

与上面的Waldens一样 但必须更换

objRequest.UserAgent = 
   "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)";

<强>与

((System.Net.HttpWebRequest)objRequest).UserAgent = "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)";

否则它会倒下。 (我将浏览器更改为googlebot以逃避我们的cookie服务器)