Java教程

中间件

本文主要是介绍中间件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

base64定义

base64是网络上最常见的传输编码方式,说到底其实就是一种非常简单的转换算法。

转换方式是这样的:先将三个byte(1byte=8bit)的数据转换为ascll码二进制值,按序放入一个24bit的缓冲区中。若数据不足3byte,缓冲区中剩下的bit用0补足。

然后,每次取出6个bit,按照其索引值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

中的字符作为编码后的输出。不断进行,直到全部输入数据转换完成。

如转换“Man”:

M的ascll码是77,二进制就是01001101,取前六位就是010011=19,19在索引表中对应T,那么就输出T。M剩余的两个bit(01)就和后面的bit结合为六位010110=22,对应W,如此往复。

这个算法的精髓在于:24=3x8=4x6,即可将明文的3个字节转化为base64的4个字节。

base64索引表

当原数据长度不是3的整数倍时,如果最后剩一个输入数据,在编码结果后加2个“=”;剩两个就加1个“=”,补足为3的整数倍。

用于练习的例子

Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.

经过base64编码之后变成:

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

 

POC、EXP、payload、shellcode的区别:

渗透中POC、EXP、Payload与Shellcode的区别 - 百度文库 (baidu.com)

 

1、Apache Shiro 1.2.4反序列化漏洞

 

shiro简介:

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

0x02 漏洞介绍:

Shiro提供了记住我(RememberMe)的功能,比如访问如淘宝等一些网站时,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问,但是设计到一些支付等敏感操作时,可能还需要再次验证。

 而shiro默认使用了CookieRememberMeManager接口,就是rememberme功能,。

其处理cookie的流程是: 得到rememberMe的cookie值,先进行Base64解码,再进行AES解密,最后进行反序列化。

但是shiro本身有一个预设密钥Base64.decode(“kPH bIxk5D2deZiIxcaaaA==”),漏洞的突破口也是这点,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。

攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。

0x03 漏洞影响:

Apache Shiro <= 1.2.4

事实上,只要rememberMe的AES加密密钥泄露,无论shiro是什么版本都会导致反序列化漏洞。

2、Apache Log4j2 lookup JNDI 漏洞

 Log4j2 Jndi 漏洞原理解析、复盘_子不语的博客-CSDN博客_jndi log4j

 

3、Fastjson1.2.24反序列化漏洞

 序列化和反序列化:什么是反序列化?反序列化的过程,原理_普通网友的博客-CSDN博客_反序列化

 

4、Tomcat PUT方法任意写文件漏洞

 

5、ThinkPHP5 5.0.22远程执行漏洞

 

6、ThinkPHP2.x 任意代码执行漏洞

 

7、Spring Security OAuth2 远程命令执行

 

8、JBoss 5.x/6.x反序列化漏洞

 

9、Struts2 S2-061远程命令执行漏洞

 

10、weblogic XMLDecoder 反序列化漏洞

 

这篇关于中间件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!