必须知道的两个基本Java反序列化(护网蓝初面试干货)

目录

1、反序列化漏洞

2、Fastjson

3、Shiro

4、其他

(1)CSRF、SSRF、重放攻击的区别

(2)提权

(3)常见端口号对应的服务

(4)SQL注入写shell


1、反序列化漏洞

序列化就是将对象转化为字节序列从而便于存储运输,反序列化则与其相反。

常见PHP序列化函数unserialize();

常用的魔术方法:

构造函数__construct(),析构函数__destruct(),__wakeup(),__toString(),__sleep()。

这些函数在传递参数时未进行严格过滤,攻击者就可以构造恶意代码并将其序列化后传入函数,从而导致反序列化漏洞。

2、Fastjson

原理:

在请求包中修改@type的值来反序列化为指定的类型,而fastjson在反序列化中会设置和获取类中的属性,若类中有恶意方法就会导致代码执行等问题。

判断:

通过构造错误的post请求,查看服务器报错返回包中是否存在fastjson字样

3、Shiro

原理:在用户登陆时提供可传递选项remember me,若勾选,则下次登陆会携带cookie中的remember me字段发起请求,就不需要重新输入用户名和密码。

判断:

查看数据返回包中是否包含rememberMe=deleteMe字段

4、其他

(1)CSRF、SSRF、重放攻击的区别

CSRF:跨站请求伪造攻击,由客户端发起;

SSRF:是服务器端请求伪造,由服务器发起;

重放攻击:将截获的数据包进行重放,达到身份认证目的。

(2)提权

Linux里面我只接触过sudo提权;

Windows提权的话有一个内核提权,systeminfo寻找对应EXP

(3)常见端口号对应的服务

20、21:FTP

22:SSH

80:web服务(http协议)

3306:MySQL

3389:远程桌面

(4)SQL注入写shell

联合注入写:?id=1' union select1,"一句话",3 into outfile 路径

mysql写shell:select "一句话" into outfile "路径"

你可能感兴趣的:(HVV,java,面试,反序列化漏洞,网络安全)