全国咨询热线:18720358503

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

类别:企业动态 发布时间:2021-01-08 浏览人次:

您的位置: > 新闻资讯 > 网站安全检测 对thinkphp通杀漏洞利用与修复建议 发表日期:   文章编辑:jw61    浏览次数:

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.

代码里的第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漏洞利用详情:

thinkphp漏洞修复建议:

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

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

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

标签:  

如没特殊注明,文章均为聚网网络原创,转载请注明来自news/2019/;   部分内容来源于网络,如果侵权请联系QQ立即删除。
下一篇:没有了

推荐阅读

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

您的部位: > 新闻报道新闻资讯 > 网站安全性检验 对thinkphp通杀系统漏洞运用与修补提议thinkphp在中国来讲,许多网站站长及其服务平台都会应用这套开源系统的系统软件来建网站,为...

2021-01-08
360全景夜景拍摄的五大要点

晚间拍攝360全景图相片,这针对拍摄新手来讲,应当是最不善于的一种拍攝情景吧。假如,在晚间拍攝出不来来好的相片。估算会出现一一部分朋友是感觉照相机不足“贴心”。实...

2021-01-08
微信小程序新环节_vue将毫秒数转化为正常日期格

vue将毫秒数转换为一切正常时间文件格式的案例 今日网编就为大伙儿共享一篇vue将毫秒数转换为一切正常时间文件格式的案例,具备非常好的参照使用价值,期待对大伙儿有一定...

2021-01-08
都说内容为王,可是仅仅有内容就够了吗?

內容并不是唯一的全能药,合理的內容对策应当是地区、服务平台、制造行业和机器设备的有机化学融合。针对发展不一样地区销售市场的知名品牌来讲,更应留意不在同地域和制造行...

2021-01-08
微信小程序源码免费_浅谈微信页面进口文件被缓

探讨手机微信网页页面通道文档被缓存文件处理计划方案 缓存文件针对前端开发网页页面来讲,是加快网页页面载入的神器之一,但也同时产生了许多难题,本文关键详细介绍了...

2021-01-08
网站建设的这些关系你需要懂

企业动态性制造行业新闻资讯建网站有关九度角度强烈推荐信息内容 企业网站建设的这种关联你必须懂 重要词:排行 数据信息 提升 网站制作 检索模块 美工设计编写 网络推广 企业网...

2021-01-08
X

400-8700-61718720358503
企业邮箱2639601583@qq.com
官方微信