一个Web应用放在移动机房、他们进行漏洞扫描的时候、说可以猜测出我们Web应用的密码。郁闷、用户数据库是没有这个用户的。
是不是什么Jboss的后台用户也不对了、我的jmx-console用户名跟密码都是自己从新配置过的!
根本没有什么root!
服务的环境是:
系统:Windows Server 2003
Web容器:Jboss6 M1
应用程序语言框架:SSH+Jquery
数据库:Oracle求解啊、指点指点、这到底是个神马漏洞!详细描述  通过用户名、密码字典多次尝试目标站点基于表单的登录,猜测出可用于登录该站点的用户名,口令。                由于是通过枚举用户名,口令多次尝试登录,未限制登录错误次数的站点易受到次攻击。
                本漏洞属于Web应用安全常见漏洞.解决办法  建议限制用户错误登录的次数,当超过错误登录次数,锁定该账户。这是他们给的信息、登录错误次数早就已经限制了、而且老子直接后台判断如果登录的用户名为root、直接给它返回回来!
但是他们节后还是发邮件给我们说、这个漏洞依然存在、无语了!

解决方案 »

  1.   

    请求方式是GET?有意思,也就是直接:在浏览器输入: http://xxx.xxx.xxx/yd/jsppages/login.jsp?username=root&password=xxoo
    就可以进行密码穷举了?
    你的登录错误次数限制是用什么方式来做的?不会是Cookie吧?这个是没意义的。
      

  2.   


    限制是后台来的、查看登录错误次数先、如果超过3次就直接返回了、他请求方式是get的、应该是用Socket!
      

  3.   

    后台限制的方式是什么?比如是在数据库中用户表里面记录尝试登录错误次数和时间?还是其它方式?HTTP本来就是基于TCP协议的。GET只不过是把参数直接写在URL里面而已。你用Telnet都可以发起GET请求,比如:C:\>telnet  xxx.xxx.xxx.xxx 80
    GET /yd/jsppages/login.jsp?username=root&password=xxoo HTTP/1.0
    [然后连续回车两次]就可以看到结果了。Anyway,靠谱的方式还是跟对方套套近乎,然后问问他们是怎么测试出来的,具体点是怎么做的,用了什么技巧还是SQL注入了等等?然后再研究对策。
    注意关键字要全大写的。
      

  4.   


    我在登录日志里面看到他们的SQL注入还真不少!
    就是在一张日志表中记录登录错误次数、然后登录前根据时间判断、一天之内的错误次数!
    超过三次就返回了、当然登录正确后、就把该用户错误的数据都删除掉了!
    我也想套近乎啊、但是我人都找不到呢、问移动的、移动的那个人说他就是负责收到邮件后、在发给我的!
    其他的、他也不知道!!!
      

  5.   

    仅过滤root用户,这个猜着用户名和密码的问题,当然还存在。
    意思是先猜测用户名存不存在,存在再猜着密码。root过滤了,可以看admin或者其他xxx存在不。
    当然现在的系统提示一般都是“用户名或密码错误”,如果是提示“该用户不存在”或“密码错误”,就是安全漏洞。
    如果用户名存在,登录密码多次错误锁定账户。
    如果同一IP多次尝试不同用户/密码登录,则提示“请X分钟后尝试”个人觉得是上面这个意思,呵呵