前言
关键字:[二次注入]
题解
试了半天不行,原来/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为空,就不会再拼接后缀名了。
连接,结束。