网站安全性检验 对thinkphp通杀系统漏洞运用与修补提议

2020-10-16


网站安全性检验 对thinkphp通杀系统漏洞运用与修补提议


短视頻,自新闻媒体,达人种草1站服务

thinkphp在中国来讲,许多站长和服务平台都在应用这套开源系统的系统软件来建网站,为何会这么深受大伙儿的喜爱,第1开源系统,方便快捷,高效率,转化成静态数据化html,第2架构性的易于开发设计php构架,许多第3方的软件和第3方的开发设计企业较多,模版能够自定设计方案,在thinkphp的基本上能够开发设计许多大中型的虚似币服务平台,和会员服务平台,商城系统软件,thinkPHP的官方在系统软件升級层面做的较为健全,立即升级与修补1些BUG。

现阶段官方全新版本号是ThinkPHP5.0.20版本号,以前的ThinkPHP3.2,ThinkPHP3.1、ThinkPHP3.0都存在过网站系统漏洞,包含1些高危的远程控制编码实行系统漏洞,thinkphp sql引入系统漏洞,后台管理管理方法员XSS跨站系统漏洞,随意文档提交系统漏洞这些。现阶段大家SINE安全性于2018年9月5号,在平常的thinkphp网站安全性检验之中,发现某顾客应用的thinkphp系统软件存在着网站sql引入系统漏洞,伤害性较高,1刚开始认为顾客应用的是较低版本号:thinkphp 3.2.3,才会存在这类网站系统漏洞,可是在具体的安全性检验之中发现不仅是这个版本号,还包括了现阶段全新版本号5.0.20,有关该网站系统漏洞的详细信息与poc运用,大家1步1步来剖析。

网站安全性检验thinkphp系统漏洞造成基本原理

造成网站系统漏洞的文档存在于library文档夹下的think文档,里边包括的db文档夹的

driver.class.php编码中的第677行刚开始,在order解决剖析的情况下发现剖析主要参数里能够插进不法的

标识符,在key取值的情况下并沒有做严苛的安全性限定与过虑,致使进攻者可使用SQL引入句子进

行结构查寻数据信息库里的內容,包含能够查选数据信息库里的管理方法员账户登陆密码, 写入数据信息库这些的实际操作。

thinkphp 3.2.3系统漏洞编码以下:

/**

* order剖析

* @aess 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'])

* @aess 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最高版本号。

假如网站被进攻了,请尽快做好网站的安全性备份数据,搜索网站存在木马后门,对其编码里被伪造的编码开展修补,并做好网站安全性加固,对1些缓存文件文档夹开展安全性管理权限设定,假如对网站系统漏洞修补并不是太懂的话能够找技术专业的网站安全性企业好去处理,中国SINE安全性企业,绿盟安全性,正源星空全是较为技术专业的。假如网站应用的是独立服务器例如linux系统软件、windows系统软件,能够布署网站防火墙,来避免sql引入进攻。网站默认设置的管理方法员后台管理详细地址能够改动为较为繁琐的详细地址。




扫描二维码分享到微信

在线咨询
联系电话

400-888-8866