Xuing

Results 8 comments of Xuing

不过确实是可以考虑发一版Release了。

我暂时不想提PR一个一个版本去测了,我自己这边的临时解决方案是,直接给normalizedList也加上hook。 ![image](https://user-images.githubusercontent.com/11143269/117414961-57c68200-af4a-11eb-82cf-1a663ccaeab4.png)

我是在测试官方测试用例集合的第一个测试用例,`使用 File.listFiles 遍历目录`发现的这个问题。 listFiles是一个公开函数,针对此类攻击,目前OpenRasp是在FileHook.java中按照TYPE.DIRECTORY进行检测的。 阅读目前FileHook的代码后,我猜测目前选择挂钩list方法,而不是直接Hook`listFiles`方法,是基于以下考虑的 1. list方法是public的,可能会被业务直接使用。 2. listFiles有多个方法签名,但均会调用list方法。 但Windows+Oracle JDK11情况下,listFiles中直接调用了`normalizedList`方法,没有调用`list`方法,虽然normalizedList方法是Private的,但业务只要使用到listFiles函数,就不会进入到Hook的检测逻辑当中。 除此之外,Windows+Oracle JDK1.8,也是同样的情况。 ![image](https://user-images.githubusercontent.com/11143269/118083902-51288680-b3f2-11eb-97fb-b4da496dbf87.png) Windows+Oracle JDK16,也是同样的情况 ![image](https://user-images.githubusercontent.com/11143269/118084095-a95f8880-b3f2-11eb-95e6-bebb7cb464fb.png) 我们的结论不同,目前看来,可能是Oracle JDK与OpenJDK的区别。

我特地去看了一些Linux+Oracle版本的jdk16的File.java实现。 listFiles方法中也是使用的normalizedList。 ![image](https://user-images.githubusercontent.com/11143269/118084973-2ccda980-b3f4-11eb-9108-3570b5c7440d.png)

![image](https://user-images.githubusercontent.com/11143269/173543205-4506199d-463c-4dec-a40d-3770dd8d9e11.png) OracleJDK 1.8.0_331

目前仅测试了Tomcat服务器。

我简单看了一些,好像是引用的依赖。https://github.com/OpenTranslate/OpenTranslate 这里的没有更新导致的。感觉可以换成官方的SDK之类的。