2024 hvv蓝中面试题

目录

前言

面试题

java反序列化漏洞的产生原理是什么?如何挖掘Java反序列化漏洞?

原理:

挖掘方法:

如何识别网站使用了Shiro?Shiro反序列化漏洞的产生原理是什么?

识别方法:

原理:

Shiro 550和721漏洞有什么区别?在实际应用中,如何有效地防范Shiro反序列化漏洞?

区别

防范方法:

Weblogic常见漏洞有哪些?Weblogic反序列化漏洞产生的原理是什么?

常见漏洞

反序列漏洞产生原理

什么是Fastjson?fastjson常见漏洞有哪些?

原理

常见漏洞

菜刀流量特征是什么?

蚁剑流量特征是什么?

冰蝎流量特征是什么?

哥斯拉流量特征是什么?

CobaltStrike流量特征什么?

MetasploitFramework流量特征是什么?

不出网Fastjson反序列化漏洞如何利用?

利用redis服务Getshell的方式有哪些?

log4j反序列化漏洞的产生原理是什么?

内存马分为哪些类型?各自的原理是什么?

传统Web应用型内存马

框架型内存马

中间件型内存马

其他内存马

Agent型内存马


前言

蓝队中级:主要考察你对中间件、相对应的漏洞等流量特征,是否了解过内存马以及应急响应和溯源能力

流量特征是面蓝中的硬性要求,应急响应和溯源能力,应急能力决定了你是否能评上中级,溯源能力决定了你是否能评上中+。

当然有甚至,蓝中会问你一些内网渗透相关的问题,更有甚者,会问你一些域渗透,云安全相关的问题,说到这儿大家可能会感觉到离谱,  我的天哪~  我是不是只能当一个监控猴子呢?

圈内有句话说的好,    未知攻,焉知防?       怎么攻击的你都不知道,原理都没搞清,当然也就不知道怎么防守了

