Javascript-fidus kan gøre tilforladelige terminal-kommandoer trælse

Illustration: Virrage Images/Bigstock
Pas på med, hvad du copy-paster ind i din terminal.

En metode kaldet PasteJacking kan gøre det muligt for en person bag en ondsindet hjemmeside at køre uønskede kommandoer i en brugers terminal. Teknikken forklarer Dylan Ayrey om på GitHub, hvor han også har lagt flere proof-of-concepts. Dylan Ayrey beskriver sig selv om professionel hacker.

PasteJacking går i al sin enkelthed ud på, at når en bruger kopierer en terminal-kommando fra en hjemmeside via ctrl-c, så kan der køre javascript i baggrunden på siden, som overskriver udklipsholderen i brugerens system.

Dylan Ayrey bemærker, at noget lignende også tidligere har været muligt via HTML/CSS. Men med PasteJacking-metoden skulle det modsat HTML/CSS være muligt først at indsætte tekst i udklipsholderen når en given event har fundet sted.

Ligesom det også er muligt at indsætte en forsinkelse på eksempelvis 800 millisekunder fra eventen finder sted, til teksten bliver kopieret ind i udklipsholderen.

Eksempler på PasteJacking

I praksis kan PasteJacking eksempelvis bevirke, at en kommando uden linjeskift i enden får indsat et linjeskift for så at blive eksekveret umiddelbart efter paste i terminalen.

Eksempelvis kan det være følgende kommando, som umiddelbart er det, brugeren kopierer fra en side:

echo "not evil"

Det bliver i udklipsholderen så til :

echo "evil"\n

Resultatet bliver, at kommandoen bliver forsøgt eksekveret så snart brugeren paster ind i terminalen.

Et andet og mere avanceret eksempel kunne være at indskyde følgende sekvens i udklipsholderen via javascript.

touch ~/.evil
clear
echo "not evil"

Her bliver der på eksempelvis et Linux-system oprettet en fil, .evil, i brugerens home-directory, mens det for brugeren kun ser ud som om, den forventelige kommando echo "not evil" bliver indsat i terminalen.

I Version2's test virker Dylan Ayreys proof-of-concepts ikke, hvis brugeren højreklikker og kopierer teksten via kontekst-menuen i stedet for via ctrl-c.

Modsvar

Som modsvar mod ovenstående nævner Dylan Ayrey som mulighed at anvende et terminalprogram, der kræver brugerens aktive accept for at køre linjeskift, der får indholdet i udklipsholderen til automatisk at blive eksekveret.

En anden mulighed kunne være at lade være med at paste indhold fra nettet direkte ind i en terminal, men eksempelvis først køre det omkring et tekstprogram.

Dog ikke ukritisk, hvis tekstprogrammet - eksempelvis Vim - understøtter makroer. Her kan PasteJacking-tricket nemlig også gøre det muligt at eksekvere uønskede makro-kommandoer.

»Det siger selvfølgeligt sig selv, tag notits af de kilder, du paster fra, og udvis yderligere forsigtighed, hvis du paster fra tvivlsomme kilder,« slutter Dylan Ayrey sit Github-indlæg om PasteJacking.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (20)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Bent Jensen

Fjern alt java og flash. Brug den indbygget i Chorme. Og brug add og script blokere.

"I Version2's test virker Dylan Ayreys proof-of-concepts ikke, hvis brugeren højreklikker og kopierer teksten via kontekst-menuen i stedet for via ctrl-c."
Og det skal jeg huske. Men er vi ikke tilbage ved tekst skriven med bagrundsfaven som her " "

  • 1
  • 12
Bent Jensen

Hvis du afvikler java, som java programering, så skal man have java installeret.
Hvis man vil afvikleJavaScript, som en del af en hjemmeside, så skal det være enablet og understøttet i browseren.

Hvis man ikke har Java installeret, og ikke giver script lov til at køre i browser, så kan man vel ikke afvikle nogen af delen ?

Og det har jeg ikke, giver specifikt lov til afvikling enkelte ting, på hver hjemmeside, hvis der mangler noget basalt.
Der er så meget der ikke virker, men det må jeg leve med, i sikkerhedens og privatlives navn.
Der er også mange butiker som ikker virker, men de må leve uden salg til mig.

Eller har jeg helt total misforstået noget her ?
Har typsik op til 15-25 dele som er blokeret. Også 2-3 som får lov at køre.
Og ingen Java (program) eller flash, silverlight/net kørende. (facebook er næsten til at leve med, selv om det gerne vil så meget andet)

  • 2
  • 1
Baldur Norddahl

Bent:

Det er klart at Java ikke fungerer uden at Java er installeret. Men Java og JavaScript har intet til fælles ud over en del af navnet. Så når du spørger om man kan afvikle JavaScript på en maskine uden Java, så er svaret at naturligvis kan man det.

