PHP中json_decode函数

JSON函数

json_decode函数

JSON 字符串 :

JSON 中的字符串必须用双引号包围。

例如 {"ctf":"play"} 俩字符串用:隔开

JSON 数字 :

JSON 中的数字必须是整数或浮点数。

例如 {"ctf":100}

在 JSON 中,值必须是以下数据类型之一:字符串,数字,对象(json对象),数组,布尔,null

不可以为以下数据类型之一: 函数,日期,undefined

json_decode

在PHP中 json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。

代码

<?php`
`$json = '{"ctfer":"sanmao","ctf":"misc","age":18,"bisai":14,"champion":5}';`
​
`var_dump(json_decode($json));`
`var_dump(json_decode($json, true));`
`?>

实例演示

例题

[[SWPUCTF 2021 新生赛] jicao]

源代码

<?php
highlight_file('index.php');
include("flag.php");
$id=$_POST['id'];
$json=json_decode($_GET['json'],true);
if ($id=="wllmNB"&&$json['x']=="wllm")
{echo $flag;}
?>

本题需要进行一个post传参,一个get传参,post传参很简单,在Max HackBar或者在BP里传入 id=wllmNB

但是get传参则需要通过调用 PHP 内置函数 json_decode(),将字符串解析为一个关联数组,第二个参数 true 表示将解析结果以数组形式返回。最终将解析得到的数组赋值给变量 $json,可以在后续的代码中使用。

即构造 url+/?json={"x":"wllm"} 即上面所学json对字符串的值

即可得到flag

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值