TP5框架低版本漏洞

漏洞1:
  • 描述:未对控制器名做严格过滤,导致非法用户可以通过将控制器名写为带完整命名空间类的方式来调起系统所有公共类的方法。
  • 代码:\thinkphp\library\think\App.php类的module方法。
  • 修复:添加下方补丁代码( 补丁代码 start补丁代码 end
         // 设置默认过滤机制$request->filter($config['default_filter']);// 当前模块路径App::$modulePath = APP_PATH . ($module ? $module . DS : '');// 是否自动转换控制器和操作名$convert = is_bool($convert) ? $convert : $config['url_convert'];// 获取控制器名$controller = strip_tags($result[1] ?: $config['default_controller']);/**补丁代码 start**/if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {throw new HttpException(404, 'controller not exists:' . $controller);}/**补丁代码 end**/$controller = $convert ? strtolower($controller) : $controller;// 获取操作名$actionName = strip_tags($result[2] ?: $config['default_action']);if (!empty($config['action_convert'])) {$actionName = Loader::parseName($actionName, 1);} else {$actionName = $convert ? strtolower($actionName) : $actionName;}
漏洞2:
  • 描述:未对请求类型做严格限定,导致非法用户可以通过构造特定的请求参数来执行系统中任意可执行的函数
  • 代码:\thinkphp\library\think\Request.php类的method方法。
  • 修复:添加下方补丁代码( 补丁代码 start补丁代码 end
public function method($method = false){if (true === $method) {// 获取原始请求类型return $this->server('REQUEST_METHOD') ?: 'GET';} elseif (!$this->method) {if (isset($_POST[Config::get('var_method')])) {$method = strtoupper($_POST[Config::get('var_method')]);/**补丁代码 start**/if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {$this->method = $method;$this->{$this->method}($_POST);} else {$this->method = 'POST';}/**补丁代码 end**/unset($_POST[Config::get('var_method')]);} elseif (isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'])) {$this->method = strtoupper($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']);} else {$this->method = $this->server('REQUEST_METHOD') ?: 'GET';}}return $this->method;}

TP5框架低版本漏洞相关推荐

  1. 利用samba漏洞入侵linux主机(samba低版本漏洞利用)

    复现samba漏洞入侵linux主机(samba低版本漏洞利用) Samba是在Linux和UNIX系统上实现,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块 ...

  2. 升级Jquery版本,解决低版本安全漏洞

    前言 Jquery 低版本存在安全漏洞,所以需要升级版本 记录 jQuery 1.12.3 升级到 v3.x 问题 jquery 低版本存在 XSS 跨站漏洞 // 在控制台中输入以下代码 // 如果 ...

  3. RedMonk最新编程语言排行榜;Spring 框架现 RCE 漏洞……|叨资讯

    点击关注强哥,查看更多精彩文章呀 哈喽,大家好,我是强哥. Spring 框架现 RCE 漏洞:按月租用iPhone手机.随时能换新款:俄罗斯或将转用 HarmonyOS:Chrome 100发布:R ...

  4. 第14篇:Struts2框架下Log4j2漏洞检测方法分析与总结

     Part1 前言  Log4j2漏洞出现有大半年的时间了,这个核弹级别的漏洞危害很大,但是这个漏洞检测起来却很麻烦,因为黑盒测试无法预判网站哪个应用功能在后台调用了log4j2记录日志功能.目前通用 ...

  5. android 编译之后黑屏_抖音BoostMultiDex:Android低版本上首次启动时间减少80%(一)...

    我们知道,Android 低版本(4.X 及以下,SDK < 21)的设备,采用的 Java 运行环境是 Dalvik 虚拟机.它相比于高版本,最大的问题就是在安装或者升级更新之后,首次冷启动的 ...

  6. java快速注释怎么配置_详解如何在低版本的Spring中快速实现类似自动配置的功能...

    在 Spring 4 后才引入了 @Conditional 等条件注解,它是 Spring Boot 中实现自动配置的最大功臣! 那么问题来了:如果我们还在使用 Spring 3.x 的老版本,这时候 ...

  7. element ui 兼容低版本浏览器

    基于ES6的用Vue框架element ui写的页面,如果当需要解决兼容低版本浏览器时,会遇到在低版本浏览器中不显示效果,页面一片空白,但控制台也不报错,而在高版本可以正常显示的情况. 低版本效果: ...

  8. React 项目兼容低版本浏览器

    兼容低版本浏览器真的是让人头大,不过现在好在有框架鱼插件的运用,让我们轻松的兼容低版本浏览器,本文中以 DvaJS Cli 举例 下载 react-app-polyfill 和 core-js 插件 ...

  9. 低版本浏览器兼容处理

    1.HTML5新标签对IE低版本浏览器的兼容处理 问题概述:IE8浏览器中还没有添加对HTML5新标签的支持,当在页面中使用HTML5新标签时,新标签不兼容 1)使用JavaScript新增元素的方法 ...

最新文章

  1. 内核线程、轻量级进程、用户线程
  2. 硒品牌谋定功能性农业-农业大健康·万祥军:践行健康中国
  3. 年度总结 | 2020CSDN的第一桶金
  4. 成年人的样子是什么样子_不只是看样子
  5. 网络爬虫--9.正则表达式
  6. linux没有interface文件,Linux下interface文件修改
  7. 2017⇆2019,用了这款减肥App,我胖了30斤...
  8. Hbase常用基础命令
  9. SpringCloud之Hystrix断路器以及dashboard 属性详解
  10. 手工焊锡通用工艺规程
  11. C#仿win10计算器
  12. K3Wise数据表整理
  13. 小程序之H5游戏砸金蛋
  14. 热敏电阻PTC和NTC的区别
  15. c语言模拟自动饮料机,C语言--小程序--简单模拟ATM机
  16. 【富集分析】GO KEGG
  17. serendipity 写给自己
  18. java double 出现e_JAVA中double类型运算结果异常的解决
  19. Velodyne 32E pcap包GPS时间戳解析
  20. MSELoss(均值损失)

热门文章

  1. Android 6.0动态获取录音权限
  2. BMP文件格式分析(zz)
  3. Bray-Curtis相异矩阵系数
  4. python的timeit_Python中Timeit和Time之间的差异
  5. 对c语言后续课程的展望,20155324王鸣宇对C语言课程回顾及对Java的展望
  6. angularjs radio 默认选中
  7. ubuntu企业微信打不开
  8. 有创意的撩妹句子,句句有创意,拿去撩妹准没错!
  9. 判断一个字符串是否是数字
  10. java读取每个字符_详解Java String字符串获取每一个字符及常用方法