<summary><strong>Jifunze kuhusu kudukua AWS 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>
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** 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 kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
Ikiwa una nia ya **kazi ya kudukua** na kudukua yasiyodukuliwa - **tunakupa kazi!** (_inahitajika uwezo wa kuandika na kuzungumza Kipolishi kwa ufasaha_).
3. Jaribu kuongeza **herufi maalum mwishoni.** Unaweza kutumia Burp kufanya **bruteforce** kwa herufi zote za **ascii** na **Unicode**. (_Tambua kwamba unaweza pia kujaribu kutumia **vipimo vilivyotajwa awali**_)
4. Jaribu kupita kinga **kwa kudanganya kipimo cha ugunduzi** wa upande wa seva na mbinu kama **kuzidisha****kipimo** au **kuongeza takataka** (herufi za **null**) kati ya vipimo. _Unaweza pia kutumia **vipimo vilivyotangulia** kuandaa mzigo bora._
6. Jaribu kuweka **kipimo cha utekelezaji kabla ya kipimo halali** na omba ili seva iwe na hitilafu. (inayoweza kutumika kudukua hitilafu za Apache ambapo chochote chenye kipimo cha _**.php**_**, lakini** sio lazima kumalizika kwa .php\*\* itatekeleza kanuni):
7. Kutumia **Mto wa Data Mbadala wa NTFS (ADS)** katika **Windows**. Katika kesi hii, herufi ya mkato “:” itawekwa baada ya kipimo kilichozuiliwa na kabla ya kimoja kilichoruhusiwa. Kama matokeo, **faili tupu yenye kipimo kilichozuiliwa** itaundwa kwenye seva (k.m. “faili.asax:.jpg”). Faili hii inaweza kuhaririwa baadaye kwa kutumia mbinu zingine kama kutumia jina lake fupi. Mtindo wa “**::$data**” pia unaweza kutumika kuunda faili zisizo tupu. Kwa hivyo, kuongeza herufi ya kipimo baada ya mtindo huu kunaweza pia kuwa na manufaa kwa kupita vizuizi zaidi (.k.m. “faili.asp::$data.”)
8. Jaribu kuvunja mipaka ya jina la faili. Kipimo halali kinakatwa. Na PHP yenye nia mbaya inabaki. AAA<--SNIP-->AAA.php
* Pita kwa **maelezo ya Aina ya Yaliyomo** kwa kuweka **thamani** ya **kichwa cha Aina ya Yaliyomo** kuwa: _picha/png_, _maandishi/rahisi, maombi/octet-stream_
1. Orodha ya maneno ya Aina ya Yaliyomo: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt)
* Pita kwa ukaguzi wa **nambari ya ajabu** kwa kuongeza mwanzoni mwa faili **bayti za picha halisi** (kuchanganya amri ya _faili_). Au weka kabla ya **metadata**:\
* Ikiwa **ufupishaji unawekwa kwenye picha yako**, kwa mfano kutumia maktaba za PHP za kawaida kama [PHP-GD](https://www.php.net/manual/fr/book.image.php), mbinu za awali hazitakuwa na manufaa. Hata hivyo, unaweza kutumia **kitengo cha PLTE** [**mbinu iliyoelezwa hapa**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kuingiza maandishi ambayo yata **kupita kwa ufupishaji**.
* Ukurasa wa wavuti unaweza pia kuwa **kurekebisha****picha**, kwa kutumia kwa mfano PHP-GD functions `imagecopyresized` au `imagecopyresampled`. Hata hivyo, unaweza kutumia **kitengo cha IDAT** [**mtego uliofafanuliwa hapa**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kuingiza maandishi ambayo yata **kupita kwa ufupishaji**.
* Mbinu nyingine ya kufanya mzigo ambao **utapita kwa kurekebisha picha**, kutumia kazi ya PHP-GD `thumbnailImage`. Hata hivyo, unaweza kutumia **kitengo cha tEXt** [**mtego uliofafanuliwa hapa**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kuingiza maandishi ambayo yata **kupita kwa ufupishaji**.
3. Pakia faili yenye **“.”, “..”, au “…” kama jina lake**. Kwa mfano, katika Apache kwenye **Windows**, ikiwa programu inahifadhi faili zilizopakiwa kwenye saraka ya “/www/uploads/”, jina la faili “.” litasababisha faili iitwayo “uploads” katika saraka ya “/www/”.
* Jaribu pia **kupakia faili inayoweza kutekelezwa** (.exe) au **.html** (isiyo ya shaka) ambayo **itaendesha kificho** kwa bahati mbaya ikifunguliwa na muathiriwa.
Ikiwa unajaribu kupakia faili kwenye **seva ya PHP**, [angalia **mtego wa .htaccess** kutekeleza kificho](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess).\
Ikiwa unajaribu kupakia faili kwenye seva ya **ASP**, [angalia **mtego wa .config** kutekeleza kificho](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files).
Faili za `.phar` ni kama `.jar` kwa java, lakini kwa php, na zinaweza **kutumika kama faili ya php** (kuitekeleza na php, au kuizingatia ndani ya hati...)
Upanuzi wa `.inc` mara nyingi hutumiwa kwa faili za php ambazo hutumiwa tu **kuagiza faili**, hivyo, kwa wakati fulani, mtu anaweza kuruhusu **upanuzi huu kutekelezwa**.
Ikiwa unaweza kupakia faili ya XML kwenye seva ya Jetty unaweza kupata [RCE kwa sababu **faili mpya za \*.xml na \*.war zinashughulikiwa moja kwa moja**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** Kwa hivyo, kama ilivyotajwa kwenye picha ifuatayo, pakia faili ya XML kwa `$JETTY_BASE/webapps/` na tumaini kupata shell!
Kwa uchunguzi wa kina wa udhaifu huu angalia utafiti wa awali: [Udanganyifu wa uWSGI RCE](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html).
Udhaifu wa Utekelezaji wa Amri kwa Mbali (RCE) unaweza kutumika kwenye seva za uWSGI ikiwa mtu ana uwezo wa kurekebisha faili ya usanidi ya `.ini`. Faili za usanidi wa uWSGI hutumia sintaksia maalum kuingiza "vibambo" vya kichawi, nafasi, na waendeshaji. Hasa, waendeshaji wa '@', hutumiwa kama `@(jina la faili)`, imeundwa kuingiza maudhui ya faili. Kati ya mifumo mbalimbali inayoungwa mkono katika uWSGI, mpango wa "exec" ni hasa wenye nguvu, kuruhusu kusoma data kutoka kwa pato la kawaida la mchakato. Kipengele hiki kinaweza kutumiwa kwa madhumuni mabaya kama Utekelezaji wa Amri kwa Mbali au Uandishi/Soma wa Faili wa Kiholela wakati faili ya usanidi ya `.ini` inashughulikiwa.
Utekelezaji wa mzigo unatokea wakati wa kuchambua faili ya usanidi. Ili usanidi uweze kuanzishwa na kuchambuliwa, mchakato wa uWSGI lazima uanzishwe upya (labda baada ya kushindwa au kutokana na shambulio la Kukataa Huduma) au faili lazima iwekwe kwa ajili ya kujipakia tena. Kipengele cha kujipakia tena, ikiwa kimeanzishwa, kinajipakia upya faili kwa vipindi vilivyowekwa baada ya kugundua mabadiliko.
Ni muhimu kuelewa asili ya kulegea ya uchambuzi wa faili ya usanidi wa uWSGI. Hasa, mzigo uliojadiliwa unaweza kuingizwa katika faili ya binary (kama picha au PDF), ikiongeza wigo wa unyanyasaji wa uwezekano.
Katika baadhi ya matukio unaweza kugundua kuwa server inatumia **`wget`** kudownload faili na unaweza **kuashiria****URL**. Katika visa hivi, nambari inaweza kuwa inachunguza kwamba kipanuzi cha faili zilizopakuliwa kipo ndani ya orodha nyeupe ili kuhakikisha kuwa faili zinazoruhusiwa tu ndizo zitakazopakuliwa. Hata hivyo, **uchunguzi huu unaweza kudukuliwa.**\
Urefu **maksimumu** wa **jina la faili** katika **linux** ni **255**, hata hivyo, **wget** hukata majina ya faili hadi wahusika **236**. Unaweza **kudownload faili iliyoitwa "A"\*232+".php"+".gif"**, jina hili la faili litapita **uchunguzi** (kama katika mfano huu **".gif"** ni kipanuzi **halali**) lakini `wget` ita **badilisha** jina la faili kuwa **"A"\*232+".php"**.
New name is AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.
Saving to: ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php’
Tafadhali elewa kwamba **chaguo lingine** unaloweza kufikiria kwa kudanganya ukaguzi huu ni kufanya **seva ya HTTP ielekeze kwa faili tofauti**, hivyo URL ya awali itadanganya ukaguzi kisha wget itadownload faili iliyeelekezwa na jina jipya. Hii **haitafanya kazi****isipokuwa** wget inatumika na **parameter**`--trust-server-names` kwa sababu **wget itadownload ukurasa ulioelekezwa kwa jina la faili iliyotajwa kwenye URL ya awali**.
* [Upload Bypass](https://github.com/sAjibuu/Upload\_Bypass) ni chombo imara kilichoundwa kusaidia Pentesters na Bug Hunters katika kujaribu mifumo ya kupakia faili. Inatumia mbinu mbalimbali za tuzo za mdudu kusahilisha mchakato wa kutambua na kutumia udhaifu, kuhakikisha tathmini kamili ya maombi ya wavuti.
* Ikiwa unaweza **kuashiria seva ya wavuti kuchukua picha kutoka kwa URL** unaweza kujaribu kutumia [SSRF](../ssrf-server-side-request-forgery/). Ikiwa **picha** hii itakuwa **imehifadhiwa** kwenye tovuti fulani ya **umma**, unaweza pia kuashiria URL kutoka [https://iplogger.org/invisible/](https://iplogger.org/invisible/) na **kuiba habari ya kila mtembeleaji**.
* [**XXE na CORS** kudanganya na kupakia PDF-Adobe](pdf-upload-xxe-and-cors-bypass.md)
* PDF zilizoundwa kwa ustadi kwa XSS: Ukurasa ufuatao unaonyesha jinsi ya **kuingiza data ya PDF ili kupata utekelezaji wa JS**](../xss-cross-site-scripting/pdf-injection.md). Ikiwa unaweza kupakia PDF unaweza kuandaa PDF kadhaa ambazo zitatekeleza JS arbitrali kufuata maelekezo yaliyotolewa.
* Pakia yaliyomo ya \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) ili kuchunguza ikiwa seva ina **antivirus** yoyote
Uumbaji usiotarajiwa wa faili katika saraka wakati wa kufungua ni suala kubwa. Licha ya dhana za awali kwamba usanidi huu unaweza kulinda dhidi ya utekelezaji wa amri kwenye OS kupitia kupakia faili zenye nia mbaya, msaada wa ujazo wa hiraki na uwezo wa kuvuka saraka wa muundo wa faili za ZIP unaweza kutumiwa vibaya. Hii inaruhusu wachomaji kukiuka vizuizi na kutoroka kutoka kwa saraka salama za kupakia kwa kubadilisha utendaji wa kufungua wa programu iliyolengwa.
Shambulio lililoandaliwa kiotomatiki la kutengeneza faili kama hizo linapatikana kwenye [**evilarc kwenye GitHub**](https://github.com/ptoomey3/evilarc). Zana hiyo inaweza kutumika kama inavyoonyeshwa:
Zaidi ya hayo, **mzaha wa symlink na evilarc** ni chaguo lingine. Ikiwa lengo ni kulenga faili kama vile `/flag.txt`, symlink kwa faili hiyo inapaswa kuundwa kwenye mfumo wako. Hii inahakikisha kwamba evilarc haina makosa wakati wa operesheni yake.
Kwa maelezo zaidi **angalia chapisho la asili katika**: [https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/](https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/)
3.**Ubadilishaji na Mhariri wa Hex au vi**: Majina ya faili ndani ya zip hubadilishwa kutumia vi au mhariri wa hex, kubadilisha "xxA" kuwa "../" kuvuka saraka.
Pakia yaliyomo haya na kifaa cha picha ili kutumia udhaifu **(ImageMagick, 7.0.1-1)** (kutoka kwa [exploit](https://www.exploit-db.com/exploits/39767))
Kuingiza PHP shell katika kipande cha IDAT cha faili ya PNG inaweza kufanikiwa kuepuka baadhi ya operesheni za usindikaji wa picha. Vipengele `imagecopyresized` na `imagecopyresampled` kutoka PHP-GD ni muhimu katika muktadha huu, kwani mara nyingi hutumika kwa kurekebisha na kurejesha upya picha. Uwezo wa PHP shell iliyomo kubaki bila kuharibiwa na operesheni hizi ni faida kubwa kwa matumizi fulani.
Uchunguzi wa kina wa mbinu hii, ikiwa ni pamoja na mbinu yake na matumizi yanayowezekana, umeelezwa katika makala ifuatayo: ["Encoding Web Shells in PNG IDAT chunks"](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/). Rasilimali hii inatoa uelewa kamili wa mchakato na matokeo yake.
Taarifa zaidi katika: [https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)
Faili za Polyglot hufanya kama chombo cha kipekee katika usalama wa mtandao, zikifanya kama kama kameleoni ambazo zinaweza kuwepo kihalali katika muundo wa faili zaidi ya moja kwa wakati mmoja. Mfano wa kuvutia ni [GIFAR](https://en.wikipedia.org/wiki/Gifar), ambayo ni mchanganyiko wa GIF na kumbukumbu ya RAR. Faili kama hizi haziko tu katika mchanganyiko huu; mchanganyiko kama GIF na JS au PPT na JS pia ni wa kufikirika.
Umuhimu wa msingi wa faili za Polyglot uko katika uwezo wao wa kuzunguka hatua za usalama ambazo huchuja faili kulingana na aina. Mazoea ya kawaida katika programu mbalimbali ni kuruhusu aina fulani tu za faili kwa kupakia - kama JPEG, GIF, au DOC - ili kupunguza hatari inayosababishwa na muundo wa faili zenye madhara (k.m., JS, PHP, au faili za Phar). Hata hivyo, Polyglot, kwa kufuata vigezo vya muundo wa aina mbalimbali za faili, inaweza kwa siri kuzidi vizuizi hivi.
Licha ya uwezo wao wa kubadilika, faili za Polyglot hukutana na vikwazo. Kwa mfano, wakati Polyglot inaweza kuwa na muundo wa faili wa PHAR (PHp ARchive) na JPEG kwa wakati mmoja, mafanikio ya kupakia kwake yanaweza kutegemea sera za nyongeza za faili za jukwaa. Ikiwa mfumo unazingatia kwa makini nyongeza zinazoruhusiwa, uhalisia wa kimaumbile wa Polyglot pekee hauwezi kutosha kuhakikisha kupakia kwake.
Taarifa zaidi katika: [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a)
Ikiwa una nia katika **kazi ya udukuzi** na kudukua yasiyoweza kudukuliwa - **tunatoa ajira!** (_uwezo wa kuandika na kuzungumza Kipolishi kwa ufasaha unahitajika_).
<summary><strong>Jifunze udukuzi wa AWS kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
* 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** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.