Nevienam laikam nav noslēpums, ka nu jau pēdējos pāris gadus liela uzmanība interneta projektu izstrādē ir jāpievērš tieši dažāda veida drošības pasākumiem, īpaši jau dažādu XSS uzbrukumu formā. Līdz ar dažādu satura sidikācijas servisu uzplaukumiem tagad paveras pavisam jaunas iespējas darboties arī cilvēkiem ar noslieci uz XSS izvritībām. Tad nu es te tagad tā padomāju - pavisam nesen pie mums Latvijas internetā ir uzradušies divi jauni satura sindikācijas servisi (nekur.lv un svaigs.lv), kas apkopo jaunāko Latvijas blogos. Arī mana bloga ieraksti tur parādās.

Lai gan neesmu pamēģinājis šādas mahinācijas veikt, tomēr man ir diezgan lielas aizdomas, ka šie projekti varētu būt salīdzinoši ļoti viegli ievainojami. Viss, kas mums ir jāizdara, ir jāpanāk, ka mūsu bloga ieraksti parādās attiecīgajos servisos. Lai arī šis process nav automātisks, tomēr abi servisi ir ieinteresēti lielākā satura plūsmā, tāpēc pēc vairāku sakarīgu rakstu uzrakstīšanas varētu būt salīdzinoši vienkārši tikt viņos iekšā. Ko darīt tālāk? Vienkārši - rakstam kaut kādu sliktu JavaScript kodu sava bloga ierakstā, vai arī nomainām RSS barotni pret kādu sliktu saturu. Ko mēs varētu izmēģināt? Mēs varētu vienkārši iekļaut kaut kādu nekaitīgu javascript koda fragmentu šajā ierakstā un paskatīties, kas notiks, kad šis ieraksts parādīsies katrā no servisiem.

Tad nu mazliet padomāju un lai mahinācijas neviens īsti nemanītu, ievietoju šādu vienkāršu javascript kodu:

<script>
try{
console.info(document.domain);
}catch(e){}
</script>

Kods ir pilnīgi nekaitīgs, FireBug konsolē (ja tā ir pieejama) izdrukājot vien pavisam vienkāršu testa tekstu - attiecīgās lapas domēnu. Ja nu ir dikti liela vēlme taisīt ziepes, tad te varētu sarakstīt arī stipri kaitīgāku kodu.

Tad nu tagad pagaidīšu, kad abos servisos šis ieraksts parādīsies un tad izdarīsim secinājumus.

Papildināts: nekur.lv veiksmīgi izgāja šo triviālo testu, <script></script> birkas vienkārši tika izgrieztas. Tas gan neizslēdz iespējas, ka nav citu veidu, kā tur iemānīt dažādus XSS skriptus vai izmantot dažādas CSRF mahinācijas.

Papildināts #2: svaigs.lv izrādījās ievainojams. Patiesībā tests bija ārkārtīgi vienkāršs, netika pielietota neviena no neskaitāmām XSS iebarošanas viltībām, tik vien kā tīrs JavaScript kods atklāti ierkastīts <script> birkās. Cerams, ka kļūdas pavisam drīz tiks novērstas, citādi te ļaundariem paveras ļoti plašas iespējas manipulācijām, gan vienkārši veicot kaut kādas lietotāju pārsūtīšanas (redirect) darbības, lai zagtu trafiku, gan arī visādas citas manipulācijas.

Patiesībā, gaidot rezultātus jau domāju, ko rakstīšu pie secinājumiem, ja abas lapas izies šo testu un nevarēju izdomāt. Tā nu veiksmīgi tiku cauri no neliela aplauziena, jo aizdomas izrādījās patiesas. Tad nu varu vien novēlēt labu veiksmi esošajiem un topošajiem projektu autoriem cīņā ar XSS un mācīties no šīs vienkāršās norādes uz potenciālajām problēmām. Un jā, cerams, ka mani par šādu joku no šiem servisiem tagad neizmetīs :).

Papildināts #3: Izrādās, ka pavisam nesen arī citi ir veikuši mahinācijas svaigs.lv, tiesa tikai ar CSS līdzekļiem un pēc visa spriežot tīri nejaušības pēc.