网站安全检测 漏洞检测 对thinkphp通杀漏洞利用与修复建议

简介:

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

目前官方最新版本是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利用,我们一步一步来分析。

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

产生网站漏洞的文件存在于library文件夹下的think文件,里面包含的db文件夹的

driver.class.php代码中的第677行开始,在order处理分析的时候发现分析参数里可以插入非法的

字符,在key赋值的时候并没有做严格的安全限制与过滤,导致攻击者可以使用SQL注入语句进

行构造查询数据库里的内容,包括可以查选数据库里的管理员账号密码, 写入数据库等等的操作。

thinkphp 3.2.3漏洞代码如下:

/**

* 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]);

}

}

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

thinkphp漏洞利用详情:

fde3afdde35d4f44977ef98412d6cc1e.png

8bd353885e2441acbf8e60c0d6e85792.png

thinkphp漏洞修复建议:

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

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

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

相关文章
|
安全 算法 测试技术
网站安全测试之支付漏洞检测与修复
前几篇的网站安全检测的文章,介绍的都是跟验证码以及用户逻辑功能方面的安全测试与防攻击方法,今天给大家深度的来剖析一下关于网站里含有支付接口的安全漏洞。许多商城网站,以及微信支付网站,在线游戏平台,发卡商,棋牌等网站都含有支付功能,支付安全是整个网站中,安全占比较高的,支付安全出了问题,带来的可是无法估量的损失。
2283 0
|
SQL 安全 前端开发
网站漏洞检测 wordpress sql注入漏洞代码审计与修复
wordpress系统本身代码,很少出现sql注入漏洞,反倒是第三方的插件出现太多太多的漏洞,我们SINE安全发现,仅仅2019年9月份就出现8个插件漏洞,因为第三方开发的插件,技术都参差不齐,对安全方面也不是太懂导致写代码过程中没有对sql注入,以及xss跨站进行前端安全过滤,才导致发生sql注入漏洞。
394 0
网站漏洞检测 wordpress sql注入漏洞代码审计与修复
|
SQL 安全 Oracle
网站漏洞如何修复jeecms网站程序
jeecms 最近被爆出高危网站漏洞,可以导致网站被上传webshell木马文件,受影响的版本是jeecms V6.0版本到jeecmsV7.0版本。该网站系统采用的是JAVA语言开发,数据库使用的是oracle,mysql,sql数据库,服务器系统支持windows2008,windows2012,以及linux centos系统。
354 0
网站漏洞如何修复jeecms网站程序
|
安全 应用服务中间件 程序员
渗透测试网站存在的上传漏洞 该如何检测
在日常对客户网站进行渗透测试服务的时候,我们SINE安全经常遇到客户网站,app存在文件上传功能,程序员在设计开发代码的过程中都会对上传的文件类型,格式,后缀名做安全校验与过滤判断,SINE安全工程师在对文件上传漏洞进行测试的时候,往往发现的网站漏洞都是由于服务器的环境漏洞导致的,像IIS,apache,nginx环境,都存在着可以导致任意文件上传的漏洞。
131 0
渗透测试网站存在的上传漏洞 该如何检测
|
安全 前端开发 JavaScript
渗透测试 越权漏洞的检测与修复
渗透测试在网站,APP刚上线之前是一定要做的一项安全服务,提前检测网站,APP存在的漏洞以及安全隐患,避免在后期出现漏洞,给网站APP运营者带来重大经济损失,很多客户找到我们SINE安全公司做渗透测试服务的同时,我们积累了十多年的漏洞检测经验,对客户的网站各项功能以及APP进行全面的安全检测,下面我们就对渗透测试中的一些知识点跟大家科普一下:
565 0
渗透测试 越权漏洞的检测与修复
|
SQL 安全 测试技术
Thinkphp网站漏洞怎么修复解决
THINKPHP漏洞修复,官方于近日,对现有的thinkphp5.0到5.1所有版本进行了升级,以及补丁更新,这次更新主要是进行了一些漏洞修复,最严重的就是之前存在的SQL注入漏洞,以及远程代码执行查询系统的漏洞都进行了修复,官方本以为没有问题了,但是在实际的安全检测当中发现,还是存在问题,还是可以远程代码进行注入,插入非法字符,提交到服务器后端中去。
363 0
Thinkphp网站漏洞怎么修复解决
|
安全 前端开发 关系型数据库
网站漏洞修复之逻辑漏洞修补的方法
在网站安全的日常安全检测当中,我们SINE安全公司发现网站的逻辑漏洞占比也是很高的,前段时间某酒店网站被爆出存在高危的逻辑漏洞,该漏洞导致酒店的几亿客户的信息遭泄露,包括手机号,姓名,地址都被泄露,后续带来的损失很大,最近几年用户信息泄露的事件时有发生,给很多企业,酒店都上了一堂生动的安全课。关于网站逻辑漏洞的总结,今天跟大家详细讲解一下。
450 0
网站漏洞修复之逻辑漏洞修补的方法
|
安全 JavaScript PHP
如何对ecshop网站漏洞进行修复防止被入侵
ecshop目前最新版本为4.0,是国内开源的一套商城系统,很多外贸公司,以及电商平台都在使用,正因为使用的人数较多,很多攻击者都在挖掘该网站的漏洞,就在最近ecshop被爆出高危漏洞,该漏洞利用跨站伪造函数,来对网站数据库进行攻击。
338 0
如何对ecshop网站漏洞进行修复防止被入侵
|
安全 数据库 数据安全/隐私保护
网站安全之逻辑漏洞检测 修复方案
网站安全是整个网站运营中最重要的一部分,网站没有了安全,那用户的隐私如何保障,在网站中进行的任何交易,支付,用户的注册信息都就没有了安全保障,所以网站安全做好了,才能更好的去运营一个网站,我们SINE安全在对客户进行网站安全部署与检测的同时,发现网站的业务逻辑漏洞很多,尤其暴利破解漏洞。
303 0
网站安全之逻辑漏洞检测 修复方案
|
缓存 安全 NoSQL
网站被攻击 如何查找漏洞并进行修复
很多公司的网站被攻击,导致网站打开跳转到别的网站上去,网站快照也被篡改,收录一些非法的内容快照,有些网站数据库都被篡改,修改了会员资料,数据库被删除,等等攻击症状,我们SINE安全在解决客户网站被攻击的问题,发现都是由于网站存在漏洞导致的,攻击者利用网站的漏洞对网站进行攻击,上传webshell文件,进而对网站进行篡改。
127 0
网站被攻击 如何查找漏洞并进行修复

热门文章

最新文章