题一:
文件上传和文件包含经常用到的伪协议:
(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,上传之后连接菜刀,即可查看答案