2020/2/2 PHP代码审计之反序列化】的更多相关文章

0x00 序列化与反序列化 序列化: serialize()把对象转换为字节序列的过程称为对象的序列化 反序列化: unserialize()把字节序列恢复为对象的过程称为对象的反序列化 0x01 序列化 <?php $test1 = "wtz2020"; $test2 = array("wtz.2020"); echo serialize($test1); ?> 这里就是转化成7个字节序列 s:strings类型,7:7个字节. <?php $t…
0x01 php面向对象简介 对象:可以对其做事情的一些东西.一个对象有状态.行为和标识三种属性. 类:一个共享相同结构和行为的对象的集合. 每个类的定义都以关键字class开头,后面跟着类的名字. 一个类可以包含有属于自己的变量,变量(称为"属性")以及函数("称为方法"). 类定义了一件事物的抽象特点.通常来说,类定义了事物的属性和它可以做到的. 类可能会包含一些特殊的函数叫magic函数,magic函数命名是以符号"_"开头的,比如_con…
0x00 变量覆盖简介 变量覆盖是指变量未被初始化,我们自定义的参数值可以替换程序原有的变量值. 0x01 漏洞危害 通常结合程序的其他漏洞实现完整的攻击,比如文件上传页面,覆盖掉原来白名单的列表,导致任意文件上传:用户注册页面控制没覆盖的未初始化变量导致SQL. 0x02 挖掘经验 常见危险函数: $$使用不当  extract()函数使用不当 parse_str()使用不当 import_request_variables() 开启了全局变量注册等 0x03 $$使用不当 $$使用不当 <m…
0x01 漏洞代码 install.php: <?php $config = unserialize(base64_decode(Typecho_Cookie::get('__typecho_config'))); Typecho_Cookie::delete('__typecho_config'); $db = new Typecho_Db($config['adapter'], $config['prefix']); $db->addServer($config, Typecho_Db::…
0x00 前言 上午上了网课,一上午就装好了cms,下午还有网课,要是结束的早就进行审计. 解决了一下phpstudy使用过程中: Forbidden You don't have permission to access /install on this server. 解决方法: 加个index.php等入口文件 2: 其他选项菜单->软件设置->允许目录列表 0x01 通读代码 先看入口文件: index.php 判断了一下config.php是否存在,不存在会进行安装cms 否则包含s…
0x00 会话认证漏洞简介 会话认证是个非常大的话题,涉及各种协议和框架,如cookie.session.sso.oauth.openid等. 而其中最常使用的是Cookie和Session,他们都能够进行会话跟踪. cookie是Web服务器返回给客户端的一段常用来标识用户身份或者认证情况的字符串,保存在客户端,浏览器请求时会自动带上这个标识: session是保存在服务器端的信息.用来跟踪用户的状态,这个数据可以保存在集群.数据库.文件中. 0x01session会话漏洞 Session固定…
0x00 简介 开局一张图233 0x01 file://协议 说明: file:// 文件系统是 PHP 使用的默认封装协议,展现了本地文件系统.当指定了一个相对路径(不以/..\或 Windows 盘符开头的路径)提供的路径将基于当前的工作目录.在很多情况下是脚本所在的目录,除非被修改了.使用 CLI 的时候,目录默认是脚本被调用时所在的目录.在某些函数里,例如 fopen() 和 file_get_contents(),include_path 会可选地搜索,也作为相对的路径. 条件: a…
0x00 简介 php中有两种比较的符号 == 与 === <?php 2 $a = $b ; 3 $a===$b ; 4 ?> === 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较 == 在进行比较的时候,会先将字符串类型转化成相同,再比较 如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行 0x01 变量类型 标准类型:布尔 boolen,整型 integer,浮点 float,字符 string 复杂类型:数组 array,…
在开始学习之前先简单记录一下自己现在的思路吧..现在接触的基本都是无防护的漏洞也就是最简单的一些漏洞.我的想法就是以代审思路为主,之前一直在打CTF,白盒的思维我觉得和CTF这种黑盒有很大区别.自己的思考方式应该在某处转变. 在实际中,真正的业务也是基于这种最简单的功能,无非是给他穿了很多层衣服,而我们在审计时要做的就是去掉他的保护,脱掉他的衣服. 0x00 任意文件读取 通过提交专门设计的输入,攻击者就可以在被访问的文件系统中读取或写入任意内容,往往能够使攻击者从服务器上获取敏感信息文件,正常…
0x00 文件包含简介 文件包含漏洞的产生原因是在通过引入文件时,引用的文件名,用户可控,由于传入的文件名没有经过合理的校检,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入.当被包含的文件在服务器本地时,就形成了本地文件包含漏洞,被包含的文件在第三方服务时,就形成了远程文件包含漏洞. 0x01 漏洞危害 执行恶意代码 包含恶意文件控制网站 甚至控制网站服务器等 0x02 本地包含 本地文件包含(Local File Include,LFI),LFI允许攻击者…