<summary><strong>Jifunze kuhusu kudukua AWS kutoka mwanzo hadi mtaalamu na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalamu 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 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
* Pata [**swag rasmi wa 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 **nifuata** kwenye **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**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 Ufananuzi **Json.Net na xmlSerializer zinavyoweza kutumiwa vibaya** na gadget hiyo.
Kutoka kwenye nyaraka: _Darasa la ObjectDataProvider hufunga na kuunda kitu unachoweza kutumia kama chanzo cha kufunga_.\
Ndio, ni maelezo ya ajabu, kwa hivyo tutaona kipi kinafanya darasa hili kiwe cha kuvutia: Darasa hili linaruhusu **kufunga kitu cha kupenda**, kutumia _**MethodParameters**_ kuweka **parameta za kupenda,** na kisha **tumia MethodName kuita kazi ya kupenda** ya kitu cha kupenda kilichotangazwa kwa kutumia parameta za kupenda.\
Kwa hivyo, **kitu cha kupenda** kitatekeleza **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`, ndipo ObjectDataProvider inapofafanuliwa na kutekelezwa.
Kwa kutumia [**dnSpy**](https://github.com/0xd4d/dnSpy) unaweza **kuchunguza nambari** ya darasa tunalovutiwa nalo. Katika picha hapa chini tunauona msimbo wa **PresentationFramework.dll --> System.Windows.Data --> ObjectDataProvider --> Jina la kazi**
Tafadhali elewa 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 **kimefanywa upya kama** kipengele cha _**ObjectDataProvider**_ (kwa mfano katika udhaifu wa DotNetNuke, kutumia XmlSerializer, kitu kilifanywa upya kwa kutumia `GetType`). Kisha, **hakutakuwa na ufahamu wa aina ya kitu kilichofungwa** katika kipengele cha _ObjectDataProvider_ (kama vile `Process`). Unaweza kupata zaidi [habari 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 vilivyofungwa** 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 kufanywa upya** 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 **Kutengeneza na kusomea data ya aina yoyote ya .NET na Json.NET's powerful JSON serializer**. Kwa hivyo, ikiwa tunaweza **kusomea data ya ObjectDataProvider gadget**, tunaweza kusababisha **RCE** kwa kusomea data ya 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**? Je, ungependa kuona **kampuni yako ikionekana kwenye HackTricks**? au ungependa 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
* 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).