探索java动态加载特性实现jsp webshell绕过

访客4年前黑客工具543

整体介绍

共四个jsp webshell 当时用来参加青藤webshell bypass 活动。主要思路是在静态中寻找动态特性:jdk内置javascript引擎class字节码加载

0.jsp webshell裸奔

最直接的写法直接over。另外发现本机PC windows defender也有把0.jsp查杀了。

image

1.jsp 借助JavaScript引擎开始之一次动态化

jdk内置javascript引擎,其中从jdk1.6默认实现是:Rhino jdk,jdk 1.8之后是:nashorn。1.jsp有对jdk不同版本做了适配。

2.jsp 基于动态化后的变形

1.jsp中只是使用了js引擎,但是还没充分发挥动态脚本混淆和变形的能力,2.jsp尝试做简单的替换变形。我们知道xss的防护对正则检测的挑战是很大的,个人的感受是xss经常伴随着html和JavaScript的混合,并且JavaScript的变化多端容易混淆带来的进一步的检测难度,这里我们实现了类似的思路:java 与JavaScript的混合,JavaScript的动态多变能力依然可以发力,所以无论是正则还是静态语法分析的检测方式应该都会带来一些障碍。

3.jsp 字节码动态加载

3.jsp 是基于defineClass0 加载字节码来bypass。当时的思路也是想历次的入侵黑客喜欢用base64做些绕过,java可以动态加载字节码,字节码十六进制传递很难被正则waf抓住。后面在研究 ”冰蟹“ 的时候看到也用了defineclass方式。

内置JavaScript引擎带来的脆弱

JEP提案,开发者 与安全三者的感想

jdk中是否要内置JavaScript引擎值得商榷,的确java开发者有比较强的 动态脚本 的需求,比如我自己做些规则引擎,配置系统的时候常用到这样的特性。这样的需求groovy是个很好的榜样,由第三方jar包提供。现实情况下内置的javascript引擎性可能不满足应用需求,比如jdk从1.8将实现换成nashorn,到了jdk15提案中又有人提议替换掉nashorn。还有在自己研究百度openrasp的时候,可以看到最早期版本java对应的规则引擎是由jdk内置提供的,而到最后还是因为性能问题切换到V8引擎。

solr配置脚本RCE

另记一次solr CVE-2019-0193 远程代码执行漏洞,记得当初这个0day爆出的时候乙方的poc文章对payload打了马赛克,结合官方文档已经猜到是javascript动态配置引起,立马验证确实如此。此处有“default”,脆弱性立马显现。

image

一句话javascript引擎哪家强有由用户自己决定吧

对比其他webshell工具

在写完上面的几个jsp的webshell的时候,和部门做渗透同事交流他提到过一个“冰蟹”。以前对webshell工具的理解上更多的关注自动化,方便,比如“中国菜刀”。但是“冰蟹”不同,他借用了协议交互会话的逻辑去增强bypass能力,开阔了思路值得借鉴。

RASP能做些什么?

以百度rasp为例,针对冰蟹,javascript动态脚本的webshell如何去匹配呢?

我们可以看到rasp会hook住java stacks信息,然后去和已知的黑名单库去匹配,比如上面提到的 javascript引擎手法(关键字nashorn),冰蟹(关键字behinder)。不得不说rasp这种以调用栈作为上下文检测的更加精准,但是软件的生命周期是迭代的,对抗的手法也是升级的。

比如javascript引擎随着jdk版本的迭代而变化,策略脚本中缺失了jdk 1.8 之前Rhino方式 。对于冰蟹关键字”behinder“匹配能够防住工具小子,尽管冰蟹作者没有公布源码,但是拟向这类工具更改包名都不是难事,从而逃脱rasp的检查。

相关文章

冬季怕冷吃什么食物好 冬季饮食调理

冬天来了,一些畏寒怕冷的人对冬季的来临是尤其抵触的,除开日常健身运动及其一些防寒保暖对策之外,还能够根据合理饮食,有很多合适冬季吃的东西,那麼,冬天怕冷吃什么食材好?下边我就而言说。 冬天怕冷吃什么...

护士节的来历?中国护士节的由来

护士节的来历?中国护士节的由来

国际护士节是每年的5月12日,是为纪念现代护理学科的创始人弗洛伦斯·南丁格尔于1912年设立的节日。     护士节的基本宗旨是倡导、继承和弘扬南丁格尔不畏艰险、甘于奉献、救死扶伤、勇于献身...

黑客监控技术(黑客监控器)

黑客监控技术(黑客监控器)

看门狗中都骇客技术在现实生活中能否实现。 正常来说只要你联网黑客们都是可以侵入的。不知道你身边的人有没有收到这样的qq消息,就是好友问你借钱,然后跟你视频,让你确认是本人,结果打电话过去好友并不知道这...

发蜡是什么做的(发蜡和发胶是一个东西吗)

秀发上的用具也是有很多的,有时就立即懵圈,彻底便是搞不清,发胶和发蜡有什么不同?啫喱水和干胶的差别有什么? 发胶和发蜡有什么不同: 发蜡:应用发蜡能够使秀发便于整理、定形并颇具延展性,哑光发蜡还能够带...

大队长古法瓦缸烧烤总部在哪?等待创业者的光临

大队长古法瓦缸烧烤总部在哪?等待创业者的光临

这个世界变化不停,人潮川流不息,任何的是无都开始不停的变化,唯一不变的就是人们对于金钱的渴望,正是因为这份渴望让人们开始思考如何才可以赚取更多的钱财,怎样才可以拥有更多的财富,当大家真的认真这样想了之...

底线是什么意思(什么是底线)

底线是什么意思(什么是底线) 人生在世,需要底线。 底线是我们做人的尊严,是我们为人的骨气,更是一个人的高贵品格。 它是我们做人的根基,更是我们的最后一道道德防线。 守住我们的底线,就是守住了...