Man kan også køre Java på en maskine uden JavaScrip. Der er nul overlap der. To helt forskellige teknologier og tilmed opfundet og implementeret af to forskellige virksomheder.

Historisk havde JavaScrip oprindeligt et andet navn (LightScript) men Netscape fik lov af Sun Microsystems til at omdøbe det til JavaScrip for at lukrerer på den succes som Sun havde med Java. Som modydelse inkluderede Netscape support for Java i Netscape browseren.

Der har i øvrigt været langt færre sikkerhedsproblemer med JavaScrip i forhold til Java.

  • 2
  • 1
Christian Nobel

Hvis du afvikler java, som java programering, så skal man have java installeret.
Hvis man vil afvikleJavaScript, som en del af en hjemmeside, så skal det være enablet og understøttet i browseren.

En browser der ikke kan afvikle JavaScript betyder at en stor del af en sides funktionalitet mistes - reelt set kan det gøre en side uanvendelig, hvorfor vel stort set alle afvikler JavaScript i deres browser.

Men der hvor misforståelsen kommer ind i billedet er at artiklen er ret uklar - for det har dybest set ikke ret meget med kommandolinjen at gøre, men det at man kan lade en eventhandler fylde mere ind i clipboardet end man tror, hvis man laver copy fra en hjemmeside - men fra hestens egen mund:

Browsers now allow developers to automatically add content to a user's clipboard, following certain conditions. Namely, this can only be triggered on browser events. This post details how you can exploit this to trick a user into running commands they didn't want to get ran, and gain code execution.

  • 3
  • 1
Baldur Norddahl

I mit forrige indlæg måtte jeg undlade at stave JavaScript rigtigt for ellers vil version2.dk ikke tage imod indlægget. Efter meget eksperimentering har jeg fundet ud af hvorfor. Prøv at skrive "JavaScript" efter "url" i samme indlæg og tryk på Gennemse (eller Gem). Man kan simpelthen ikke skrive JavaScrip (som er stavet forkert herfra af denne årsag) efter at de tre bogstaver url har været i et indlæg. I mit indlæg indgår bogstaverne i ordet "naturligvis".

  • 7
  • 0
Bent Jensen

@Christian Nobel
Ja nyt layout, og blikende lamper før funktionalitet.

Men så har jeg ikke misforstået noget, der er bare ikke alle som har læst mit indlæg.

"Fjern alt java og flash. Brug den indbygget i Chorme. Og brug add og script blokere"

Fjern alt java og flash = Java og Flash fra Sun og Adobe.
Brug den indbygget i Chorme = Den indbyget Java i chorme er betydeligt mere sikkert.
Og brug add og script blokere = Som forhindre og blokere java

Så har ikke misfortået noget, kender godt forskeld på java og script.
Og tricket består i at der gemmer sig mere i tekststringen, end man kan se. Lige som at skrive bogstaver med hvid. (Bagrundsfarve)

  • 1
  • 3
Christian Nobel

@Christian Nobel
Ja nyt layout, og blikende lamper før funktionalitet.

Sikke noget eklatant vrøvl - JavaScript er f.eks. en nødvendighed for at kunne lave Ajax funktionalitet, og bruges også til inputvalidering og anden funktionalitet for at lave bedre og sikrere sider - det er absolut ikke kun noget der har betydning for "blinkende lamper"!

Så har ikke misfortået noget, kender godt forskeld på java og script.

Aha, dit sidste indlæg understeger da vist nærmere det modsatte.

  • 1
  • 2
Bent Jensen

Så har jeg misforstået at det er java, og ikke java skript som chome understøtter direkte .Og som er betydeligt mere sikkert end den orginale udgave. Men det bunder nok i at man kan gå på Nemid, direkte med Chorme uden 3.parts programmer, men det kan man ikke med firefox. Men det er sikkert fordi at Nemid har ændret måden deres side er kodet, samtidig med at jeg skiftet browser til brug for dette. Så har fået et eller andet end forkert indtryk ind der. Så nemid kan bruges uden flash og Java installeret på alle browser nu ?

"Sikke noget eklatant vrøvl - JavaScript er f.eks. en nødvendighed for at kunne lave Ajax funktionalitet, og bruges også til inputvalidering og anden funktionalitet for at lave bedre og sikrere sider - det er absolut ikke kun noget der har betydning for "

Du kan nemt fjerne og blokere de fleste3.parts programmer og link som findes på en hjemmeside, de fleste bruges af google, facebook og andre til at indsamle omlysninger og tracke dig. Du mister måske også noget glimmer, og lidt funktionalitet, som søge felter og andet. Men tit vil jeg bare finde et andet sted at lede eller købe hvis det er tilfældet og programøren af hjemmesiden ikke er dygtigt nok, eller ønsker at kikke mig for meget i kortene.
Det sværets er køb med kort, hvor man i flere omgang skal have slået de link og addon til som er vedr. betalingsdelen.
Men det lykkes normalt i 1-2 omgang, og næste gang køre det, også for andre som bruger samme løsning.

