反序列化相关

1.序列化serialize()

把一个对象变成可以传输的字符串,目的就是为了方便传输。

反序列化相关_第1张图片

反序列化相关_第2张图片

 

2. 反序列化unserialize()

 把被序列化的字符串还原为对象

反序列化相关_第3张图片

 java
 将java对象转化为字节序列的过程,反序列化的过程就是
1.创建一个对象输出流
2.通过对象输出流的readobject()方法来读取对象

3.反序列化漏洞产生的原理 

序列化和反序列化本身都没有漏洞,但是如果反序列化的内容用户可以控制,且后台使用了php中的魔法函数,就会导致安全问题

 产生条件

1.参数给变量未经过滤,反序列化的内容是可控的

2.PHP使用了魔法函数

常见的魔法函数

_construct()   一个对象创建时被调用

_destruct()    一个对象销毁时被调用

_tostring()     一个对象被当作一个字符串使用时

_sleep()        对象被序列化之前运行

_wakeup      在序列化之后立即被调用

4.反序列化的漏洞实验 

  •  PHP反序列化漏洞验证

O:1:"S":1:{s:4:"test";s:29:"";}

反序列化相关_第4张图片

反序列化相关_第5张图片

  • jboss反序列化漏洞验证

反序列化相关_第6张图片

反序列化相关_第7张图片

反序列化相关_第8张图片

dir /s  c:\*.jsp  查找路径

反序列化相关_第9张图片

C:\jboss\server\default\tmp\vfs\automount21f55fc396b809ae\jobfan.war-968075a27bcc5d18\test.jsp

反序列化相关_第10张图片

反序列化相关_第11张图片

上传一句话木马jsp  的xxx.jsp

反序列化相关_第12张图片

 可以在浏览器访问一下

反序列化相关_第13张图片

菜刀连接

反序列化相关_第14张图片

反序列化相关_第15张图片

                    

  • weblogic 反序列化漏洞验证

http://10.0.0.139:7001/console/login/LoginForm.jsp  先打开

反序列化相关_第16张图片

扫描漏洞

反序列化相关_第17张图片

反序列化相关_第18张图片

反序列化相关_第19张图片

反序列化相关_第20张图片

复现漏洞

反序列化相关_第21张图片

反序列化相关_第22张图片

  • 常见的反序列化漏洞

        Java 反序列化漏洞操作(CVE-2018-2628)、
        任意文件上传漏洞操作(CVE-2018-2894)、

        XML Decoder 反序列化漏洞操作(CVE-2017-10271)、

        SSRF 漏洞(需要安装Weblogic时选择UDDI组件)、

        反序列化漏洞(CVE-2019-2725、未授权访问)                

  •  fastjion反序列化漏洞

 判断
        通过构造错误的post请求,可以查看在返回包中是否含有fastjion这个字符串来判断 
        在安全设备上有这一行代码  prefix":"rmi ://ip:port/exploit"
原理
        是阿里巴巴开发的一款json字符串和java对象进行序列化和反序列化的开源json解析库。fastion提供了autotype功能,在请求的过程中,我们可以在请求包中通过@type的值,来反序列化为指定的类型,而fastjion 在反序列化过程中会设置和获取类中的属性,如果类中存在恶意方法,就会导致代码执行等这类的问题。
没有回显怎么办
1.通过dnslog进行数据库外带,如果连不上网无法验证
2.直接将命令执行结果写入到静态资源文件里,如HTML、js等,通过访问http访问就可以直接看到结果
3.直接将命令执行结果回显请求POC的http响应中

5.防御

1.安全配置好php相关参数:通过Php.ini配置文件里面有个disable_functions = 配置,这个禁止某些php函数,服务器便是用这个来禁止php的执行命令函数
(1)执行系统命令: assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,``(反单引号)
(2)代码执行与加密: eval, assert, call_user_func,base64_decode, gzinflate, gzuncompress, gzdecode, str_rot13
2.升级中间件
3.严格控制传入变量,严谨使用魔法函数 

你可能感兴趣的:(常见的漏洞,开发语言,安全,系统安全,web安全,网络安全)