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