[SWPUCTF 2021 新生赛]jicao、easy_md5

目录

[一、SWPUCTF 2021 新生赛jicao](#一、[SWPUCTF 2021 新生赛]jicao)

什么是JSON?

JSON语法:

[SWPUCTF 2021 新生赛jicao](#[SWPUCTF 2021 新生赛]jicao)

[二、SWPUCTF 2021 新生赛easy_md5](#二、[SWPUCTF 2021 新生赛]easy_md5)

PHP弱类型和强类型

1.弱类型比较(==)

2.强类型比较(===)

[SWPUCTF 2021 新生赛easy_md5](#[SWPUCTF 2021 新生赛]easy_md5)

解法一:使用md5绕过

解法二:使用数组绕过


一、SWPUCTF 2021 新生赛jicao

什么是JSON?

JSON是什么?对JSON的简单理解_josn是什么-CSDN博客

JSON(全称JavaScript)是一种存储数据的方式,使用键值对e.g.{"key":"value"}的形式表示数据。

JSON中,键是一个字符串。

值可以是字符串、数字、布尔值、数组、嵌套的JSON对象或null。

JSON语法:

使用花括号**{}** 表示一个JSON对象。

键和值之间使用冒号 : 分隔。

每个键值对之间使用逗号**,** 分隔。

示例:

复制代码
{    //键
    "usename":"admin",           //值为       //字符串
    "id":123,                                 //数字
    "password":123,
    "interests": ["reading", "traveling"],    //数组
    "addrees":
    {
        "campus":"moudaxue",
        "zhuanye":"computer"                  //嵌套的JSON
    },
    "beizhu":null                             //空
    
}
SWPUCTF 2021 新生赛jicao

打开环境,php代码说明了flag.php文件包含于index.php中,设定了一个POST请求的id和GET请求的json。当id,json分别等于字符串时,返回flag。

故 GET传参?json={"x":"wllm"} POST传参 id=wllmNB

得到flag。

二、SWPUCTF 2021 新生赛easy_md5

PHP弱类型和强类型

PHP弱类型和强类型_php 强类型-CSDN博客

php是一种弱类型语言,对数据的类型要求并不严格,可以让数据类型互相转换。

php其中的两种比较符号:

==:先将字符串类型转换相同,再比较。(松散比较)(只比较值,不比较数据类型)

===:先判断两种字符串的类型是否相等,再比较。(进行严格的类型和值比较)

1.弱类型比较(==)

若字符型值开头为数字,转为数字;

若开头不为数字,为 null 弱比较,与 0 相等。

"123abc"==123 => true

''abc123''==123 => false

''abc123''==0 => true

2.强类型比较(===)

当两个操作数的类型和值完全相等时,才会返回true,否则返回false。

"123abc"==="123abc" => true

SWPUCTF 2021 新生赛easy_md5

打开环境,php代码说明了flag.php文件包含于FILE中,设定了一个POST请求的password和GET请求的name。当name不等于password,但它们通过MD5加密后相等时,返回flag。

解法一:使用md5绕过

php中存在== 弱类型比较,可通过hash比较的缺陷绕过

hash比较的缺陷:

两个数的md5加密后的值以0e开头就可以绕过

因为以0e开头的数会被认为是科学计数法,0e+任何数 在科学计数法中都是0,故两数相等

常见的MD5碰撞:md5值为0e开头_md5 0e开头-CSDN博客

找了两个0e开头的MD5原值(QNKCDZO、240610708)分别作为name,password传参

得到flag。

解法二:使用数组绕过

由于md5()函数存在缺陷,加密\[\]的时候返回值如果是NULL,就能成功的绕过

可使用\[\]类型比较的方法, GET传参?name\[\]=1 POST传参 password\[\]=2

相关推荐
猿长大人14 小时前
C# | JSON 序列化中的多态接口处理:基于 Attribute 实现精准 $type 控制
c#·json
消失的旧时光-194317 小时前
第六篇:Redis Hash——一个用户对象应该保存成 JSON,还是保存成 Hash?
redis·json·哈希算法
SEO_juper19 小时前
2026年Schema自动注入实战:用Python批量给1000个页面加上JSON-LD,AI引用率实测提升38%
人工智能·python·json·seo·独立站
Wang's Blog21 小时前
AI Agent白手起家37: LangChain 输出解析器实战:文本、JSON、XML 与 Pydantic
xml·langchain·json
灵析表格1 天前
json_ObjectToKV 函数深度研究报告
json·excel·wps·灵析表格·excel公式盒子
wtsolutions1 天前
JSON 怎么导入 WPS?怎么转换成 WPS 表格?WPS 怎么打开 JSON?完整教程
json·wps
IDIOT___IDIOT2 天前
JSON-RPC 2.0 与 MCP 协议:从消息格式到进程通信 大模型MCP
rpc·大模型·json·agent·mcp
憧憬成为原神糕手2 天前
Playwright、Selenium、DrissionPage 与 JSON 接口怎么选?
数据库·selenium·json
SelectDB技术团队2 天前
Apache Doris 4.1:面向 AI & Search 的统一数据底座怎么选?向量检索 + 全文搜索 + 100MB JSON 完整能力拆解
人工智能·json·apache doris
进击切图仔2 天前
VS Code 调试 launch.json 解析
json