<summary><strong>Leer AWS-hacking van nul tot held met</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* 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.
As jy belangstel in 'n **hackingsloopbaan** en die onhackbare wil hack - **ons is aan die werf!** (_vloeiende skriftelike en mondelinge Pools vereis_).
**ViewState** dien as die verstek meganisme in ASP.NET om bladsy- en beheerdata oor webbladsye te behou. Tydens die weergawe van 'n bladsy se HTML word die huidige toestand van die bladsy en waardes wat behou moet word tydens 'n terugstuur, geserializeer in base64-gekodeerde strings. Hierdie strings word dan in verborge ViewState-velde geplaas.
Die prentjie is 'n tabel wat verskillende konfigurasies vir ViewState in ASP.NET beskryf op grond van die .NET-raamwerkweergawe. Hier is 'n opsomming van die inhoud:
1. Vir **enige weergawe van .NET**, wanneer beide MAC en Versleuteling gedeaktiveer is, is 'n MachineKey nie nodig nie, en daar is dus geen toepaslike metode om dit te identifiseer nie.
2. Vir **weergawes onder 4.5**, as MAC geaktiveer is maar Versleuteling nie, is 'n MachineKey nodig. Die metode om die MachineKey te identifiseer, word verwys na as "Blacklist3r."
3. Vir **weergawes onder 4.5**, ongeag of MAC geaktiveer of gedeaktiveer is, as Versleuteling geaktiveer is, is 'n MachineKey nodig. Die identifisering van die MachineKey is 'n taak vir "Blacklist3r - Toekomstige Ontwikkeling."
4. Vir **weergawes 4.5 en hoër**, vereis alle kombinasies van MAC en Versleuteling (of beide is waar, of een is waar en die ander is vals) 'n MachineKey. Die MachineKey kan geïdentifiseer word met behulp van "Blacklist3r."
Jy kan probeer om te identifiseer of ViewState deur 'n aanvraag wat hierdie parameter bevat, vas te vang met BurpSuite, MAC beskerm word. As Mac nie gebruik word om die parameter te beskerm nie, kan jy dit uitbuit deur [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) te gebruik.
Ontwikkelaars kan **ViewState verwyder** sodat dit nie deel word van 'n HTTP-versoek nie (die gebruiker sal hierdie koekie nie ontvang nie).\
Mens kan aanneem dat as **ViewState nie teenwoordig is nie**, hul implementering **veilig** is teen enige potensiële kwesbaarhede wat met ViewState-deserialisering gepaard gaan.\
Dit is egter nie die geval nie. As ons die **ViewState-parameter** by die versoekliggaam voeg en ons geserialiseerde payload wat met ysoserial geskep is, stuur, sal ons steeds **kodering kan uitvoer** soos in **Geval 1** getoon.
Jy kan probeer om [**Blacklist3r(AspDotNetWrapper.exe)** ](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) gebruik om die gebruikte sleutel te vind.
[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets) is nog 'n instrument wat bekende machineKeys kan identifiseer. Dit is in Python geskryf, soos Blacklist3r, daar is geen afhanklikheid van Windows nie. Vir .NET viewstates is daar 'n "python blacklist3r" hulpprogram, wat die vinnigste manier is om dit te gebruik.
Om na kwesbare viewstates op skaal te soek, in samewerking met subdomeinopsporing, kan die `badsecrets` [**BBOT**](exploiting-\_\_viewstate-parameter.md) module gebruik word:
As jy gelukkig is en die sleutel gevind word, kan jy voortgaan met die aanval deur gebruik te maak van [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net)**:**
In gevalle waar die `_VIEWSTATEGENERATOR` parameter **nie** deur die bediener gestuur word nie, hoef jy nie die `--generator` parameter te **verskaf nie, maar hierdie**:
In hierdie geval is dit nie bekend of die parameter beskerm word met 'n MAC nie. Dan is die waarde waarskynlik versleutel en sal jy **die Machine Key nodig hê om jou payload te versleutel** om die kwesbaarheid uit te buit.
**In hierdie geval is die** [**Blacklist3r**](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) **module in ontwikkeling...**
Voor .NET 4.5 kan ASP.NET 'n **ongeënkripteerde** \_`__VIEWSTATE`\_parameter van die gebruikers **aanvaar**, selfs as **`ViewStateEncryptionMode`** op _**Always**_ ingestel is. ASP.NET **kontroleer slegs** die **teenwoordigheid** van die **`__VIEWSTATEENCRYPTED`** parameter in die versoek. **As hierdie parameter verwyder word en die ongeënkripteerde payload gestuur word, sal dit steeds verwerk word.**
Daarom, as die aanvallers 'n manier vind om die Machinekey te bekom deur 'n ander kwesbaarheid soos lêertraversal, kan [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net) bevel wat in **Geval 2** gebruik is, gebruik word om RCE uit te voer deur gebruik te maak van die ViewState deserialisering kwesbaarheid.
* Verwyder die `__VIEWSTATEENCRYPTED` parameter uit die versoek om die ViewState deserialisering kwesbaarheid uit te buit, anders sal dit 'n Viewstate MAC-valideringsfout teruggee en sal die uitbuiting misluk.
Jy kan probeer om [**Blacklist3r(AspDotNetWrapper.exe)** ](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) te gebruik om die gebruikte sleutel te vind:
Vir 'n meer gedetailleerde beskrywing van IISDirPath en TargetPagePath [verwys hierheen](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
Sodra 'n geldige Masjien sleutel geïdentifiseer is, **is die volgende stap om 'n geserializeerde payload te genereer deur gebruik te maak van** [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net)
As jy die waarde van `__VIEWSTATEGENERATOR` het, kan jy probeer om die `--generator` parameter met daardie waarde te **gebruik** en die parameters `--path` en `--apppath`**weg te laat**.
'n Suksesvolle uitbuiting van die ViewState deserialisering kwesbaarheid sal lei tot 'n out-of-band versoek na 'n aanvaller-beheerde bediener, wat die gebruikersnaam insluit. Hierdie soort uitbuiting word gedemonstreer in 'n bewys van konsep (PoC) wat gevind kan word deur 'n hulpbron getiteld "Exploiting ViewState Deserialization using Blacklist3r and YsoSerial.NET". Vir verdere besonderhede oor hoe die uitbuitingsproses werk en hoe om gereedskap soos Blacklist3r te gebruik om die MachineKey te identifiseer, kan jy die verskafte [PoC van Suksesvolle Uitbuiting](https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/#PoC) hersien.
Die **ViewStateUserKey** eienskap kan gebruik word om teen 'n **CSRF-aanval** te **verdedig**. As so 'n sleutel in die toepassing gedefinieer is en ons probeer om die **ViewState** payload te genereer met die besproke metodes tot dusver, sal die **payload nie deur die toepassing verwerk word** nie.\
Jy moet nog 'n parameter gebruik om die payload korrek te skep:
Vir al die toetsgevalle, as die ViewState YSoSerial.Net-payload **suksesvol** werk, reageer die bediener met "500 Internal server error" met die inhoud van die respons "Die staat-inligting is ongeldig vir hierdie bladsy en mag beskadig wees" en ons kry die OOB-versoek.
Kyk vir [verdere inligting hier]([**https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/**](https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/))
<summary><strong>Leer AWS-hacking van nul tot held met</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* 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-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-opslag.