面试题

  • java反序列化漏洞的产生原理是什么?如何挖掘Java反序列化漏洞?

    • 原理:

      • 当Java应用程序对来自外部输入的不可信数据进行反序列化处理时,就形成了反序列化漏洞。
    • 挖掘方法:

      • 1、寻找一个类,通过构造一个对象,十七在被反序列化时能执行到危险(sink)方法。
      • 2、寻找一个类,存在可能的执行路径,从反序列化入口(source)方法执行到危险(sink)方法自动化搜索。
      • 3、构造这个对象,使危险(sink)方法参数可控。(手工打造)
  • 如何识别网站使用了Shiro?Shiro反序列化漏洞的产生原理是什么?

    • 识别方法:

      • 1、返回包中包含rememberMe字段
      • 2、cookie中含有remeberMe字段
      • 3、URL中含有Shiro字段
    • 原理:

      • 在反序列化时,不会对其进行过滤,所以如果传入恶意代码将会造成安全问题
  • Shiro 550和721漏洞有什么区别?在实际应用中,如何有效地防范Shiro反序列化漏洞?

    • 区别

      • Shiro 550使用一直密钥碰撞,只要有足够密钥库,不需要Remember Cookie
      • Shiro 721的ase加密的key基本猜不到,系统随机生成,可使用登录后rememberMe去爆破正确的key值,即利用有效的RememberME Cookie作为padding Oracle Attack的前缀,然后精心构造RememberME Cookie值来实现反序列化漏洞攻击,难度高。
      • 550是反序列化,721是加密解密550不需要rememberMe Cookie解密,721需要来rememberMe Cookie解密;
    • 防范方法:

      • 1、验证数据源
      • 2、过滤数据
      • 3、使用安全的数据源
      • 4、限制反序列化的类
      • 5、使用自定义的反序列化
      • 6、更新Shiro版本
      • 7、防止反序列化漏洞的检测工具
  • Weblogic常见漏洞有哪些?Weblogic反序列化漏洞产生的原理是什么?

    • 常见漏洞

      • 任意文件上传漏洞(CVE-2018-2894)
      • XMLDecoder反序列化漏洞(CVE-2017-10271)
      • 反序列化漏洞(CVE-2018-2628)
      • 未授权命令执行漏洞(CVE-2020-14882)
    • 反序列漏洞产生原理

      • T3协议缺陷实现了Java虚拟机的远程方法调用(RMI),能够在本地虚拟机上调用远端代码。
      • Weblogic控制台7001端口默认会开启T3协议服务,T3协议触发的Weblogic Server WLS Core Conponents中 存在反序列化漏洞,攻击者可以构发送来获取目标服务器权限。
  • 什么是Fastjson?fastjson常见漏洞有哪些?

    • 原理

    • 1、是一种Java JSON解析库
    • Fastjson是一个Java序列化和反序列化框架,能将Java对象转化为JSON格式的字符串,并将JSON字符串转换为Java对象;
    • 常见漏洞

    • 2、反序列化漏洞、反序列化导致任意命令执行漏洞
  • 菜刀流量特征是什么?

    • “eval”,eval函数用于执行传递的攻击payload,这是必不可少的;
    • (base64_decode($POST[z0])),(base64_decode($_POST[z0]))将攻击payload进行base64解码,因为菜刀默认是使用Base64编码,以避免被检测;
    • &z0=QGluaV9zZXQ...,该部分是传递攻击payload,此参数z0对应$_POST[z0]接收到的数据,该参数值是使用Base64编码的,所以可以利用base64解码可以看到攻击明文。
  • 蚁剑流量特征是什么?

    • 蚁剑的正文内容进行URL解码后,流量中最明显的特征位@ini_set("display_errors","0")@set_time_limit(0),后面也会有base64等字符;同时蚁剑也有eval这种明显得特征。
    • payload中,php中使用assert,eval函数执行,在jsp中使用java类(ClassLoader)加载,也会带有base64加密解密特征;
  • 冰蝎流量特征是什么?

    • 数据包中总是伴随着大量得content-type: 、application,无论GET还是POST
    • 冰蝎3.0内置的默认内置16个ua(user-agent)头
    • content-length 请求长度,对于上传文件,命令执行来讲,加密的参数不定长
    • 冰蝎3.0采用自定义的二进制协议进行通信,冰蝎4.0采用HTTP协议进行通信;
    • 冰鞋3.0使用DES加密算法,冰蝎4.0使用RC4加密算法;
  • 哥斯拉流量特征是什么?

    • 1、发送一段固定代码(payload),http响应为空
    • 2、发送一段固定代码(test),执行结果为固定内容
    • 3、发送一段固定代码(getBacisInfo
  • CobaltStrike流量特征什么?

    • 固定的user-agent
    • 特殊的请求特征,使用Cobalt Strike下达指令时,会出现POST请求/sumbit.php?id=xxx的特征。
    • 魔改后的特征:遗留了GET /cx 和POST /q.cgi  等两个特征。
    • 被控端会发送心跳包。
    • 解密算法check sum8(92L,93L)。
  • MetasploitFramework流量特征是什么?

    • 使用默认的4444端口作为反向连接端口;
    • 数据包中包含metepreter,revshell等特定字符;
  • 不出网Fastjson反序列化漏洞如何利用?

    • 基于JNDI注入
    • 基于ClassLoader
    • 基于Templateslmpl

{   "@type":"com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl", ​ "_bytecodes":["yv66vgAAADM ··· 省略 ··· CAB0="], ​ '_name':'a.b', ​ '_tfactory':{ }, ​ "_outputProperties":{ } ​}

  • 利用redis服务Getshell的方式有哪些?

    • 1、通过向Web目录中写Webshell的方式进行getshell
    • 2、通过写SSH key的方式进行getshell
    • 3、通过写corntab的方式进行getshell
  • log4j反序列化漏洞的产生原理是什么?

    • JNDI注入:可以通过日志文件配置中的特定字段来配置JNDI资源,JNDI是用来访问命名和目录服务的API;
    • JNDI服务利用:攻击者构造恶意的日志文件,在日志配置文件中使用特定的字段,指定一个远程的JNDI服务地址,当Log4j尝试解析并获取JNDI资源时,会向远程地址发起请求;
    • JNDI远程代码执行:攻击者在远程JNDI服务上搭建一个恶意的RMI服务,该服务会返回一个恶意的代码,当Log4j尝试获取JNDI资源时,他会从远程JNDI服务获取到恶意代码,并在应用程序执行,从而导致远程代码执行漏洞;
    • 恶意代码执行:当成功利用Log4j漏洞,攻击者可以在受影响的应用程序中执行任意恶意代码,包括远程命令执行,代码执行,服务器接管等
  • 内存马分为哪些类型?各自的原理是什么?

    • 传统Web应用型内存马

      • 使用基本 Servlet-API 实现的动态注册内存马,此种类型的内存马最经典,已经被扩展至适应各个中间件。
    • 框架型内存马

      • 除了传统的 Servlet 项目,使用 Spring 全家桶进行开发的项目越来越多,而 Spring-MVC 则是自实现了相关路由注册查找逻辑,以及使用拦截器来进行过滤,思想上与 Servlet-Filter 的设计类似。
    • 中间件型内存马

      • 在中间件的很多功能实现上,因为采用了类似 Filter-FilterChain 的职责链模式,可以被用来做内存马,由于行业对 Tomcat 的研究较多,因此大多数的技术实现和探究是针对 Tomcat 的,但其他中间件也有相当多的探究空间。
    • 其他内存马

      • 还有一些其他非常规的利用思路,可以用在内存马的实现上,例如 WebSocket 协议等。
    • Agent型内存马

      • 利用 Java Agent 技术进行植入内存马逻辑的实现方式。
  • 如何检测与查杀内存马?
    • 检测
      • 先查看检查服务器web日志,查看是否有可疑的web访问日志,比如说filter或者listener类型的内存马,会有大量url请求路径相同参数不同的,或者页面不存在但是返回200的请求。
      • 如在web日志中并未发现异常,可以排查是否为中间件漏洞导致代码执行注入内存马,排查中间件的error.log日志查看是否有可疑的报错,根据注入时间和方法根据业务使用的组件排查是否可能存在java代码执行漏洞以及是否存在过webshell,排查框架漏洞,反序列化漏洞。
      • 查看是否有类似哥斯拉、冰蝎特征的url请求,哥斯拉和冰蝎的内存马注入流量特征与普通webshell的流量特征基本吻合。
      • 通过查找返回200的url路径对比web目录下是否真实存在文件,如不存在大概率为内存马。
    • 查杀
      • 重启php服务器,(service apache2 restart)·
      • 强行kill 后台进程 ps aux | grep www-data | awk '{print $2}' | xargs kill -9
      • while循环写脚本 while : ;do rm -rf xxx; done
      • 建立一个和不死马相同名字的文件或者目录,不断竞争写入一个和不死马同名的文件
  • SQL注入时,Waf 过滤了逗号,如何绕过?
    • 使用from关键字绕过
    • 使用join关键字绕过
    • 使用like关键字绕过
    • 使用offset关键字绕过

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三七怪鸽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值