SharkCTF2021 just_json (json)

web。

题面:

.

 

 考察的实际上只是一个php的弱类型(string==0);

payload:nickname={"key":0}(post)

 

 

关于json:

  详细介绍见https://www.cnblogs.com/zhanghengscnc/p/8585403.html

  感觉还是类似序列化和反序列化。

    对于字符串使用json_decode()处理,生成json格式的东西。

    下文中提到的json,均是对列出的字符串进行过json_decode后的结果。

  (1)本题中用到的json,是最简单的键值对类型。

    xxx={'键名1':值1,'键名2','值2'......}

    没啥好说的。

    要遍历这玩意并输出的话,一种可以采用的方法是这样:

        

 

 ·  这个东西遍历nickname,每次将键赋给keyy,将值赋给valuee,然后输出。

  

  (2)但是,如果出现这样的json:

   输出就变成了:

 

  即,第二个的值是数组;那么遍历就输不出来了。

  这时候就需要 json_encode把他变回字符串,才方便输出,

  (3)于是,想想看可能会出现的更复杂的json:

   

 

   这里再foreach,已经啥都输不出来了;第二个的值变成了一个有两个属性的对象。

   必须json_encode.

 

  (4)上面的东西写的有点奇怪。

  因为,作为一个和序列化、反序列化类似的东西,应该从面向对象,以及序列化的初衷——易于存储等等 讲起。

  但是,因为作为引入的题目是要构造字符串,所以讲的顺序就颠倒了。  

 

  准备等系统学了面向对象之后,把python,php,java(?)还有这什么玩意的 跟对象有关的东西一起整理整理。

  不知道以后会不会填这个坑。

 

posted @   hiddener  阅读(280)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示