这道题原本应该是通过.git源码泄漏获取到源码,利用工具githack,可能是环境的问题,执行完发现目录是空的

直接从网上找源码,可能比源代码的内容要多一些

GitHub - weiphpdev/weiphp5.0: WeiPHP5.0,公众号与小程序结合的最佳开发框架,,它实现一个后台同时管理和运营多个客户端(公众号,微信小程序,后续将支持支付宝小程序,百度小程序等)

进入后的页面为一个登陆框,将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漏洞

攻防世界--weiphp相关推荐

  1. 攻防世界 web高手进阶区 10分题 weiphp

    前言 继续ctf的旅程 开始攻防世界web高手进阶区的10分题 本文是weiphp的writeup 解题过程 进入界面 点击 进入一个登陆界面 没有注册 那肯定得找源码了 惯例源码+御剑 发现git泄 ...

  2. 【攻防世界001】Guess-the-Number

    攻防世界之前刷了几十题了,没写wp,感觉很简单没啥意思.后来参加了几次比赛,发现有点干不动,决定还是老老实实刷题好了.这是第一篇wp,这题很简单,是个jar,用jd-gui可以得到java源码. 原来 ...

  3. 攻防世界(pwn)--Mary_Morton 利用格式化字符串+栈溢出破解Canary的保护机制

    ctf(pwn) canary保护机制讲解 与 破解方法介绍 程序执行流程 有三个选项,1是利用栈溢出,2是利用格式化字符串,3是退出;可连续输入多次; IDA分析 解题思路 程序存在canary保护 ...

  4. 攻防世界(Pwn) forgot---栈溢出;(方法二)

    攻防世界(Pwn) forgot-栈溢出:(方法一) 里面对问题描述的更详细一点 返回目标函数 0x80486CC 方法二(爆破流) 因为最终返回的是 v3[0]-v3[9] 之中的一个函数, v3[ ...

  5. 攻防世界(Pwn) forgot---栈溢出;(方法一)

    攻防世界(Pwn) forgot-栈溢出:(方法二) 介绍 这道题表面看起来有点复杂,其实很简单,有两种方法可以来做这一道题; 方法一(精确打击) 文件运行流程是: 1.先输入名字 2. 输入一串字符 ...

  6. 攻防世界misc新手_[攻防世界]mobile新手练习区easy-apk

    [攻防世界]mobile新手练习区easy-apk easy-apk最佳Writeup由129师386旅独立团 • devi1提供 难度系数: 7.0 题目来源: 暂无 题目描述:无 题目场景: 暂无 ...

  7. 攻防世界 ——crypto

    目录 新手区部分题解: 1,easy_RSA 2,Normal_RSA 3, 幂数加密 4,easy_ECC 高手进阶区部分题题解 5, ENC 6,告诉你个秘密 7,Easy-one 8,说我作弊需 ...

  8. 攻防世界———MISC 高手区题解

    目录 1,base64stego 2,easycap 3,Avatar 4,What-is-this 5,签到题 6,Training-Stegano-1 7,Excaliflag 8,Get-the ...

  9. 攻防世界 web(二)

    这周接着刷攻防世界的web题( ̄︶ ̄)↗ 1.command_execution 看提示这题为命令执行漏洞(command_execution),关于命令执行漏洞,我前面有篇博客详细介绍了,大家不了解 ...

最新文章

  1. javascript模块化、模块加载器初探
  2. Pandas SQL 语法归纳总结,真的太全了
  3. 随机森林之oob error 估计
  4. zabbix监控windows进程
  5. python基础高频_面试题(一)
  6. SQLServer之创建数据库架构
  7. SAP Spartacus 4.0 版本因为 hamburger 依赖导致构建出错的问题
  8. 程序员在火车站候车室写代码画面曝光,网友:程序员的悲哀
  9. 【Python】实现文章字符频次排序(文件IO、列表排序、字典操作和字符串join方法)
  10. 多段图的动态规划算法(C/C++)
  11. 如何查看磁盘分区情况
  12. HDU 6191 2017广西邀请赛Query on A Tree:可持久化01字典树(区间抑或最大值查询)
  13. 学习笔记——meta analysis
  14. Java学习-设计模式-单例模式
  15. 二、MySQL 介绍及 MySQL 安装与配置
  16. win7系统安装记录
  17. Linux - 虚拟网络设备 - bridge,veth,namespace
  18. 计算机锁屏打不开,电脑快捷锁屏不能用怎么办
  19. 双声道转化为单声道matlab实现
  20. 什么是抽象工厂模式?

热门文章

  1. TAF(Total Application Framework) 基础通信协议 Tars语言
  2. NSIS:延时启动软件的几个方法及探索
  3. 区分 程序(Program) VS 进程(Process)
  4. webfunny警报设置:如何快速验证警报是否有效?
  5. java并发编程-AQS
  6. 微软手机我的世界服务器,我的世界已经手机端和电脑端一起变成了神一般的游戏...
  7. 程序设计题目之高校联考
  8. 开源免费关系数据库模型建模工具
  9. C/S架构和B/S架构的区别(最详细易懂)
  10. 人工智能产品的测试探索