前言
关键字:[二次注入]

题解
试了半天不行,原来/www.tar.gz有源码泄漏
感觉像是二次注入+错显

试了下,原来不是。
1.构造文件名为
',extension='',filename='x.jpg.jpg
然后上传

2.重命名


使得sql语句变为
update `file` set `filename`='x.jpg', `oldname`='',extension='',filename='x.jpg' where `fid`={$result['fid']}
这样文件名为x.jpg的extension就为空了。
3.上传shell
当下情况是,有个x.jpg.jpg的文件,而数据库里有行filename=x.jpg, extension=''的数据,所以需要重新上传个x.jpg

4.重命名

在这,取的是x.jpg本地文件,数据库取的是filename=x.jpg, extension=''的数据而非刚刚新上传的数据。

因为extension为空,就不会再拼接后缀名了。

连接,结束。