<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwa** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
Machapisho haya yanajitolea kuelewa jinsi **gadget ya ObjectDataProvider inavyotumiwa** kupata RCE na **jinsi** maktaba za **Serialization kama Json.Net na xmlSerializer zinavyoweza kutumiwa vibaya** na gadget hiyo.
Ndio, ni maelezo ya ajabu, kwa hivyo tutaona kipi kinafanya darasa hili kiwe cha kuvutia: Darasa hili linaruhusu **kufunga kitu cha kupendelea**, kutumia _**MethodParameters**_ kuweka **parameta za kupendelea,** na kisha **tumia MethodName kuita kazi ya kupendelea** ya kitu cha kupendelea kilichotangazwa kwa kutumia parameta za kupendelea.\
Kwa hivyo, **kitu cha kupendelea** kitafanya **kazi** na **kazi** na **parameta wakati wa deserialization.**
Jina la **System.Windows.Data**, lililopatikana ndani ya **PresentationFramework.dll** kwenye `C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF`, ndio mahali ambapo ObjectDataProvider inafafanuliwa na kutekelezwa.
Kwa kutumia [**dnSpy**](https://github.com/0xd4d/dnSpy) unaweza **kupekua msimbo** wa darasa tunalovutiwa nalo. Katika picha hapa chini tunauona msimbo wa **PresentationFramework.dll --> System.Windows.Data --> ObjectDataProvider --> Jina la kazi**
Tambua kuwa huu si msimbo kamili wa kazi ya `QueryWorker` lakini unaonyesha sehemu ya kuvutia: Msimbo **unaita `this.InvokeMethodOnInstance(out ex);`** hii ndio mstari ambapo **kazi iliyowekwa inaitwa**.
Tafadhali kumbuka unahitaji kuongeza kama kumbukumbu _C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\PresentationFramework.dll_ ili kupakia `System.Windows.Data`
Kutumia shambulio lililopita kutakuwa na hali ambapo **kitu** kitakuwa **kimefanyiwa deserialization kama** kipengele cha _**ObjectDataProvider**_ (kwa mfano katika udhaifu wa DotNetNuke, kutumia XmlSerializer, kitu kilifanyiwa deserialization kwa kutumia `GetType`). Kisha, **hakutakuwa na ufahamu wa aina ya kitu kilichofungwa** katika kipengele cha _ObjectDataProvider_ (kama vile `Process`). Unaweza kupata habari zaidi [kuhusu udhaifu wa DotNetNuke hapa](https://translate.google.com/translate?hl=en\&sl=auto\&tl=en\&u=https%3A%2F%2Fpaper.seebug.org%2F365%2F\&sandbox=1).
Darasa hili linaruhusu **kutaja aina za vitu** ambavyo vimefungwa katika kipengele kilichopewa. Kwa hivyo, darasa hili linaweza kutumika kufunga chanzo cha kitu (_ObjectDataProvider_) katika aina mpya ya kitu na kutoa mali tunazohitaji (_ObjectDataProvider.MethodName_ na _ObjectDataProvider.MethodParameters_).\
Hii ni muhimu sana kwa hali kama ile iliyowasilishwa hapo awali, kwa sababu tutaweza **kufunga _ObjectDataProvider_** ndani ya kipengele cha _**ExpandedWrapper**_ na **wakati wa deserialization** darasa hili litasababisha kitu cha _**OjectDataProvider**_ ambacho kitatekeleza **kazi** iliyotajwa katika _**MethodName**_.
Kwenye [ukurasa rasmi](https://www.newtonsoft.com/json) inaonyeshwa kuwa maktaba hii inaruhusu **Kutunga na kusahihisha kitu chochote cha .NET na serializer yenye nguvu ya JSON ya Json.NET**. Kwa hivyo, ikiwa tunaweza **kusahihisha kifaa cha ObjectDataProvider**, tunaweza kusababisha **RCE** kwa kusahihisha kitu.
<summary><strong>Jifunze AWS hacking kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Je, unafanya kazi katika **kampuni ya usalama wa mtandao**? Unataka kuona **kampuni yako ikitangazwa kwenye HackTricks**? au unataka kupata upatikanaji wa **toleo jipya zaidi la PEASS au kupakua HackTricks kwa PDF**? Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* **Jiunge na** [**💬**](https://emojipedia.org/speech-balloon/) [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **fuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kuhack kwa kuwasilisha PRs kwenye** [**repo ya hacktricks**](https://github.com/carlospolop/hacktricks) **na** [**repo ya hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).