这道题原本应该是通过.git源码泄漏获取到源码,利用工具githack,可能是环境的问题,执行完发现目录是空的
直接从网上找源码,可能比源代码的内容要多一些
进入后的页面为一个登陆框,将login改为register发现该功能被禁用了
前台SQL注入
由于这里对title参数并没有检测,所以可以执行sql注入
执行
/weiphp5.0/public/index.php/Material/Material/material_lists?title=123'or sleep(5)#
免登录文件上传
在网页源码中可以看到上传
访问后显示
定位file控制器upload_picture方法,发现有鉴权:
public function upload_picture()
{
// TODO: 用户登录检测
if (!is_login()){
$return = array(
'status' => 0,
'info' => '上传失败,请先登录',
'data' => ''
);
return json($return);
}
看到有个upload_root 方法没有鉴权,直接可以上传:
public function upload_root() {
$return = array(
'status' => 1,
'info' => '上传成功',
'data' => ''
);
/* 调用文件上传组件上传文件 */
$File = D('home/File');
$file_driver = strtolower(config('picture_upload_driver'));
$setting = array (
'rootPath' => './' ,
);
$info = $File->upload($setting, config('picture_upload_driver'), config("upload_{$file_driver}_config"));
// $info = $File->upload(config('download_upload'), config('picture_upload_driver'), config("upload_{$file_driver}_config"));
/* 记录附件信息 */
if ($info) {
$return['status'] = 1;
$return = array_merge($info['download'], $return);
} else {
$return['status'] = 0;
$return['info'] = $File->getError();
}
/* 返回JSON数据 */
return json_encode($return);
}
upload_picture处可能有黑名单,文件后缀使用phtml即可绕过
其他方法
攻防世界 web高手进阶区 10分题 weiphp_闵行小鱼塘-CSDN博客_weiphp漏洞