SOME - Same Origin Method Execution
Reading time: 4 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Same Origin Method Execution
Daar sal geleenthede wees waar jy 'n beperkte javascript op 'n bladsy kan uitvoer. Byvoorbeeld, in die geval waar jy kan beheer oor 'n terugroepwaarde wat uitgevoer sal word.
In daardie gevalle is een van die beste dinge wat jy kan doen om die DOM te benader om enige sensitiewe aksie wat jy daar kan vind (soos om op 'n knoppie te klik) aan te roep. Dit is egter gewoonlik waar jy hierdie kwesbaarheid in klein eindpunte sonder enige interessante dinge in die DOM sal vind.
In daardie scenario's sal hierdie aanval baie nuttig wees, omdat die doel is om die beperkte JS-uitvoering binne 'n DOM van 'n ander bladsy van dieselfde domein te misbruik met baie interessante aksies.
Basies is die aanvalstroom soos volg:
- Vind 'n terugroep wat jy kan misbruik (potensieel beperk tot [\w\._]).
- As dit nie beperk is nie en jy enige JS kan uitvoer, kan jy dit net as 'n gewone XSS misbruik.
- Laat die slagoffer 'n bladsy oopmaak wat deur die aanvaller beheer word.
- Die bladsy sal homself in 'n ander venster oopmaak (die nuwe venster sal die objek
opener
hê wat na die oorspronklike een verwys). - Die oorspronklike bladsy sal die bladsy laai waar die interessante DOM geleë is.
- Die tweede bladsy sal die kwesbare bladsy laai wat die terugroep misbruik en die
opener
objek gebruik om toegang te verkry en 'n aksie in die oorspronklike bladsy uit te voer (wat nou die interessante DOM bevat).
caution
Let daarop dat selfs al het die oorspronklike bladsy toegang tot 'n nuwe URL nadat die tweede bladsy geskep is, die opener
objek van die tweede bladsy steeds 'n geldige verwysing na die eerste bladsy in die nuwe DOM is.
Boonop, om die tweede bladsy in staat te stel om die opener objek te gebruik, moet albei bladsye in die dieselfde oorsprong wees. Dit is die rede waarom jy, om hierdie kwesbaarheid te misbruik, 'n soort XSS in die dieselfde oorsprong moet vind.
Exploitation
- Jy kan hierdie vorm gebruik om 'n PoC te genereer om hierdie tipe kwesbaarheid te misbruik: https://www.someattack.com/Playground/SOMEGenerator
- Om 'n DOM-pad na 'n HTML-element met 'n klik te vind, kan jy hierdie blaaiers uitbreiding gebruik: https://www.someattack.com/Playground/targeting_tool
Example
- Jy kan 'n kwesbare voorbeeld vind in https://www.someattack.com/Playground/
- Let daarop dat in hierdie voorbeeld die bediener javascript-kode genereer en dit byvoeg tot die HTML gebaseer op die inhoud van die terugroepparameter:
<script>opener.{callbacl_content}</script>
. Dit is waarom jy in hierdie voorbeeld nie die gebruik vanopener
eksplisiet hoef aan te dui nie. - Kyk ook na hierdie CTF-skrywe: https://ctftime.org/writeup/36068
References
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.