<summary><strong>Leer AWS-hacking vanaf 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 geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* 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.
**Bug bounty wenk**: **teken aan** vir **Intigriti**, 'n premium **bug bounty platform geskep deur hackers, vir hackers**! Sluit by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) vandag, en begin om belonings tot **$100,000** te verdien!
**ViewState** dien as die verstek meganisme in ASP.NET om bladsy- en beheerdata oor webbladsye te handhaaf. Tydens die weergawe van 'n bladsy se HTML word die huidige toestand van die bladsy en waardes wat tydens 'n terugroep bewaar moet word, geserializeer na base64-geënkripteerde strings. Hierdie strings word dan in verborge ViewState-velde geplaas.
Die beeld is 'n tabel wat verskillende konfigurasies vir ViewState in ASP.NET beskryf gebaseer op 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 vals) 'n MachineKey. Die MachineKey kan geïdentifiseer word deur "Blacklist3r."
Jy kan probeer om te identifiseer of ViewState deur MAC beskerm word deur 'n versoek wat hierdie parameter bevat vas te vang met BurpSuite. 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).\
'n Persoon mag aanneem dat as **ViewState nie teenwoordig is nie**, hul implementering **veilig** is teen enige potensiële kwesbaarhede wat mag voortspruit uit ViewState-deserialisering.\
Dit is egter nie die geval nie. As ons die **ViewState-parameter** by die versoekliggaam voeg en ons geserialiseerde lading wat met ysoserial geskep is, stuur, sal ons steeds **kodes uitvoer** kan bereik soos in **Geval 1** getoon.
Jy kan probeer om [**Blacklist3r(AspDotNetWrapper.exe)** ](https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper) te gebruik om die gebruikte sleutel te vind.
[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets) is nog 'n instrument wat bekende machineKeys kan identifiseer. Dit is geskryf in Python, soos Blacklist3r, is daar geen Windows-afhanklikheid nie. Vir .NET viewstates is daar 'n "python blacklist3r" nut, wat die vinnigste manier is om dit te gebruik.
Om te soek na kwesbare viewstates op skaal, in samehang met subdomeinversameling, kan die `badsecrets` [**BBOT**](exploiting-\_\_viewstate-parameter.md) module gebruik word:
Indien jy gelukkig is en die sleutel gevind word, kan jy voortgaan met die aanval deur [**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 voorsien nie, maar hierdie**:
In hierdie geval is dit nie bekend of die parameter beskerm word met MAC nie. Dan is die waarde waarskynlik versleutel en jy sal **die Machine Key nodig hê om jou lading te versleutel** om die kwesbaarheid te benut.
**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 **ongeslote** \_`__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 onversleutelde lading gestuur word, sal dit steeds verwerk word.**
Daarom, as aanvallers 'n manier vind om die Machinekey te kry via '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 ViewState deserialisasie kwesbaarheid.
* Verwyder die `__VIEWSTATEENCRYPTED` parameter uit die versoek om die ViewState deserialisasie kwesbaarheid te benut, anders sal dit 'n Viewstate MAC-valideringsfout teruggee en sal die benutting 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 lading te genereer met behulp van** [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net)
Indien jy die waarde van `__VIEWSTATEGENERATOR` het, kan jy probeer om die `--generator` parameter te **gebruik** met daardie waarde en die parameters `--path` en `--apppath`**weg te laat**.
'n Suksesvolle uitbuiting van die ViewState deserialisasie 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) nagaan.
Die **ViewStateUserKey** eienskap kan gebruik word om teen 'n **CSRF-aanval** te **verdedig**. As so 'n sleutel in die aansoek gedefinieer is en ons probeer om die **ViewState** lading te genereer met die besproke metodes tot dusver, sal die **lading nie deur die aansoek verwerk word nie**.\
Jy moet nog 'n parameter gebruik om die lading korrek te skep:
Vir al die toetsgevalle, as die ViewState YSoSerial.Net lading **suksesvol** werk, reageer die bediener met " **500 Interne bedienerfout**" met 'n responsinhoud van " **Die staat inligting is ongeldig vir hierdie bladsy en kan beskadig wees**" en ons kry die OOB versoek.
Kyk vir [verdere inligting hier](https://github.com/carlospolop/hacktricks/blob/master/pentesting-web/deserialization/\[\*\*https:/www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/\*\*]\(https:/www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/\)/README.md)
**Bug bounty wenk**: **teken aan** vir **Intigriti**, 'n premium **bug bounty platform geskep deur hackers, vir hackers**! Sluit by ons aan by [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) vandag, en begin om belonings te verdien tot **$100,000**!
<summary><strong>Leer AWS hak vanaf 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 **laai HackTricks af 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.