ThinkCMF X 2.2.3 SQL注入漏洞

这篇博客关注的是ThinkCMF X2.2.3版本的一个安全问题,具体涉及ArticleController.class.php文件的edit_post方法中的SQL注入漏洞(CVE-2018-19898)。由于ThinkPHP 3.x版本的bind注入风险,此漏洞成为了一个典型案例。复现条件包括注册普通会员,然后在文章编辑功能中触发漏洞。问题在于I('post.post')参数未经充分过滤,允许恶意输入,最终导致数据库更新操作时的安全风险。ThinkPHP官方通过增强过滤正则来修复这个问题。
摘要由CSDN通过智能技术生成
该漏洞在2.3版本又以下,漏洞点与ArticleController.class.php edit_post方法SQL注入(CVE-2018-19898) 。

ThinkCMF X2.2.2是基于ThinkPHP 3.2.3开发的,ThinkPHP 3.x版本之前被爆出存在bind注入,这个漏洞就是ThinkPHP3.x注入的典型案例。漏洞位于前台文章编辑处,不过要复现这个漏洞点首先是要注册一个普通的会员。

如果目标网站可以允许你注册那么就可以日翻它,注册地址:localhost/ThinkCMFX/index.php?g=user&m=login&a=index&redirect=

在ArticleController.class.php类文件中,问题出在edit_post 函数中,第173行声明了该函数,之后的意思是输入的参数通过I(“post.post”)传递到$article。

可以看到,数据是从外部进入的,并且id参数是可控的,为save操作。

而$article=I(“post.post”),该函数定在跟进到/simplewind/Core/Common/functions.php文件,而I方法定义在428行,会调用think_filter方法对参数进行过滤。

由于正则字符中没有匹配bind,所以导致了后面的注入漏洞,ThinkPHP官方的修复措施就是在此处匹配时加上了bind。接下来进入典型的数据库更新操作了,$articles为多维数组包含payload。

最终Payload为:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值