Så meget javascript er bingeling og udnødvendigt. Kan blokere de første 18 stykker på version2, og kan stadig læse og poste kommentare :-)

Man burde måske, og det er måske muligt under den nye datalov bede om oplysninger om hvad alle de forskelige ting. som køres når man besøger en hjemmside laver. Sådan en lille "indholdsfortegnelse" da det jo er dinne informationer som de indsammler og bruger. Måske et brev om hvad version2 har af oplysninger om mig, her under alle 3part programmer. Det kan man måske kræve når dem nye persondata lov fra EU træder i kraft. De har jo også ansvar for 3 parts med den nye data lov, som jeg kan forstå det. Måske en god måde at få udbyder til at rette ind, de data som "høstes" skal jo opbevares sikker, og ved godkendte steder.

  • 0
  • 2
Troels Jensen

Siden det er oppe at vende at der er tale om to forskellige sprog, så lad os lige slå fast hvad forskellen er.

Java er et programmeringssprog der (så vidt jeg har forstået) blev skabt af Sun Microsystems og var meget populært i 90'erne. Nu ejes rettighederne til standardlibraryet af Oracle.

I 90'erne sad der en udvikler hos Netscape og udviklede et scriptingsprog til brug på websider. For at udnytte Javas popularitet kaldet han sproget for Javascript.

De to sprog har ikke rigtigt noget til fælles ud over at de begge som udgangspunkt er baseret på en C-lignende syntaks og er stærkt objektorienterede. Det objektorienterede paradigme i Java er dog milevidt fra det brugt i Javascript. (Java benytter sig meget tungt af interfaces og nedarvning hvor javascript bruger prototyping og har hverken klassedefinitioner eller nogen af de metoder man bruger til nedarvning indbygget i sproget)

  • 1
  • 1
Christian Nobel

Du kan nemt fjerne og blokere de fleste3.parts programmer og link som findes på en hjemmeside, de fleste bruges af google, facebook og andre til at indsamle omlysninger og tracke dig. Du mister måske også noget glimmer, og lidt funktionalitet, som søge felter og andet. Men tit vil jeg bare finde et andet sted at lede eller købe hvis det er tilfældet og programøren af hjemmesiden ikke er dygtigt nok, eller ønsker at kikke mig for meget i kortene.

Du ævler videre i en stor pærevælling, men det er ret tydeligt at du intet aner om udvikling af websites - og det har intet at gøre med pling-plang eller reklamer, men prøv at afvikle en side med bare et minimum funktionalitet uden at gøre brug af JavaScript (helt uden vel at mærke!).

Og så hold Java helt uden for snakken, det er totalt irrelevant i forhold til konteksten.

Btw, det såkaldte "NemID" fungerer udmærket (hvis man kan sige det om NemID som så, men det er så en helt anden snak) i FF.

  • 2
  • 0
Milos Game

Alle browsere understøtter "JavaScript", hvilket også gælder smartphones og tablets.

Tidligere kunne NemID kun afvikles via "Oracle Java" der til dagligt kaldes "Java", hvilket typisk ikke kan afvikles på mobile enheder, som smartphones og tablets. Man kunne derfor ikke bruge NemID på mobile enheder.

På et tidspunkt gik leverandøren af NemID fra at bruge "Oracle Java" til at bruge "JavaScript", så folk også kunne bruge NemID på mobile enheder.

Dette har tilsyneladende skabt forvirring hos folk, der ikke lige er obs på forskellen mellem "Java" og "JavaScript". Jeg håber at dette indlæg oplyser situationen tilstrækkeligt.

  • 1
  • 0
Milos Game

Jo færre tredje parts programmer og plugins man har installeret, jo bedre, da det reducerer antallet af angrebsflader (måder hvor man kan blive angribet via).

Derfor kan man med fordel afinstallere Oracle Java, Adobe Flash og andet, hvis man ikke benytter dem. Man skal dog være opmærksom på, at visse hjemmesider stadigvæk benytter disse teknologier, og at oplevelsen på disse hjemmesider kan være stærkt forringet.

Visse hjemmesider er lavet 100% i Adobe Flash, hvilket betyder at disse hjemmesider er fuldstændige ubrugelige hvis man afinstallere Adobe Flash. Med andre ord, der kommer ikke noget indhold på skærmen, eller måske bare "Denne hjemmeside bruger Adobe Flash".

  • 0
  • 0
Christian Nobel
  • 2
  • 1
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize