全站搜索
娱乐首页/星辉/Homepage
娱乐首页/星辉/Homepage
星辉娱乐【本领分享】前尘——内存中无处可寻的木马
作者:管理员    发布于:2022-08-11 09:50    文字:【】【】【

  很早之前就立下flag说聊聊内存马,尔后出了一篇文章Java Agent的内容。后来就罢手了,这回想先写聊聊两种最为常见的内存马,spring内存马和filter内存马。

  既然写出了两种内存马,那么两者必然有所有人的各异之处。基于filter样板的内存马更适用于老版本的javaweb工程,其地道依附于jsp,servlet这种站点,而后运用filter过滤器注册出一句话木马。而spring内存马准确来途应当叫做springmvc内存马,因为springmvc被加入spring全家桶,是以spring内存马也所以由来,此种类型的马实用于前些年较火的SSM框架。所以利用哪种内存马取决于主意接受的项目架构。近似之处就在于其意义都是资历反射的形式注册了一个给用户考查的手段,而方法的内容为常见的千般webshell。鄙人文之前他们想给读者一点指引,内存马通过web途径的格局窥探,而途径就须要向代码中增添和乞求途径相结婚的步调,来统治哀求中率领的役使实行的参数。

  与spring内存马不同的是,filter典范的内存马审核的流程提前于spring内存马。而一致的是,依旧是创筑一个考核集,将webshell算作这个视察集的管制步骤。

  星辉娱乐注册

  证实一个filter有两种款式,一种是资历xml摆设文件的式样,另一种是阅历注脚的体例。

  初始化局部:对于界说好的Filter过滤器(好比上面自定义的MyFilter),会起首创修过滤器对象,并保存到过容器中,并移用其init举措举办初始化。

  践诺局限:当结婚到反映的恳求途径时,起初会对该央求进行禁止,推行doFilter中的逻辑,若不阅历则该苦求则到此为止,不会延续往下推行(此时通俗会实行浸定向大意转发到其所有人地方进行处理);若始末则络续实行下一个的doFilter步伐,直到指定的过滤器都实施完doFilter后,便实验Servlet中的交往逻辑。

  其中ApplicationFilterConfig搜罗过滤器名、初始化参数、过滤器定义工具等等

  此中FilterDef定义了filter的名称,类旅途,以及filter说明的实体类。

  对于代码第九行遍历filterDefs时产生疑问,filterDefs中并未进行初始化填值,因此值从那里来。

  * 而参数filterDef正是容器context进程领悟web.xml文献粗略注释布置后创建的过滤器定义器械

  * 但此时filterDef中的确实过滤器器械filter还未初始化,以是才会有之后的初始化过滤器手腕

  filterMap它其实便是个封装了布置映照消息中 过滤器名 和 对应过滤url 参数的东西数组。

  我们们时时聊SSM框架中三层模型,DAO层接受数据库交互,service层承担业务逻辑的处分,controller层负担用户乞请接口的成亲。畴昔做过的项目正在上家公司离职都省略了,所以github败坏找了一个项目供公众参考。(注:三层模型仅为逻辑分层,符合代码典范,可不照做。)

  图中项目所用到的诠释@GetMapping声明了前端稽核后台时所成亲的途径,好似典范阐明尚有@PostMapping以及@RequestMapping其告别正在于乞求方应用post款式央求依然get,而request即为全豹兼容。尔后统辖的方法为其下方books手段,内中经历移用service层的设施管束然后返回。

  这是所有人正在网上找的controller型的内存马,咱们来领略其要紧告终逻辑

  慎重比较github中杀青controller的步伐和经历反射的体式注册的两种比较,可以发觉。

  基于springmvc做的controller内存马其实即是将原本解说格式方供应的完成样子,以代码的体例完毕。而运用的类便是声明的竣工类。

  1.controller型内存马实质为@RequestMapping注释的代码落成,Filter型内存马本色为@WebFilter谈明的代码实现,为什么不直接行使注明构制内存马,这样做代码量少还很简陋?

  行使外明的类正在java运转时有一个前提,这关乎于java代码运行和加载的进程。当jar包在初始化时,jvm会扫描诈骗到愚弄到注释的园地,并且将其理会。而内存马是正在标准运转时形成的,这碰巧错过了jvm扫描到声明并融会的经过,是以诈欺表明愚弄则不会功效此为其一。其二为看待安详从业者来讲,咱们寻常笃爱行使反射机制。从某种路理上来说,反射能够绕过多种限造,这里举例若何破解Java中的单例形式。反射更像是一种入口,从反射机制能够映照出猖獗类,这大大先进了代码抽离性。

  2.内存马的变种那么多,好比resion的变种内存马,基于springmvc的intercetor型内存马等等,咱们理应怎样发明属于自己的内存马?

  市面上的内存马变种好多,数不胜数。打制属于本人的内存马的前提是咱们要懂得内存马的共性。前端用户输入的参数到靠山料理中断,将合幕返回给前端,这个历程中经历了什么大家们们要清楚,他们的实践流程是什么。例如 从过滤器————controller

  云云一个经过中,哪些要害是咱们能够向其插入实验逻辑的。简而言之,那边能拘禁到用户输入的参数,而且可能自定义其对参数的处理逻辑哪里就可能被当作内存马的殖民地。市情上的内存马无一例外都有这种特质。拣选好植入的职位,下一步便是如何长远其完工的原因,如filter型,阐明filterdef,filtermap,filterconf等等就可能创建一个filter器材,诈欺反射将其落成。

  这个题目要连接内存马的使用体例,正在上篇著作中介绍了一片面对待冰蝎的一句话木马达成逻辑,提到最闭键的类为Classloader,其能够将java的字节码加载到jvm中。内存马就能够联合此利用,将内存马编译字节码然后加载此为其一。

  其二是协同java的反序列化应用,正在存正在java反序列化的场所,操纵构造链+内存马的体例发送给体认链,会意链就会落成内存马的类。不懂得反序列化的可以看我们之前的文章,有shiro,cc,spring等等。

  星辉娱乐注册

  与其谈这是一篇体味内存马的著作,全班人感触仍旧叫所有人 Filter的完成真理深化,以及对于 RequestMapping 的告终原理深化说的准确。一句话木马加上实验链的猖狂一环就是全班人们所叙的内存马。到这里咱们从java的反序列到冰蝎一句话木马原因琢磨再到内存马的系列,回来看全部人们走了很远。大家们会出现一个特点,这些知识点都是通同的,全班人看似绝不干系,却又息休干系。排泄的本质是讯歇搜求,而攻防的体例是学问点的串联。有终日全部人全班人会发明事物的素质是这样仓皇……

相关推荐
  • 星辉娱乐注册做了两年抖音小店的资深玩家实操体验本领分享
  • 星辉娱乐【本领分享】前尘——内存中无处可寻的木马
  • 星辉娱乐郏县:“数字教学资源利用培训”促进优质造就资源共享
  • 星辉娱乐三明宁化县:培养资源共享门生全体进展
  • 星辉娱乐注册任事地区热闹 推动资源共享 ——京津冀查看佳构课线上分享会顺利举办
  • 星辉娱乐22年好用的网盘追究站分享
  • 星辉娱乐注册白条商家分享技艺接连下浸京东物流完竣新疆最大产地智能提供链要旨
  • 星辉娱乐辣椒垦植技术分享:辣椒种子办理
  • 星辉娱乐「妙技分享」应用卫星校准编制年光
  • 星辉娱乐提升科技资源应用效能 重庆持续煽动大型科研仪器筑筑洞开共享
  • 脚注信息
    版权所有 Copyright(C)2020 星辉
    网站地图|xml地图|友情链接: 百度一下