0x01什么是序列化序列化就是将我们的 对象转变成一个字符串,保存对象的值方便之后的传递与使用。0x02为什么要序列化如果为一个脚本中想要调用之前一个脚本的变量,但是前一个脚本已经执行完毕,所有的变量和内容释放掉了,我们要如何操作呢?难道要前一个脚本不断的循环,等待后面脚本调用?这肯定是不现实的。serialize和unserialize就是用来解决这一问题的。serialize可以将变量转换为字符串并且在转换中可以保存当前变量的值;un...
1.MD5 compare漏洞PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,MD5不能处理数组,可用数组绕过、2.ereg函数漏洞:00截断数组,则返回值为NULL 3.变量本身的key4.变量覆盖5.strcmp6.sha1 和 md5 函数7.is_numeric8.preg_match9.parse_str10.字符串比较11.unset12.intval()13.switch()14.in_array()15.serialize 和 unserialize漏洞16.session 反序列化漏洞原文:ht...
unserialize()函数概念
unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。返回的是转换之后的值,可为 integer、float、string、array 或 object。如果传递的字符串不可解序列化,则返回 FALSE。与之相对的函数serialize()序列化函数。我们看一个题目题目:天网管理系统,链接: http://ctf5.shiyanbar.com/10/web1/1、进入题目查看网页源码这行提示比较霸气,直接让你判断你的用户名的md5值是不是等于0,这里...
phpcms v9 中 string2array()函数使用了eval函数,在多个地方可能造成代码执行漏洞
/phpsso_server/phpcms/libs/functions/global.func.php/**
* 将字符串转换为数组
*
* @param string $data 字符串
* @return array 返回数组格式,如果,data为空,则返回空数组
*/function string2array($data) {
if($data == ‘‘‘‘) returnarray();
eval("\$array = $data;");
return$array;
}
在文件/phpcms/modules/vote/in...
客户端脚本植入(Script Insertion),是指将可以执行的脚本插入到表单、图片、动画或超链接文字等对象内。当用户打开这些对象后,攻击者所植入的脚本就会被执行,进而开始攻击。可以被用作脚本植入的HTML标签一般包括以下几种:1、<script>标签标记的javascript和vbscript等页面脚本程序。在<script>标签内可以指定js程序代码,也可以在src属性内指定js文件的URL路径2、<object>标签标记的对象。这些对象是java applet、多媒体文件和...
ThinkPHP官网上曾有一段公告指出,在ThinkPHP 3.1.3及之前的版本存在一个SQL注入漏洞,漏洞存在于ThinkPHP/Lib/Core/Model.class.php 文件
根据官方文档对"防止SQL注入"的方法解释(参考http://doc.thinkphp.cn/manual/sql_injection.html)
使用查询条件预处理可以防止SQL注入,没错,当使用如下代码时可以起到效果:
$Model->where("id=%d and username=‘%s‘ and xx=‘%f‘",array($id,$username,$xx))->select();或者
$Model->where...
漏洞名称:dedecms cookies泄漏导致SQL漏洞补丁文件:/member/article_add.php补丁来源:云盾自研漏洞描述:dedecms的文章发表表单中泄漏了用于防御CSRF的核心cookie,同时在其他核心支付系统也使用了同样的cookie进行验证,黑客可利用泄漏的cookie通过后台验证,进行后台注入。解决方法搜索代码:if (empty($dede_fieldshash) || $dede_fieldshash != md5($dede_addonfields.$cfg_cookie_encode))如图:修改代码为:if (empty($de...
https://www.bilibili.com/video/BV1Ft41187ZXphp反序列化原理php序列化与反序列化基础序列化与反序列化序列化:将变量转换为可保存或传输的字符串的过程反序列化:在适当的时候把这个字符串转化为原来的变量使用php序列化与反序列化函数serialize:可以将变量转换为字符串并且在转换中可以保存当前变量的值unserialize:可以将serialize生成的字符串变换回变量php进行序列化的目的是保存一个对象方便以后重用类,变量,方法,对象<?php//...
1、PHP配置文件(PHP.ini)介绍 php.ini是php的配置文件,里面包含了众多配置,在php启动时被读取。自php5.3.0起,PHP支持每个目录的.htaccess风格的ini文件。此类文件仅被CD/FASTCGL SAPL处理。如果使用apache,则用.htaccess文件同样效果。2、PHP.ini的配置语法a)指令=值b) 指令名大小写敏感3、PHP.ini常见重要配置a) 短标签: short_open_tag = on 这项配置设置为on 的话。允许php使用短标签,如<? 短标签形式<?php 完整标...
php在处理文件上传时,经常可以用到下面几种方式来判断文件的类型1.通过文件名后缀,不安全,非常容易欺骗2.通过mime判断,部分类型的文件通过修改文件后缀名,也可以欺骗服务器3.通过头字节判断文件类型,但是判断范围有限,比如docx/xlsx等新的文档,通过头信息判断时,其实是一个zip包PHP通过读取文件头部两个字节判断文件真实类型及其应用示例function checkFileType($fileName){ $file = fopen($fileName, "rb"); ...
CVE-2016-7124php反序列化漏洞复现0X00漏洞原因如果存在__wakeup方法,调用 unserilize() 方法前则先调用__wakeup方法,但是序列化字符串中表示对象属性个数的值大于 真实的属性个数时会跳过__wakeup的执行0X01漏洞影响版本PHP5 < 5.6.25PHP7 < 7.0.100X02漏洞详情PHP(PHP:HypertextPreprocessor,PHP:超文本预处理器)是PHPGroup和开放源代码社区共同维护的一种开源的通用计算机脚本语言。该语言主要用于Web开发,支持多种数据...
 受影响系统: PHP version 4.1.1 under Windows PHP version 4.0.4 under Windows 漏洞描述: 在Windows下的PHP,通过PHP.EXE,攻击者可以让任何文件作为一个php文件,即使这个文件的扩展名不是php。比如,上传一个文件,但是扩展名是mp3,txt,或者gif等等,然后要求PHP去执行它。 例如: 上传一个gif文件,但是实际上是一个php脚本文件,文件内容如下: ...
CVE-2019-11043Date:
2019.9.16类型:
远程代码执行前置条件:Nginx + fastcgi + php-fpm 配置文件信息如下:
location ~ [^/]\.php(/|$) {...fastcgi_split_path_info ^(.+?\.php)(/.*)$;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_pass php:9000;...
}影响范围:version>php 7, php5(EXP暂无)PoC:https://github.com/neex/phuip-fpizdamgo run ."http://ip:8080/index.php"ExP:http://ip:8080/index.php?a=id...
空格20改为00 原文:https://www.cnblogs.com/ahacker15/p/12466759.html
概念&原理序列化就是使用 serialize() 将对象用字符串的方式进行表示;
反序列化是使用 unserialize() 将序列化的字符串构造成相应的对象,为序列化的逆过程。
序列化的对象可以是class或者是Array\String对象序列化与反序列化的作用对象是在内存中存储的数据类型,其寿命随着生成程序的终止而终止。为了将对象的状态保存下来,在需要的时候将其恢复,使用序列化将对象转化为二进制字符串进行保存。用于对象的传递。对象序列化示例...