反序列化
攻击者通过控制类中魔术方法来进行各种攻击,例如代码注入、SQL注入、目录遍历等等。
挖掘思路:
反序列化函数的变量可控 存在可利用的类,类中有魔术方法
魔术方法:
__contruct()、__destruct()、__call()、__callstatic()、__get()、__set()、__isset()、__unset()、__sleep()、__wakeup()、__toString()、__invoke()、__set_state()、__clone()、__debugInfo()
输出结果:
构造Payload:O:1:“A”:1:{s:1:“a”;s:18:“phpinfo();”;}
访问ok.php即可将<?php phpinfo();?>写入ok.php
字符串和数字之间的比较
整数和数组、字符串和数组之间的比较
empty和isset
除了isset变量为null时为false其余都为true
md5函数
strcmp函数
当参数使用数组时可相等
海底捞针in_array函数和array_search函数
switch函数
switch函数只接受整型