zoukankan      html  css  js  c++  java
  • 由“ASP.NET网站限制访问频率”想到的两点问题

    “ASP.NET网站限制访问频率”的作者遇到了两大问题。一是验证码被破解,二是恶意用户通过使用代理变换IP来摆脱作者的限制。

    先说说验证码破解
    提起来破解验证码,小菜们肯定都直摇头,觉得那是图形学和算法高手们研究的事情,小菜们只能心有余而力不足。
    然而博主使用的验证码其实很容易破掉。打开博主的网站http://freesms.cloudapp.net/Default.aspx,在图片验证码上点击右键然后选择“属性”,可以看到验证码的地址“http://freesms.cloudapp.net/VerifyCode.aspx?”。很奇怪吧,咋地是个aspx页面那!别着急,打开一个浏览器按shift+F2调出httpwatch(很有用的第三方IE插件,请自行获取安装。),点急record打开监控。下面把刚才获取的验证码地址粘贴到地址栏里并按回车访问他。下面是httpwatch抓到的部分返回结果:
    HTTP/1.1 200 OK
    Cache-Control: private
    Content-Type: image/Jpeg; charset=utf-8
    Server: Microsoft-IIS/7.0
    X-AspNet-Version: 2.0.50727
    Set-Cookie: 1945.47704561149=IDNH6; path=/
    X-Powered-By: ASP.NET
    Date: Sat, 19 Sep 2009 14:28:58 GMT
    Content-Length: 8697
    请注意这一行“Set-Cookie: 1945.47704561149=IDNH6; path=/”再看看ie里的显示
    如下图

    诸位看官应该明白怎么回事了吧。VerifyCode.aspx的任务很简单,随意生成一组字母如“IDNH6”然后把它变成图像输出到客户的,并把这组字母以明文的形式保存到cookie里,以便用户提交请求时从cookie中读取并与用户提交的结果进行比较。
    要想破解只要在提交post请求时在http头里伪造一个假的cookie值即可。因为校验程序只要确认用户填写的验证码和cookie里的那个(可以伪造)相同就放行。

    再谈谈第二个问题“恶意用户通过使用代理变换IP来摆脱作者的限制”。
    所谓使用代理来变换IP对大部分asp.net网站其实不需要挂代理就能实现IP的欺骗。
    先看一段网上广为流传的获取用户真实IP的实现代码

    #region 获取用户真实IP地址
            /// <summary>
            /// 获取用户真实IP地址
            /// </summary>
            /// <returns>返回用户真实IP</returns>
            public static string GetUserRealrIp()
            {
                string user_IP = "";

                if (System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
                {
                    user_IP = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
                }
                else
                {
                    user_IP = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
                }
                return user_IP;  
            }
            #endregion
    下面演示一下如何伪造一个虚假的访问IP
    不多介绍,直接上代码
    制造虚假IP的客户的:

    Code

    getip.aspx

    Code


    下面是运行结果:


    如何避免这种地址获取机制的缺陷,还是请大家各抒己见吧。

  • 相关阅读:
    BZOJ 1951: [Sdoi2010]古代猪文( 数论 )
    BZOJ 1176: [Balkan2007]Mokia( CDQ分治 + 树状数组 )
    BZOJ 1066: [SCOI2007]蜥蜴( 最大流 )
    BZOJ 1935: [Shoi2007]Tree 园丁的烦恼( 差分 + 离散化 + 树状数组 )
    BZOJ 1297: [SCOI2009]迷路( dp + 矩阵快速幂 )
    BZOJ 1406: [AHOI2007]密码箱( 数论 )
    BZOJ 1876: [SDOI2009]SuperGCD( 更相减损 + 高精度 )
    spfa2
    spfa
    bellmanford队列优化
  • 原文地址:https://www.cnblogs.com/wangwei/p/1570242.html
Copyright © 2011-2022 走看看