Tomcat是非常常见的web服务程序,但是,有些管理员对Tomcat不熟悉,导致配置不当,很容易就会被入侵,使用8080爆破工具扫描很容易就能找到大量的不安全不服气,也很容易被提权,博主之前也使用该工具进行爆破,后来就先弄清楚其原理,经过后来的研究终于弄明白了Tomcat的登陆认证原理。下面进入正题。
一、Tomcat基础认证
说白了就是登陆tomcat。
1 |
<fieldset>例子:http://101.201.151.191:8080/manager/html</fieldset> |
如果账号和密码输入错误就会返回401页面。
下面输入正确的账号和密码登陆,返回200页面。
二、查看请求头,发现重点
1 2 3 4 5 6 7 8 9 10 11 |
GET /manager/html HTTP/1.1 Host: www.xxx.com Connection: keep-alive Cache-Control: max-age=0 Authorization: Basic YWRtaW46MTIzNDU2 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding: gzip, deflate, sdch, br Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4,ko;q=0.2 Cookie: JSESSIONID=xxxxxxxxx; |
其中的 Authorization 这一行才是重点。
1 |
Authorization: Basic YWRtaW46MTIzNDU2 |
我们可以看到,这个数据包时经过加密发送过去的,其中有Basic字样,所以猜它可能是base64加密方式。
下面对 YWRtaW46MTIzNDU2 进行解码
结果发现解密后的结果就是 账号:密码
三、进行爆破
通过上面的研究发现,其实Tomcat的内页判断是否是管理员是通过请求头Authorization 后面的加密代码,所以只要在求着这个页面的时候自己定义这个头就可以了,登录成功返回200,登录失败返回401。
利用这一点,我们可以使用Burpsuite工具进行爆破,或者自己编写脚本进行爆破都可以。
基本原理就是这样,具体的爆破方式大家可以自己选择。google上有很多爆破方式,只要你有强大的字典和牛逼的服务器,总有跑出来的可能。
四、避免被爆破
避免被爆破的方式有很多,比如修改Manager的目录名称,或者将账号密码修改的复杂一点,下面就说一下修改Tomcat的用户密码。
只需要修改tomcat文件目录下面/conf/tomcat-users.xml文件即可。
修改上图的username和password后面的值,然后重新启动tomcat进行登陆即可。
2017年12月8日 16:07 沙发
日