适用版本5.x < 5.1.31, <= 5.0.23
未对控制器进行过滤,导致攻击者可以通过引入\符号来调用任意类方法。
实例化控制器,然后调用实例中的方法。跟进controller方法:
其中通过parseModuleAndClass方法解析出$module和$class,然后实例化$class。
而parseModuleAndClass方法中,当$name以反斜线\开始时直接将其作为类名。利用命名空间的特点,如果可以控制此处的$name(即路由中的controller部分)
适用版本5.x < 5.1.31, <= 5.0.23
未对控制器进行过滤,导致攻击者可以通过引入\符号来调用任意类方法。
实例化控制器,然后调用实例中的方法。跟进controller方法:
其中通过parseModuleAndClass方法解析出$module和$class,然后实例化$class。
而parseModuleAndClass方法中,当$name以反斜线\开始时直接将其作为类名。利用命名空间的特点,如果可以控制此处的$name(即路由中的controller部分)