攻防世界 easyphp

本题主要利用的知识点是php绕过

一、PHP代码分析

首先先看一下代码

 我们需要利用get方式上传3个参数a,b,c,这3个分别需要满足不同的条件:

a:设置a值;值大于6000000;长度不超过3;

b:设置b值;MD5值的后6位为'8b184b';

c:是数组;c["m"]  不是数字,但要大于2022;c["n"]是个数组,有两个元素;c["n"][0]是个数组;还有一个条件后文分析

   二、变量分析

大家可以首先先了解一下一些简单的php绕过

http://t.csdnimg.cn/b7Oxh

(1)a的话直接设置为9e9(9*10**9),满足条件

(2)b的话,就需要用到MD5碰撞了,代码来源http://t.csdnimg.cn/TFoG1

import random
import hashlibvalue = "8b184b"
while 1:plainText = random.randint(10**11, 10**12 - 1)plainText = str(plainText)MD5 = hashlib.md5()MD5.update(plainText.encode(encoding='utf-8'))cipherText = MD5.hexdigest()if cipherText[-6:]==value :print("碰撞成功:")print("密文为:"+cipherText)print("明文为:"+plainText)breakelse:print("碰撞中.....")

解出来的密文和明文分别为:842fc2485a1faa0681f78d3e098b184b,792616362347,所以b取值为792616362347

(3)c的话,首先是一个字典

c["m"]  设置为一个字符串,但字符串开头是数字。比如“2023aaa"。

c["n"] 设置为一个数组(有两个元素),c["n"] [0]设置成一个数组,比如["6"]。后面两个函数一个要求有"DGGJ",另一个要求没有"DGGJ"。我们必须要绕过其中一个函数,array_search函数是可以绕过的,当函数将字符串与数字进行匹配时,会将字符串强制转换为整型进行比较,"DGGJ"转化为整型为0。所以另一个元素设置为0

三、结果

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MT8788智能模块简介_MTK联发科安卓核心板方案厂商

MT8788安卓核心板是一款具备超高性能和低功耗的4G全网通安卓智能模块。该模块采用联发科AIOT芯片平台,供货周期长。 MT8788核心板搭载了12nm制程的四个Cortex-A73处理器核心和四个Cortex-A53处理器核心,最高主频可达2.0GHz。板载内存容量可选为4GB64GB(也…

Linux2.6内核进程调度队列

目录 运行队列runqueue 活跃队列&过期队列 queue[140]&优先级&队列数组下标 bitmap[5]&O(1)调度算法 nr_active active指针和expired指针 O(1)调度算法之调度过程 本篇是Linux进程概念篇的最后一篇,Linux2.6内核是一个具体的/可行的/实际的存…

【计算机系统基础读书笔记】1.1.2 冯诺依曼机基本结构

1.1.2 冯诺依曼机基本结构 冯诺依曼机基本结构如图所示: 模型机中主要包括: 主存储器:用来存放指令和数据,简称主存或内存; 算数逻辑部件(Arithmetic Logic Unit,简称ALU)&#x…

SignalR中的重连机制和心跳监测机制详解

一. 重连机制 声明:   本节仅介绍重连机制和心跳监测机制,基于Core 3.1框架,至于SignalR其它的一些基本使用,包括引入、Hub、配置等常规操作,在本节中不介绍,后续写Core下的SignalR 说明   默认是没有重…

Log4j日志框架多种日志级别

Log4j日志框架定义了多种日志级别,这些级别按照优先级从高到低排列如下: OFF:这是最高等级的日志级别,用于关闭所有日志记录。FATAL:指出每个严重的错误事件将会导致应用程序的退出。ERROR:表明发生错误事…

C++之STL-list+模拟实现

目录 一、list的介绍和基本使用的方法 1.1 list的介绍 1.2 list的基本使用方法 1.2.1 构造方法 1.2.2 迭代器 1.2.3 容量相关的接口 1.2.4 增删查改的相关接口 1.3 关于list迭代器失效的问题 二、模拟实现list 2.1 节点类 2.2 迭代器类 2.3 主类list类 2.3.1 成员变…

JAVA12

JAVA12 1 概述2 语法层次的变化1_swich表达式(预览) 3 API层次的变化1_支持数字压缩格式化2_String新方法3_Files新增mismatch方法 4 关于GC方面的新特性1_Shenandoah GC:低停顿时间的GC(预览)2_可中断的 G1 Mixed GC3_ 增强G1 5 其他新特性简…

Git如何配合Github使用

1.安装Git https://git-scm.com/ ##2.配置 Git 安装完成后,你需要设置 Git 的用户名和邮箱地址,这样在提交代码时就能知道是谁提交的。你可以在命令行中输入以下命令来配置: git config --global user.name "Your Name" git con…

Orange3数据可视化(箱线图-离散属性分布)

箱线图(Box Plot) 又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因图形如箱子,且在上下四分位数之外常有线条像胡须延伸出去而得名 箱线图可以显示属性值的分布,快速发现异常,例如重复的值,离群值等,挖掘数据的…

http基础了解

超文本传输协议(HTTP)是一个用于传输超媒体文档(例如 HTML)的应用层协议。它是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。HTTP 遵循经典的客户端—服务端模型,客户端打开一个连…

Git学习路线

1.看书 把这本书看懂就可以了;这个是比较专业的一本书;比较系统;没有书的可以私信我 2.理解Git多个分区和多个分支 多个分区包括:工作区、暂存区、本地仓、本地的远端仓信息、远端仓 多个分区的状态 分支及其变化 3.记住常用命令…

原生js实现一个简化版的h函数

原生js实现一个简化版的h函数 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&…