Client Side Prototype Pollution
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Zana https://github.com/dwisiswant0/ppfuzz, https://github.com/kleiton0x00/ppmap na https://github.com/kosmosec/proto-find zinaweza kutumika kupata udhaifu wa prototype pollution.
Zaidi ya hayo, unaweza pia kutumia nyongeza ya kivinjari PPScan kuangalia kiotaji unachofikia kwa udhaifu wa prototype pollution.
Mara tu udhaifu wa prototype pollution unapogundulika na zana yoyote, na ikiwa msimbo si mgumu kupita kiasi, unaweza kupata udhaifu kwa kutafuta maneno muhimu kama location.hash
, decodeURIComponent
, au location.search
katika Zana za Wataalamu za Chrome. Njia hii inakuwezesha kubaini sehemu iliyo hatarini ya msimbo wa JavaScript.
Kwa misimbo mikubwa na ngumu zaidi, njia rahisi ya kugundua msimbo hatarini inajumuisha hatua zifuatazo:
Tumia zana kubaini udhaifu na kupata payload iliyoundwa kuweka mali katika mjenzi. Mfano uliopewa na ppmap unaweza kuonekana kama: constructor[prototype][ppmap]=reserved
.
Weka breakpoint kwenye mstari wa kwanza wa msimbo wa JavaScript utakaotekelezwa kwenye ukurasa. Fanya upya ukurasa na payload, ukisimamisha utekelezaji kwenye breakpoint hii.
Wakati utekelezaji wa JavaScript umesimamishwa, tekeleza script ifuatayo kwenye console ya JS. Script hii itatoa ishara wakati mali ya 'ppmap' inaundwa, kusaidia katika kutafuta asili yake:
Rudi kwenye kichupo cha Sources na uchague “Resume script execution”. JavaScript itaendelea kutekelezwa, na mali ya 'ppmap' itachafuka kama inavyotarajiwa. Kutumia kipande kilichotolewa husaidia kutambua mahali halisi ambapo mali ya 'ppmap' inachafuka. Kwa kuchunguza Call Stack, stacks tofauti ambapo uchafuzi ulitokea zinaweza kuonekana.
Unapofanya maamuzi kuhusu stack ipi ya kuchunguza, mara nyingi ni muhimu kulenga stacks zinazohusiana na faili za maktaba ya JavaScript, kwani uchafuzi wa prototype mara nyingi hutokea ndani ya maktaba hizi. Tambua stack husika kwa kuchunguza kiambatisho chake kwa faili za maktaba (inaonekana upande wa kulia, kama picha iliyotolewa kwa mwongozo). Katika hali zenye stacks nyingi, kama zile kwenye mistari ya 4 na 6, chaguo la busara ni stack kwenye mstari wa 4, kwani inawakilisha tukio la awali la uchafuzi na hivyo sababu ya msingi ya udhaifu. Kubofya kwenye stack kutakupeleka kwenye msimbo ulio hatarini.
Gadget ni msimbo ambao utakabiliwa mara tu udhaifu wa PP utakapogundulika.
Ikiwa programu ni rahisi, tunaweza kutafuta maneno muhimu kama srcdoc/innerHTML/iframe/createElement
na kupitia msimbo wa chanzo na kuangalia kama inaleta utendaji wa javascript. Wakati mwingine, mbinu zilizotajwa zinaweza kutokupata gadgets kabisa. Katika kesi hiyo, kupitia msimbo wa chanzo wa safi kunaweza kufichua gadgets nzuri kama mfano ulio hapa chini.
Angalia andiko hili: https://blog.huli.tw/2022/05/02/en/intigriti-revenge-challenge-author-writeup/
Utafiti huu unaonyesha gadgets za PP za kutumia ili kupita sanizations zinazotolewa na baadhi ya maktaba za HTML sanitizers:
sanitize-html
dompurify
Closure
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)