由ctf来看java报错的危害

很多java报错在我们渗透的时候经常会被发现,但由于没什么用,危害比较低被忽略,开发也很不愿意修改。

但从纵深防御的角度来说,多个小问题的结合就会产生严重的问题。此次遇到的一个ctf题就是一个例子。

 

题目来自 [RoarCTF 2019]Easy Java

进入题目后就是一个登录页面

 

 

 一顿爆破得到用户名/密码  admin/admin888

 

 

 然而非常失望,这思路根本不对

点击help看看

 

 

 

发现了一个java.io的报错,从报错和url上看非常像读取文件,这里就想到了任意文件读取,但是按理说应该有help.docx,为什么读取不出来呢

到这里其实卡了我很长时间,也没有get到出题人的意图,看了答案才想到一个问题。

下载文件得有文件流的传输,get一般不够长,所以都用post,改post试一下

 

 

 成功了,但是依然没啥用,之前想到了任意文件读取,所以试试

 

 

 

虽然没有读取到/etc/passwd但是出现了java报错,其中赫然写着ctf这个包的引用路径,而且此web容器为tomcat,所以先试试默认路径/WEB-INF/web.xml

 

 

 果然有这个controller,那直接读取源码试试

 

 

还是报错了,说明源码路径可能被修改,但这就没办法了吗?

答案当然是否定的,java作为编译语言,它会形成字节码文件,存储在classes文件夹下,读取试试

 

 

读取到了,把它下载下来,由于idea对于class文件可以进行反编译且支持较好,所以直接得到反编译后的源码

 

posted @ 2021-05-27 10:56  TJ_WaTer  阅读(372)  评论(0编辑  收藏  举报