taoCMS SQL注入漏洞(CVE-2022-25505)
*一、漏洞概述 **
*1.1 漏洞简介*
·漏洞名称:taoCMS SQL注入漏洞
·漏洞编号:CVE-2022-25505
·漏洞类型:SQL注入漏洞
·漏洞威胁等级:超危
·影响范围:taocms v3.0.2
·利用条件:php版本小于5.6
*1.2 组件描述*
Taocms是中国的一个微型 Cms(内容管理系统)。
*1.3 漏洞描述*
Taocms v3.0.2 存在安全漏洞,攻击者可通过includeModelCategory.php 中的id 参数进行攻击。
*二、漏洞复现*
*2.1 应用协议*
http
*2.2 环境搭建*
1.下载源码到本地 https://github.com/taogogo/taocms
2.按照提示信息配置网站信息
3.登录后台账号(默认密码“tao”)
*2.3 漏洞复现 **
1.进入后台(/taocms/admin/admin.php?action=frame&ctrl=iframes)
2.点击“管理栏目”,随后点击“编辑”
3.在文本框内随意输入
4.抓包,在参数id后加入sql payload
这里使用盲注:
and if(ascii(substr(database(),1,1))=116,sleep(2),0)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L918kK7L-1692174402573)(image-20230724152055024.png)]
使用sleep(1),由于总共执行了三个 SQL 语句,所以延迟了3s,下面代码分析会解释到
*三、漏洞分析*
*3.1 技术背景*
\
*3.2 代码分析*
漏洞文件地址:\include\Model\Category.php
可以看出,更新函数不过滤id。使用 columnsdata 函数获取 id 后,将其引入 updatelist 函数以更新数据。
然后将 id 带入 getlist 函数以进行选择查询
最后,将 id 引入 updatelist 函数进行更新,可以看出,总共执行了三个 SQL 语句,并且没有一个 id 被过滤
*3.3 流量分析 **
POST请求uri:admin/admin.php,参数id后跟随恶意的sql注入语句,其他参数不存在注入条件
*3.4 绕过方式*
\
*四、漏洞检测*
*4.1 组件版本自检*
以下版本受该漏洞影响:taocms v3.0.2
目前最高版本:taocms v3.0.2
*4.2 研判建议 **
观察参数id后是否跟随恶意sql注入语句,看请求体是否爆出相对应的敏感信息
*五、防范建议*
*5.1 官方修复建议*
无修复
*5.2 临时修复建议*
过滤规则,黑名单等
六、*参考链接*
源码下载url:https://github.com/taogogo/taocms