iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >CTF中的PHP特性函数实例分析
  • 466
分享到

CTF中的PHP特性函数实例分析

2023-07-05 04:07:05 466人浏览 安东尼
摘要

这篇文章主要介绍“CTF中的PHP特性函数实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CTF中的php特性函数实例分析”文章能帮助大家解决问题。MD5强弱碰撞对于MD5加密大家一定很熟悉,

这篇文章主要介绍“CTF中的PHP特性函数实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CTF中的php特性函数实例分析”文章能帮助大家解决问题。

MD5强弱碰撞

CTF中的PHP特性函数实例分析

对于MD5加密大家一定很熟悉,在PHP里同样存在函数MD5,该函数可以将指定的字符串通过哈希函数转为复杂的加密字符串。在CTF中有着关于MD5的最基本的知识,即强/弱类型比较。

弱类型比较

观察以下代码:

if(md5($_GET['a'])==md5($_GET['b']))echo $xino;

可以看到比较时有两个等号,我们要怎样让他们相等呢?根据php弱类型比较特性,当两个等于号时,会将变量转化为同类型,那么我们可以思考,如果把传入的数据改成md5加密后都为开头0e的字符串是不是就可以绕过了,因为这样会被认为是科学计数法,不管加什么都永远是0,我们也就绕过了,这里举几个字符串md5加密后都为0e的:

NWWKITQ:0e763082070976038347657360817689
NOOPCJF:0e818888003657176127862245791911
s878926199a:0e545993274517709034328855841020
s1091221200a:0e940624217856561557816327384675

强类型比较

观察下面代码:

if (md5($_POST['a']) === md5($_POST['b']))echo xino;

如果我们等号变成三个还可以用上面方法绕过吗?答案是否定的,因为三个等号在PHP里意味着强类型比较,上面的方法因为0e后面数据不同便不可行了,于是这里可以用数组来绕过,因为PHP特性允许接受数组,而数组在MD5加密后为NULL,于是借助这个特性可以进行绕过。

我们可以传入下面的PAYLOAD绕过:

a[]=a&b[]=b

强碰撞

难度进一步升级,如果我们要面对的是以下代码呢:

$a = (string)$_GET['a'];$b = (string)$_GET['b'];if (md5($a) === md5($b)) {die('OK');}

因为强制类型转换的原因,我们不能像上面一样传入数组了,于是需要进行MD5强碰撞,及内容不同而MD5值要相同,这就很难办了,但是我们可以用工具生成,这里给大家举一个可行的例子:

a=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2&b=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2

preg_match()

CTF中的PHP特性函数实例分析

这是一个正则表达式函数,简单来说会对我们设置的数据进行匹配,比如:

<?php if (preg_match("/xino/i", "XINO IS A BOY .")){ echo "查找到匹配的字符串 php。"; } else { echo "未发现匹配的字符串 php。"; } ?>

因为我们用/i设置了大小写不敏感,所以可以找到匹配字符串,所以会返回查询到的字符串,下面我们看看如何绕过。

<?phpinclude("flag.php");highlight_file(__FILE__);if(isset($_GET['num'])){    $num = $_GET['num'];    if(preg_match("/[0-9]/", $num)){        die("no no no!");    }    if(intval($num)){        echo $flag;    }}

其中intval的作用是取整,可以看到正则过滤了数字,但由于PHP特性,该函数只能处理字符串,于是我们可以传入数组进行绕过:

?num[]=1

提交后成功echo出了flag,绕过成功。

关于“CTF中的PHP特性函数实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网PHP编程频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: CTF中的PHP特性函数实例分析

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

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

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

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

