tomcat管理界面弱口令扫描

本文探讨Tomcat弱口令扫描的注意事项,包括不同版本的暴力破解限制、正确密码可能返回的HTTP状态码,以及如何调整配置避免账号锁定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于tomcat弱口令扫描问题,应当注意两点。第一是版本问题。

在tomcat6及6之前,是可以直接暴力破解的。

抓一下tomcat登陆管理界面的数据包,可以看出,其认证方式是在http的请求header中添加一个字段为 Authorization,这个字段的值是 “Basic base64(username:password)”,因此在暴力破解时,只需要在请求包中添加该字段即可。

在tomcat6以后,默认是做了暴力破解的限制的。查看官方文档,对  LockOut Realm - org.apache.catalina.realm.LockOutRealm 类有说明,其中有一个参数为 “failureCount”,文档中对该参数的说明为” The number of times in a row a user has to fail authentication to be locked out. Defaults to 5.”,默认尝试5次失败后,账号被锁定。该参数在配置文件server.xml中默认无配置,在无配置的情况下,默认是5次错误机会。可以显式配置在<Realm>中(该Realm的className必须是org.apache.catalina.realm.LockOutRealm),如下:

failureCount=”3” lockOutTime=”3000”

当尝试5次错误密码后,账号被锁定,即使输入正确密码,也返回401错误,且这个错误和密码输入错误的返回结果是一样的,如下:

官方文档:http://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#LockOut_Realm_-_org.apache.catalina.realm.LockOutRealm

因此在编写弱口令扫描插件时,要注意如果尝试次数过多,即使字典中有正确密码,会提示401错误,而且和密码错误的返回结果相同,很容易误认为是脚本的问题。这点要注意。解决办法就是在测试时,将server.xml中添加 failureCount=”999999” lockOutTime=”0”。

 

第二个要注意的是,密码正确时,不一定返回200,返回403也是密码正确的情况。

从 tomcat的配置文件 tomcat-user.xml 中可以看出,认证所需要的信息有“roles”,”usernmae”,”password”,即,返回200的条件是用户a的用户名、密码正确且有权限访问该功能。role称为角色,如果一个用户是某个角色,则代表它能够访问该角色定义的功能。

在tomcat中,角色一共有manager-gui,manager-script,manager-jmx,manager-status四种,具体解释如下。

当用户真实存在但没有相应角色时,访问对应权限会提示403错误。如下:

因此在编写测试脚本时,要考虑这种情况,返回403错误,也属于密码正确。

 

第三个要注意的是,在tomcat6及以后的版本,已经取消了默认用户。在tomcat6之前,是存在默认用户的,用户名是admin,密码是空。因此这种情况也要考虑进去。虽然现在使用tomcat5的已经比较少了。如下。由于我的tomcat是docker安装的,这个tomcat5版本官方没有,是下载的别人封装的。因此密码是否为空无法证实。从网上查得为空。如下为默认配置。

 

代码核心逻辑如下:

headers = {'Authorization': 'Basic %s==' % (base64.b64encode(username + ':' + password))}
try:
    r = requests.get(url, headers=headers, timeout=3)
    print r.status_code
    if r.status_code == 200:
        print 'weakpass'                     
    elif r.status_code == 403:
        print 'weakpass'               
    elif r.status_code == 401:
        continue
except:
    pass

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值