0
点赞
收藏
分享

微信扫一扫

[SWPUCTF 2021 新生赛]jicao、easy_md5

程序小小黑 04-15 15:00 阅读 1
json

目录

一、[SWPUCTF 2021 新生赛]jicao

什么是JSON?

JSON语法:

[SWPUCTF 2021 新生赛]jicao

二、[SWPUCTF 2021 新生赛]easy_md5

PHP弱类型和强类型

1.弱类型比较(==)

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

[SWPUCTF 2021 新生赛]easy_md5

解法一:使用md5绕过

解法二:使用数组绕过


一、[SWPUCTF 2021 新生赛]jicao

什么是JSON?

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

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

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是一种弱类型语言,对数据的类型要求并不严格,可以让数据类型互相转换。

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比较的缺陷绕过

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

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

得到flag。

解法二:使用数组绕过

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

举报

相关推荐

0 条评论