首页 > 其他分享 >基础的框架漏洞 6

基础的框架漏洞 6

时间:2023-06-22 11:11:56浏览次数:43  
标签:执行 请求 框架 rememberMe 基础 漏洞 序列化 表达式

一、log4j远程代码执行漏洞

原理:
Log4j是Apache的一个开源项目,是一款基于Java的开源日志记录工具。该漏洞主要是由于日志在打印时当遇到~$后,以:号作为分割,将表达式内容分割成两部分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的iookup,通过对应的lookup实例调用lookup方法,最后将key作为参数带入执行,引发远程代码执行漏洞。

具体操作:
在正常的log处理过程中对**$[**这两个紧邻的字符做了检测,一旦匹配到类似于表达式结构的字符串就会触发替换机制,将表达式的内容替换为表达式解析后的内容,而不是表达式本身,从而导致攻击者构造符合要求的表达式供系统执行。

 

二、fastjison漏洞

判断:

正常请求是get请求并且没有请求体,可以通过构造错误的POST请求,即可查看在返回包中是否有fastison这个字符串来判断。

原理:
fastjson是阿里巴巴开发的一款将json字符串和java对象进行序列化和反序列化的开源json解析库。fastjson提供了autotype功能,在请求过程中,我们可以在请求包中通过修改@type的值,来反序列化为指定的类型,而fastjson在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类问题。

无回显怎么办?

1.一种是直接将命令执行结果写入到静态资源文件里,如html、js等,然后通过http访问就可以直接看到结果。

2.通过dnslog进行数据外带,但如果无法执行dns请求就无法验证了。

3.直接将命令执行结果回显到请求Poc的HTTP响应中。

 

三、shrio反序列化漏洞

原理:
Shiro是Apache下的一个开源Java安全框架,执行身份认证,授权,密码和会话管理。shiro在用户登录时除了账号密码外还提供了可传递选项rememberme。用户在登录时如果勾选了rememberme选项,那么在下一次登录时浏览器会携带cookie中的rememberme字段发起请求,就不需要重新输入用户名和密码。


判断:
1.数据返回包中包含rememberMe=deleteMe字段。

2.直接发送原数据包,返回的数据中不存在关键字可以通过在发送数据包的cookie中增加字段:****rememberMe=然后查看返回数据包中是否存在关键字。

shiro-550:
shiro反序列化漏洞利用有两个关键点,首先是在shiro<1.24时,AES加密的密钥Key被硬编码在代码里,只要能获取到这个key就可以构造恶意数据让shiro识别为正常数据。另外就是shiro在验证rememberMe时使用了readObject方法。
readObject用来执行反序列化后需要执行的代码片段,从而造成恶意命令可以被执行。攻击者构造恶意代码,并且序列化,AES加密,base64编码后,作为cookie的rememberMe字段发送。Shiro将rememberMe进行编码,解密并且反序列化,最终造成反序列化漏洞。
shiro-721:
不需要key,利用Padding Oracle Attack构造出RememberMe字段后段的值结合合法的Remember。

 

标签:执行,请求,框架,rememberMe,基础,漏洞,序列化,表达式
From: https://www.cnblogs.com/rxrxrx/p/17497589.html

相关文章

  • Kotlin协程:Flow基础原理
    本文分析示例代码如下:launch(Dispatchers.Main){flow{emit(1)emit(2)}.collect{delay(1000)withContext(Dispatchers.IO){Log.d("liduo","$it")}Log.d("liduo",&......
  • Android 屏幕适配基础
    Pixels和dp、sp的区别不同屏幕密度下,1p显示的物理长度不同1dp在不同屏幕上显示相同的物理长度sp只用在字体上,和dp一样为了让在不同设备上有一致的显示效果单位尺寸搞清楚屏幕的各种单位含义,是屏幕适配的基础屏幕尺寸含义:手机对角线的物理尺寸单位:英寸(inch),1英寸=2.54cm屏幕尺寸......
  • 牛掰,阿里P7程序员花了半个月,编成这份1880页的《Android百大框架源码解析》,快来收藏
    为什么要深入了解源码?只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是浮于表象,这对我们的知识体系的建立和完备以及实战技术的提升都是不利的。真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读Android系统源码,还包括各种优秀的开源库。一方面,这些作品都......
  • 基础算法:二分,贪心等 学习笔记
    普及组基础算法这些都是零零散散接触过的基础算法,写个笔记把这些整理到一起来。线性降维技巧之前在学校洛谷团队里看到一个题单,觉得这些技巧可能有用,就转存了。前缀和差分前缀和是一种对区间求和问题进行降维的方法。具体地,对于给定数组\(A[n]\),求出\(A[l,r]\)区间和这个......
  • Java—集合框架
    什么是集合......
  • 【技术积累】Vue.js中的基础概念与语法【一】
    写在前面学习Vue之前最好有前端三驾马车的基础【HTML+CSS+JavaScript】笔者接了一个从头开发的Vue项目,由于公司急着要,没有时间慢慢像在学校里学了,只能边学边做,现在项目雏形已经做的差不多了,因此正好以自己的方式来写笔记笔者接项目的时候Vue零基础,前端基础也是除了div几个标签......
  • 漏洞扫描:Web安全漏洞扫描与审计
    1、首先进入w3af文件目录之下,如下图1所示。图1显示usr/local/src/w3af目录下的内容2、使用ls命令查看w3af文件目录下的内容,有w3af_console和w3af_gui,console是打开命令行,gui是打开图形界面,本次实验使用。/w3af_console命令,如上图1所示。图2plugins命令help截图3、输入“outp......
  • 【python基础】类
    类是Python重要的知识点,现将学习目录整理如下:1.类-初识类2.类-类属性3.类-继承4.类-模块......
  • 【python基础】类-模块
    随着不断给类添加功能,文件可能变得很长,即便妥善地使用了继承亦是如此,为遵循Python的总体理念,应让文件尽可能简洁。为在这方面提供帮助,Python允许将类存储在模块中,然后在主程序中导入所需的模块。1.导入单个类新建一个Animal类的模块,其中只包含Animal类,编写程序如下所示:在主程......
  • 机器学习基础-统计学习与数据分析介绍
    本书介绍    本入门级统计教科书主要讲解发展和培养统计思维所需的基本概念和工具。它提供了描述性,归纳性和探索性的统计方法,并指导读者完成定量数据分析的过程。在实验科学和跨学科研究中,数据分析已成为任何科学研究的组成部分。诸如判断数据的可信度,分析数据,评估所获得结果的......