GWS - App Scripts
App Skripte
App Skripte is kode wat geaktiveer sal word wanneer 'n gebruiker met redakteurstoestemming die dokument wat die App Skrip aan verbind is, toegang en na die aanvaarding van die OAuth-prompt. Hulle kan ook ingestel word om elke sekere tyd uitgevoer te word deur die eienaar van die App Skrip (Volharding).
Skep App Skrip
Daar is verskeie maniere om 'n App Skrip te skep, alhoewel die mees algemene maniere is vanaf 'n Google-dokument (van enige tipe) en as 'n selfstandige projek:
App Skrip Scenario
Skep Google-blad met App Skrip
Begin deur 'n App Skrip te skep, my aanbeveling vir hierdie scenario is om 'n Google-blad te skep en te gaan na Extensions > App Skripte
, dit sal 'n nuwe App Skrip vir jou oopmaak wat aan die blad gekoppel is.
Lek token
Om toegang te gee tot die OAuth-token moet jy op Dienste +
klik en scopes soos byvoeg:
AdminDirectory: Toegang tot gebruikers en groepe van die gids (as die gebruiker genoeg toestemmings het)
Gmail: Om toegang tot gmail-data te verkry
Drive: Om toegang tot drive-data te verkry
Google Sheets API: Sodat dit werk met die trekker
Om self die nodige scopes te verander kan jy na projekinstellings gaan en aktiveer: Wys "appsscript.json" manifest-lêer in redakteur
.
Om die versoek vas te vang, kan jy net hardloop:
Permissions requested to execute the App Script:
As 'n eksterne versoek gedoen word, sal die OAuth-prompt ook vra om toestemming om eksterne eindpunte te bereik.
Skep Trigger
Sodra die App gelees is, klik op ⏰ Triggers om 'n trigger te skep. Kies as funksie om uit te voer getToken
, hardloop by implementering Head
, in gebeurtenisbron kies Vanaf die sigblad
en gebeurtenistipe kies By oopmaak
of By wysiging
(volgens jou behoeftes) en stoor.
Merk op dat jy die uitvoer van die App Scripts in die Uitvoerings-tabblad kan nagaan as jy iets wil foutsoek.
Deling
Om die App Script te trigger moet die slagoffer koppel met Redakteurstoegang.
Die token wat gebruik word om die App Script uit te voer, sal dié van die skepper van die trigger wees, selfs as die lêer as Redakteur deur ander gebruikers geopen word.
Misbruik van Gedeelde Met My dokumente
As iemand 'n dokument met App Scripts en 'n trigger wat die Head van die App Script gebruik met jou gedeel het, kan jy die App Script-kode wysig (deur byvoorbeeld die steel token-funksies by te voeg), dit toegang gee, en die App Script sal uitgevoer word met die toestemmings van die gebruiker wat die dokument met jou gedeel het! (merk op dat die eienaar se OAuth-token toegangsbereike sal hê wat gegee is toe die trigger geskep is).
'n Kennisgewing sal aan die skepper van die skrip gestuur word wat aandui dat iemand die skrip gewysig het (Wat dink jy van die gebruik van gmail-toestemmings om 'n filter te genereer om die waarskuwing te voorkom?)
As 'n aanvaller die omvang van die App Script wysig, sal die opdaterings nie toegepas word op die dokument totdat 'n nuwe trigger met die veranderinge geskep word nie. Daarom sal 'n aanvaller nie in staat wees om die eienaar se skepper-token te steel met meer omvang as die een wat hy in die trigger wat hy geskep het, ingestel het.
Kopiëring in plaas van deling
Wanneer jy 'n skakel skep om 'n dokument te deel, word 'n skakel soortgelyk aan hierdie een geskep: https://docs.google.com/spreadsheets/d/1i5[...]aIUD/edit
As jy die eindiging "/edit" verander na "/copy", sal Google jou vra of jy 'n kopie van die dokument wil genereer:
As die gebruiker dit kopieer en dit toegang gee, sal beide die inhoud van die dokument en die App Scripts gekopieer word, maar die triggers nie, daarom sal niks uitgevoer word.
Deling as Webtoepassing
Merk op dat dit ook moontlik is om 'n App Script as 'n Webtoepassing te deel (in die Redakteur van die App Script, implementeer as 'n Webtoepassing), maar 'n waarskuwing soos hierdie sal verskyn:
Gevolg deur die tipiese OAuth-prompt wat vra vir die nodige toestemmings.
Toetsing
Jy kan 'n ingesamelde token toets om e-posse te lys met:
Lys kalender van die gebruiker:
App Script as Volharding
Een opsie vir volharding sou wees om 'n dokument te skep en 'n trekker vir die getToken-funksie by te voeg en die dokument met die aanvaller te deel sodat elke keer as die aanvaller die lêer oopmaak, hy die token van die slagoffer uitlek.
Dit is ook moontlik om 'n App Script te skep en dit te laat afgaan elke X-tyd (soos elke minuut, uur, dag...). 'n Aanvaller wat gekompromitteerde geloofsbriewe of 'n sessie van 'n slagoffer het, kan 'n App Script-tydtrekker instel en elke dag 'n baie bevoorregte OAuth-token uitlek:
Skep net 'n App Script, gaan na Trekkers, klik op Voeg Trekker By, en kies as gebeurtenisbron Tydgedrewe en kies die opsies wat jou die beste pas:
Dit sal 'n veiligheidskennisgewings-e-pos skep en 'n drukboodskap na jou mobiel stuur om jou hieroor in te lig.
Gedeelde Dokument Ongeverifieerde Omseiling van Vraag
Verder, as iemand 'n dokument met redakteurstoegang met jou gedeel het, kan jy App Scripts binne die dokument genereer en die EIENAAR (skepper) van die dokument sal die eienaar van die App Script wees.
Dit beteken dat die skepper van die dokument as skepper van enige App Script sal verskyn wat enige iemand met redakteurstoegang binne-in dit skep.
Dit beteken ook dat die App Script vertrou sal word deur die Workspace-omgewing van die skepper van die dokument.
Dit beteken ook dat as 'n App Script reeds bestaan en mense toegang verleen het, kan enige iemand met Redakteur-toestemming op die dokument dit wysig en daardie toegang misbruik.
Om dit te misbruik, het jy ook mense nodig om die App Script te aktiveer. En 'n slim truuk is om die skrip as 'n webtoepassing te publiseer. Wanneer die mense wat reeds toegang tot die App Script verleen het, die webbladsy besoek, sal hulle die App Script aanskakel (dit werk ook met behulp van <img>
-etikette).
Last updated