两个文件上传/包含

Posted liqik

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个文件上传/包含相关的知识,希望对你有一定的参考价值。

题一:

技术图片

 

 

文件上传和文件包含经常用到的伪协议:

技术图片

 

 

(1)php归档

phar://

进入上传文件,发现URL变为index.php?url=upload

意思是这里还有个upload.php,访问http:/xxx/upload.php,略有不同。

自动在文件后面加.php,例如a.jpg,访问的时候为a.jpg.php(同upload)

技术图片

 

(2)写个php文件,打包上传

用phar协议 构造payload:?url=phar://upload/2203009b46ff4699489b56e1b2cd5cd2.zip/hello

链接菜刀可以查看答案

zip://

payload:?url=zip://upload/05ae7636a1d061dfe76345e9c1e6388b.zip%23hello

 注意:如果不给上传zip,rar等压缩包文件,可以把压缩之后的zip文件改为.jpg,还是利用协议也是可以的

 

题二:

给出100多行代码,问别人重点好像是

if(!in_array(getExt($name), array(‘.jpg‘,‘.png‘,‘.jpeg‘,‘.gif‘)) || strpos($name, ‘.ph‘) !== false)
unlink($tmpdir.‘/‘.$name);
continue;

只能上传zip文件,上传之后自动解压删除,压缩文件中必须有图片,不能出现ph

问的别人,把文件改名为.pHp.jpg,上传之后连接菜刀,即可查看答案

 

以上是关于两个文件上传/包含的主要内容,如果未能解决你的问题,请参考以下文章

python发送post请求上传文件,无法解析上传的文件

文件上传 [upload-labs-master][Pass11-19]

文件上传进度条[重复]

将所有multer上传的文件移动到Nodejs中的新目的地

13th day

使用 MVC 3/.NET 进行异步文件上传?