下载Word文档
猜你喜欢
  • CTF中的PHP特性函数实例分析
    这篇文章主要介绍“CTF中的PHP特性函数实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CTF中的PHP特性函数实例分析”文章能帮助大家解决问题。MD5强弱碰撞对于MD5加密大家一定很熟悉,...
    99+
    2023-07-05
  • CTF中的PHP特性函数解析之上篇
    目录前言MD5强弱碰撞弱类型比较强类型比较强碰撞preg_match()结语前言 对于PHP大家一定不陌生,但你知道PHP在CTF中是如何考察的吗,本文给大家带来的是通过PHP特性...
    99+
    2023-02-21
    CTF PHP特性函数 CTF PHP
  • CTF中的PHP特性函数有哪些
    本篇内容主要讲解“CTF中的PHP特性函数有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CTF中的PHP特性函数有哪些”吧!intval()官方是怎样定义的:简单来说就是让输入的数字变成整...
    99+
    2023-07-05
  • CTF中的PHP特性函数怎么使用
    这篇文章主要介绍了CTF中的PHP特性函数怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CTF中的PHP特性函数怎么使用文章都会有所收获,下面我们一起来看看吧。parse_strparse_str()这...
    99+
    2023-07-05
  • PHP特性&缺陷对比函数&CTF考点
    #详细点: ==与=== md5 intval strpos in_array preg_match str_replace PHP比对规则 == 和 === =:赋值 ==:对比,但是不会对比数据类型 ===:对比,同时对比数据类型 1...
    99+
    2023-09-25
    php 开发语言
  • PHP特性之CTF中常见的PHP绕过
    目录 一、关于md5()和sha1()的常见绕过 1、使用数组绕过 2、 使用特殊字符串绕过 二、strcmp绕过 三、switch绕过 四、intval绕过 一、关于md5()和sha1()的常见绕过 知识介绍: 对于php强比较和弱...
    99+
    2023-08-31
    php PHP绕过 PHP特性 hash web
  • CSS3特性实例分析
    本文小编为大家详细介绍“CSS3特性实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS3特性实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 我们来看下对比效...
    99+
    2024-04-02
  • PHP类型声明特性实例分析
    这篇文章主要介绍“PHP类型声明特性实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP类型声明特性实例分析”文章能帮助大家解决问题。最近在研究PHP7的新特性,发现PHP也开始搞类型声明了...
    99+
    2023-06-30
  • WEB攻防-PHP特性&缺陷对比函数&CTF考点
    目录 知识点: 详细: //1、== ===缺陷绕过 & == 弱类型对比 ===还会比较类型 //2、MD5函数缺陷绕过 ==弱对比 ===强类型对比 //3、intval缺陷绕过 //4、对于strpos()函数,我们可以利用换行进行...
    99+
    2023-10-01
    php
  • ES6新特性之函数扩展的示例分析
    这篇文章主要介绍ES6新特性之函数扩展的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:一、函数参数默认值1. ES6允许为函数的参数设置默认值,即直接写在参数定义的...
    99+
    2024-04-02
  • PHP函数的性能分析函数
    PHP作为一门高度可扩展的编程语言,其强大的函数库拥有众多的特色函数,能够大大提升开发效率。但是在PHP程序性能提升的过程中,我们不仅仅需要考虑优化算法,还需要通过性能分析函数深入挖掘性能瓶颈,提高程序的执行效率。一、函数性能优化的必要性在...
    99+
    2023-05-20
    函数 性能分析 PHP函数
  • JDK8新特性实例分析
    这篇“JDK8新特性实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JDK8新特性实...
    99+
    2024-04-02
  • PHP中函数参数的示例分析
    小编给大家分享一下PHP中函数参数的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP 函数参数可以通过参数向函数传递...
    99+
    2024-04-02
  • PHP中date()函数的示例分析
    这篇文章主要介绍PHP中date()函数的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在PHP的日常使用过程中,我们不可避免的需要使用到时间,PHP内置了date()函数,帮助我们解锁时间的方式,本文就带大...
    99+
    2023-06-14
  • PHP中getdate()函数的示例分析
    这篇文章主要介绍PHP中getdate()函数的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先要了解一下getdate()的语法getdate    ( ...
    99+
    2023-06-14
  • php中unpack()函数的示例分析
    这篇文章主要介绍php中unpack()函数的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的开发环境。二、WampServer,Wamp...
    99+
    2023-06-14
  • php中fopen()函数的示例分析
    这篇文章主要介绍php中fopen()函数的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocess...
    99+
    2023-06-15
  • JavaScript中惰性函数的示例分析
    这篇文章主要介绍JavaScript中惰性函数的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!需求我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,...
    99+
    2024-04-02
  • PHP中的money_format()函数的示例分析
    小编给大家分享一下PHP中的money_format()函数的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php是什么语言php,一个嵌套的缩写名称,是...
    99+
    2023-06-14
  • PHP中的extract()函数的示例分析
    这篇文章主要介绍了PHP中的extract()函数的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php的框架有哪些php的框架:1、Laravel,Laravel是...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作