[SWPUCTF 2021 新生赛]


相关知识点见链接:PHP的JSON中索引数组和关联数组_json关联数组_ZZZZXPQ的博客-CSDN博客

json_decode   对 JSON 格式的字符串进行编码

JSON的构成: ws 值
值可以是对象、数组、数字、字符串或者三个字面值(false、null、true)中的一个。值中的字面值中的英文必须使用小写

1.对象由花括号括起来的逗号分割的成员构成,成员是字符串键和上文所述的值由逗号分割的键值对组成

如:

{"name": "John Doe", "age": 18, "address": {"country" : "china", "zip-code": "10000"}}

2.数组是由方括号括起来的一组值构成

如:
[3, 1, 4, 1, 5, 9, 2, 6]

3.字符串是由双引号包围的任意数量Unicode字符的集合

在php中,如使用花括号{}包裹的数据字符串满足一定的格式要求,就会被强制转换为关联数组类型,而不是普通的字符串类型。这种格式要求是指:

1.数据字符串必须满足JSON格式,即采用双引号包裹属性名和属性值,并使用冒号分隔,多个属性之间使用逗号分隔,最后用一对大括号{}包裹整个结构体。

2.数据字符串中的属性名必须符合PHP的变量名规则,即以字母或下划线开头,后面可以跟着任意个字母,数字或下划线。

3.属性名和属性值之间必须有一个英文冒号:来进行分隔

例如,以下数据字符串就满足上述要求,可以被PHP解析为关联数组:

$data= '{"name":"John","age":30}';

在这个例子中,$data变量实际上是一个字符串类型的变量,,但由于它的格式满足了php强制转换为关联数组的条件,因此在进行某些操作时(如使用json_decode()函数解析JSON数据,php会将其自动转换为一个关联数组类型的变量。这种现象并非JSON的默认行为,在其他编程语言中也不一定存在,是php特有的语言特性。



[SWPUCTF 2021 新生赛]jicao

所以为满足if条件,输出flag,构造:

get:json={"x":"wllm"}

post:id=wllmNB   得到flag。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值