Express Prototype Pollution Gadgets

Jifunze udukuzi wa AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

WhiteIntel ni injini ya utaftaji iliyochangiwa na dark-web inayotoa huduma za bure za kuangalia ikiwa kampuni au wateja wake wame vamiwa na malware za wizi.

Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na malware za wizi wa habari.

Unaweza kutembelea tovuti yao na kujaribu injini yao bure kwa:


Toa Majibu ya XSS

Kwa maelezo zaidi angalia utafiti wa asili

Badilisha aina ya yaliyomo ya JSON kuwa HTML

Katika programu ya Express ikitumia aina ya jibu la yaliyomo ya JSON na kufunua JSON:

app.use(bodyParser.json({type: 'application/json'}));
app.post('/', function(req, res){
_.merge({}, req.body);
res.send(req.body);
});

Katika kesi hizi XSS kawaida haiwezekani na aina ya yaliyomo ya JSON. Walakini, kwa kuchafua prototype tunaweza kuchanganya Express kutumikia jibu la HTML. Udhaifu huu unategemea maombi kutumia res.send(obj) na kutumia kipambatizi cha mwili na aina ya yaliyomo ya application/json.

{"__proto__":{"_body":true,"body":"<script>evil()"}}

Kwa kuichafua mali za body na _body, niwezekana kusababisha Express kutumikia aina ya yaliyomo ya HTML na kufunua mali ya _body, ikisababisha XSS iliyohifadhiwa.

Toa UTF7

Inawezekana kufanya express itoa yaliyomo ya UTF-7 pamoja na:

{"__proto__":{"content-type": "application/json; charset=utf-7"}}

Mbinu Salama za Kuchunguza

Nafasi za JSON

PP ifuatayo itafanya sifa ndani ya JSON kuwa na nafasi ya ziada ambayo haitaharibu utendaji:

{"__proto__":{"json spaces": " "}}

Kisha JSON iliyorudishwa itaonekana kama:

{"foo":  "bar"} -- Note the extra space

Vichwa Vilivyofunuliwa

Kifaa cha PP kinachofuata kitafanya server itume nyuma kichwa cha HTTP: Access-Control-Expose_headers: foo

{"__proto__":{"exposedHeaders":["foo"]}}

Inahitaji moduli ya CORS iwe imewekwa

Mbinu ya OPTIONS

Kwa mzigo wa data ufuatao, ni kupatikana kuficha mbinu kutoka kwa jibu la OPTIONS:

// Original reponse: POST,GET,HEAD

// Payload:
{"__proto__":{"head":true}}

//New response: POST;GET

Hali

Inawezekana kubadilisha nambari ya hali iliyorudishwa kwa kutumia mzigo wa PP ufuatao:

{"__proto__":{"status":510}}

Hitilafu

Wakati unapoweka kwa kielelezo na kitu cha msingi kama herufi, inazalisha operesheni ya no-op kwa sababu kielelezo lazima kiwe kitu. Ikiwa unajaribu kuweka kielelezo cha kitu kwa Object.prototype yenyewe, hii italeta kutupa kwa kipekee. Tunaweza kutumia tabia hizi mbili kugundua ikiwa uchafuzi wa kielelezo ulifanikiwa:

({}).__proto__.__proto__={}//throws type exception
({}).__proto__.__proto__="x"//no-op does not throw exception

Thamani Iliyorudishwa

Wakati programu inajumuisha kitu katika majibu yake, kuunda sifa na jina lisilo la kawaida pamoja na __proto__ inaweza kuwa ya kuelimisha. Hasa, ikiwa sifa lisilo la kawaida pekee ndio inayorudishwa katika majibu, hii inaweza kuashiria udhaifu wa programu:

{"unusualName":"value","__proto__":"test"}

Zaidi, katika hali ambapo maktaba kama Lodash inatumika, kuweka mali kwa njia ya uchafuzi wa prototype (PP) na moja kwa moja ndani ya kitu hutoa njia nyingine ya uchunguzi. Ikiwa mali kama hiyo haipo kwenye jibu, inaashiria kuwa Lodash inathibitisha uwepo wa mali katika kitu lengwa kabla ya kuiunganisha:

{"__proto__":{"a":"value1"},"a":"value2","b":"value3"}
// If 'b' is the only property reflected, this indicates prototype pollution in Lodash

Vinginevyo

Ruhusu Dots

Kuna chaguo katika Express ambalo linaruhusu kuunda vitu kutoka kwa paramita za mfuatano wa maswali. Unaweza kuitumia kwa uhakika katika mnyororo wa makosa kwa kufaidika na udhaifu wa uchafuzi wa prototype.

{"__proto__":{"allowDots":true}}

?foo.bar=baz inajenga kitu katika Node.

Marejeo

WhiteIntel ni injini ya utaftaji iliyochochewa na dark-web inayotoa utendaji wa bure kuchunguza ikiwa kampuni au wateja wake wameathiriwa na malware za wizi.

Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na programu hasidi ya wizi wa habari.

Unaweza kutembelea tovuti yao na kujaribu injini yao kwa bure kwa:

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks:

Last updated