Java Nashorn 的利用!
内容摘要:
命令执行、
功能执行、
代码混淆
1.Java Nashorn 介绍 (废话)![Java Nashorn 的利用 Java Nashorn 的利用]()
从JDK 1.8开始,Nashorn取代Rhino (JDK1.6,JDK1,7)成为Java的嵌入式JavaScript引擎。
Nashorn完全支持ECMAScript 5.1的规范以及一些扩展,它使用基于JSR 292的新语言特性,
其中包含在JDK 7中引入的invokedynamic,将JavaScript编译成Java Bytecode .
与先前的Rhino实现相比,带来了2到10倍的性能提升 。
(小声逼逼:php才是世界上最好的语言)
2. 如何调用Nashorn ![Java Nashorn 的利用 Java Nashorn 的利用]()
•JJS jjs是基于Nashorn引擎的命令行工具,接受一些JavaScipt源代码为参数,
并且执行这些源代码。
•JAVA调用
3. Nashron的命令执行 ![Java Nashorn 的利用 Java Nashorn 的利用]()
•JavaScript中调用Java
•Java2JS通过上例我们可以看到通过 Java.type函数把java.lang.System类实例化了。
那么我们想要实现命令执行即调用java.lang.Runtime.getRuntime.exec()
即可
4. Nashron的硬编码检测绕过![Java Nashorn 的利用 Java Nashorn 的利用]()
•之前对某个目标进行测试的时候,该目标对输入的Java.type
进行硬编码检测。如内容含有
Java
可以通过验证,输入type
也可以通过验证但输入Java.type
时就限制了脚本的运行。绕过方法:
5. Nashron禁止执行Java代码的防御方法
6. Nashron的功能执行(任意代码执行)![Java Nashorn 的利用 Java Nashorn 的利用]()
•我们拿到代码执行权限后,保险起见就别乱往上扔东西了。不会创建新进程。文件无落地,多爽。献上脱裤脚本!
7. Nashron的代码混淆![Java Nashorn 的利用 Java Nashorn 的利用]()
•输入的代码其实是JavaScript
8. References ![Java Nashorn 的利用 Java Nashorn 的利用]()
•https://www.roguesecurity.in/2019/07/27/nashorn-remote-code-execution/•https://mbechler.github.io/2019/03/02/Beware-the-Nashorn/
写在结尾
文章来自圈子社区的精品文章,特此感谢社区小伙伴张德帅的分享输出。如有意向投稿的小伙伴可在公众号留言,感谢大家的支持。
文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
社区回复 今日日报,获取最新线报哦!
扫二维码|关注我们
引领实战潮流,回归技术本质
汇聚行业新锐力量 推动网络安全进步
这是一个实战派白帽子的聚集地
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论