词条信息

admin
admin
超级管理员
词条创建者 发短消息   

相关词条

热门词条

更多>>
2018 年最常见的 Python 面试题
【导读】Python 新手在谋求一份 Python 编程工[详细]
学习编程语言常用的10个工具
每个行业都有自己的工具,软件开发也没有什么不同。一个优秀的程序[详细]
Python软件的下载、安装和使用问题汇总
这是个Python开发环境相关问题的汇总,希望能让所有学习[详细]
人民日报三问区块链
近段时间,有关比特币的新闻非常吸睛,区块链也跟着火了一把。资本[详细]
2018年IT行业最赚钱的5个职位
前言  前几天看到一则新闻,说是某著名科技公司的程序员在相亲节[详细]
解决网 >>所属分类 >> 网站建设    网站安全   

对thinkphp通杀漏洞利用与修复建议

标签: thinkphp 漏洞

顶[0] 发表评论(0) 编辑词条

  thinkphp在国内来说,很多站长以及平台都在使用这套开源的系统来建站,为什么会这么深受大家的喜欢,第一开源,便捷,高效,生成静态化html,第二框架性的易于开发php架构,很多第三方的插件以及第三方的开发公司较多,模板可以自定义设计,在thinkphp的基础上可以开发很多大型的虚拟币平台,以及会员平台,商城系统,thinkPHP的官方在系统升级方面做的比较完善,及时更新与修复一些BUG。 www.solves.com.cn 电脑百科


www.solves.com.cn 电脑百科

  目前官方最新版本是ThinkPHP5.0.20版本,之前的ThinkPHP3.2,ThinkPHP3.1、ThinkPHP3.0都存在过网站漏洞,包括一些高危的远程代码执行漏洞,thinkphp sql注入漏洞,后台管理员XSS跨站漏洞,任意文件上传漏洞等等。目前我们SINE安全于2018年9月5号,在日常的thinkphp网站安全检测当中,发现某客户使用的thinkphp系统存在着网站sql注入漏洞,危害性较高,一开始以为客户使用的是较低版本:thinkphp 3.2.3,才会存在这种网站漏洞,但是在实际的安全检测当中发现不仅仅是这个版本,还包含了目前最新版本5.0.20,关于该网站漏洞的详情与poc利用,我们一步一步来分析。

www.solves.com.cn 电脑百科


www.solves.com.cn 电脑百科

  网站安全检测thinkphp漏洞产生原理

www.solves.com.cn 电脑百科


www.solves.com.cn 电脑百科

  产生网站漏洞的文件存在于library文件夹下的think文件,里面包含的db文件夹的driver.class.php代码中的第677行开始,在order处理分析的时候发现分析参数里可以插入非法的字符,在key赋值的时候并没有做严格的安全限制与过滤,导致攻击者可以使用SQL注入语句进行构造查询数据库里的内容,包括可以查选数据库里的管理员账号密码, 写入数据库等等的操作。 www.solves.com.cn 电脑百科

  thinkphp 3.2.3漏洞代码如下:

www.solves.com.cn 电脑百科

  /**

  * order分析

  * @access protected

  * @param mixed $order

  * @return string

  */

  protected function parseOrder($order) {

  if(is_array($order)) {

  $array = array();

  foreach ($order as $key=>$val){

  if(is_numeric($key)) {

  $array[] = $this->parseKey($val);

  }else{

  $array[] = $this->parseKey($key).' '.$val;

  }

  }

  $order = implode(',',$array);

  }

  return !empty($order)? ' ORDER BY '.$order:'';

  }

  ThinkPHP 5.1.22漏洞代码存在于library文件夹下的think文件里的db/query.php

  代码里的第1514行,代码如下:

  /**

  * 指定排序 order('id','desc') 或者 order

  (['id'=>'desc','create_time'=>'desc'])

  * @access public

  * @param string|array $field 排序字段

  * @param string $order 排序

  * @return $this

  */

  public function order($field, $order = null)

  {

  if (empty($field)) {

  return $this;

  } elseif ($field instanceof Expression) {

  $this->options['order'][] = $field;

  return $this;

  }

  if (is_string($field)) {

  if (!empty($this->options['via'])) {

  $field = $this->options['via'] . '.' . $field;

  }

  if (strpos($field, ',')) {

  $field = array_map('trim', explode(',', $field));

  } else {

  $field = empty($order) ? $field : [$field => $order];

  }

  } elseif (!empty($this->options['via'])) {

  foreach ($field as $key => $val) {

  if (is_numeric($key)) {

  $field[$key] = $this->options['via'] . '.' . $val;

  } else {

  $field[$this->options['via'] . '.' . $key] = $val;

  unset($field[$key]);

  }

  } 
www.solves.com.cn 电脑百科

  从以上thinkphp 3.2.3 、thinkphp 5.0的代码里可以分析出来,当order在分析关联函数的时候会赋值于key值中,可以掺入sql注入语句执行攻击网站,并可以拼接方式绕过sql安全过滤,导致可以执行sql语句,查询数据库,操作数据库。 www.solves.com.cn 电脑百科

  thinkphp漏洞利用详情: www.solves.com.cn 电脑百科

www.solves.com.cn 电脑百科

www.solves.com.cn 电脑百科

  thinkphp漏洞修复建议:

www.solves.com.cn 电脑百科

  如果是低版本的thinkphp 3.*的系统,请尽快升级到thinkphp最高版本。

www.solves.com.cn 电脑百科

  如果是高版本的thinkphp 5.*的系统,请尽快升级到thinkphp最高版本。

www.solves.com.cn 电脑百科

  如果网站被攻击了,请尽快做好网站的安全备份,查找网站存在木马后门,对其代码里被篡改的代码进行修复,并做好网站安全加固,对一些缓存文件夹进行安全权限设置,如果对网站漏洞修复不是太懂的话可以找专业的网站安全公司去处理,国内SINE安全公司,绿盟安全,启明星辰都是比较专业的。如果网站使用的是单独服务器比如linux系统、windows系统,可以部署网站防火墙,来防止sql注入攻击。网站默认的管理员后台地址可以修改为比较繁琐的地址。 www.solves.com.cn 电脑百科

 

 

本文地址:解决网 http://www.solves.com.cn/doc-view-5325.html

TAGS:SOLVES , 电脑技术 , 电脑知识 , 网站建设, 电脑技术, 网络营销 , 网站托管 , 硬件技术 , 网络技术 , 软件技术, 维修网点

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇什么样的网站百度排名好?
下一篇WordPress4.9漏洞与修复

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的电脑技术问题词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>