0x01 前言
这个技巧感觉挺有意思,还是在微信群里的赛博回忆录,讨论的时候看到的一篇文章

接着和钧钧讨论的时候发现作者是这样玩的
感觉挺有趣,深深的破坏了我对file://这个协议的看法
以前一直以为只能读文件,没想到在java里面还能读目录,特记录一波
0x02 正文
平时我对file协议就是读文件也就是类似file:///etc/passwd这样但是在看那个文章的时候看到作者是类似这样玩的file:///etc/然后钧和我也试了一下,并且成功把目录列了出来
# 首先我们先看一个例子代码import java.io.*;import java.net.URL;import java.net.URLConnection;public class test {public static void main(String[] args) {try {// 漏洞利用点String url = "file:///etc/";// 实例化url的对象URL u = new URL(url);//打开一个URL连接,并运行客户端访问资源。URLConnection connection = u.openConnection();connection.connect();connection.getInputStream();StringBuilder response = new StringBuilder();//获取url中的资源BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));String line;while ((line = in.readLine()) != null) {response.append(line + "\n");}in.close();System.out.print(response.toString());} catch (Exception e) {e.printStackTrace();}}}
0x03 debug跟踪
然后就好奇啊,为什么其它的语言不行,java可以所以就想跟一下



可以清楚的看到,不是ftp的话就进入下面的else所以直接跟进去即可
0x04 总结
没事多看看群是有好处的 :)


