Învățarea se întâlnește cu distracția la SANS Holiday Hack Challenge 2022 – prindeți-vă curea pentru o plimbare cu crackerjack la Polul Nord, în timp ce încalc planul greșit al lui Grinchum și recuperez cele cinci inele de aur
Acesta este primul meu an de participare la SANS Holiday Hack Challenge și a fost o explozie. Printr-o serie de 16 provocări, de la ușor la dificil, am exersat analiza traficului de rețea suspect și a jurnalelor PowerShell, scriind regulile Suricata, izbucnind dintr-o Container de andocare, găsirea de chei scurse pentru a exploata a Conducta GitLab CI/CD si un utilizator AWS, dirijare Atacuri XML External Entity, și piratarea unui contract inteligent pentru a cumpăra un jeton non-fungible.
Cea mai bună parte a acestei experiențe a fost că m-a introdus în noi instrumente și tehnologii, extinzându-mi astfel cunoștințele de securitate cibernetică mult mai departe. Aici, împărtășesc câteva momente importante din rezolvarea provocărilor.
Orientare
Fiecare participant primește un avatar pentru a naviga într-un mediu de joc video în browser stabilit la Polul Nord:
În timpul orientării, primești un portofel cu criptomonede pe care jocul îl folosește pentru a acorda KringleCoins pentru finalizarea provocărilor și pe care îl folosești în ultima provocare pentru a pirata un contract inteligent. Interesant este că jocul ține evidența tuturor tranzacțiilor KringleCoin într-un blockchain Ethereum, ceea ce înseamnă că o înregistrare completă a progresului tău este stocată și în acest blockchain.
Pe primul inel al jocului.
1. Inelul Tolkien
Găsirea Inelului Tolkien a necesitat să-mi flexez mușchii de analiză a jurnalelor.
phishing Wireshark
În primul rând, am folosit Wireshark pentru a analiza cele furnizate .pcap fișier care a dezvăluit un server la adv.epostoday[.]uk descărcarea fișierului Ref_Sept24-2020.zip la un computer:
Privind în interiorul fișierului ZIP, am găsit un executabil numit Ref_Sept24-2020.scr care a declanșat două detectări în ESET Endpoint Security: BAT/Runner.ES și Generik.TAGTBG. Acest malware duce în cele din urmă la un executabil rău intenționat care rulează în memorie numit config.dll și detectat de ESET Scaner avansat de memorie as Win32/Dridex.DD.
Jurnalele de evenimente Windows
În continuare, am analizat cele oferite .evtx fișier care conține jurnalele PowerShell cu Vizualizator de evenimente. Deși există și alte instrumente pentru a analiza jurnalele PowerShell, dacă atacatorii știu cum să folosească binarele care trăiesc în afara terenului pentru a rămâne sub radar, apărătorii ar trebui, de asemenea, să fie familiarizați cu instrumentele native pe care le oferă un sistem de operare.
Deoarece jurnalele conțineau 10,434 de evenimente, am grupat evenimentele după dată și apoi am rulat acțiunea Găsiți pentru a căuta orice evenimente care conțineau $ caracter. În PowerShell, $ este folosit pentru a crea și a face referire variabile. Am găsit un atac pe 24 decembrie 2022, când atacatorul a rulat următorul script:
Se pare că atacatorul a găsit o rețetă secretă, a schimbat ingredientul secret al miere pentru untură de peşte, apoi a creat un nou fișier de rețetă. Acest lucru a declanșat un eveniment cu un ID de 4104, care reprezintă execuția comenzilor PowerShell de la distanță. Așadar, am filtrat evenimentele după acest ID, ajutându-mă să găsesc mai rapid evenimente rău intenționate suplimentare.
Regatta Suricata
Ultimul exercițiu pentru Inelul Tolkien a fost scrierea a patru reguli Suricata pentru a monitoriza traficul de rețea pentru o infestare cu Dridex:
alert dns $HOME_NET orice -> orice orice (msg:„Căutare DNS proastă cunoscută, posibilă infecție Dridex”; dns.query; conținut:”adv.epostoday.uk”; nocase; sid:1; rev:1;)
alertă http 192.185.57.242 orice <> orice orice (msg:„Investigați conexiuni suspecte, posibilă infecție cu Dridex”; sid:2; rev:1;)
alert tls any any -> any any (msg:„Investigați certificate proaste, posibilă infecție cu Dridex”; tls.cert_subject; conținut:”CN=heardbellith.Icanwepeh.nagoya”; sid:3; rev:1;)
alert http any any -> any any (msg:„Funcție JavaScript suspectă, posibilă infecție Dridex”; date_file; conținut:”let byteCharacters = atob”; sid:4; rev:1;)
În ordine, aceste reguli prind căutările DNS pentru adv.epostoday[.]uk, conexiuni la adresa IP 192.185.57[.]242, utilizarea serverului rău intenționat heardbelth.Icanwepeh[.]nagoya identificat prin numele comun (CN) într-un certificat TLS și utilizarea JavaScript atob() funcție de decodare a unui șir binar care conține date codificate în base64 pe client.
Finalizarea acestor trei provocări mi-a câștigat inelul Tolkien:
Trec la al doilea inel.
2. Inelul Elfen
Cele mai proeminente provocări pentru Elfen Ring au fost Prison Escape și Jolly CI/CD.
Evadare în închisoare
Prison Escape a fost un memento sever că acordarea de privilegii root unui utilizator într-un container Docker este la fel de bună ca acordarea de privilegii root pe sistemul gazdă. Provocarea a fost să iasă din container. Ei bine, ușor de făcut când ești root:
În calitate de utilizator root, am listat tabelele de partiții pentru dispozitiv și apoi am montat sistemul de fișiere gazdă, oferindu-mi acces deplin la gazdă. Acum aș putea căuta cheia, care ar trebui să fie localizată în directorul principal, așa cum este dezvăluit de sugestiile din joc:
Jolly CI/CD
Deși asta a fost rapid, Jolly CI/CD mi-a luat cea mai lungă provocare să-mi dau seama. Mai întâi, ni s-a oferit un depozit Git pentru a clona prin HTTP:
Din URL, am putut vedea că numele depozitului era wordpress.flag.net.intern, așa că m-am mutat în depozit și am găsit un site web WordPress. Am verificat dacă site-ul este live:
Da, site-ul era funcțional. Eram curios dacă au existat chei scurse în istoricul codului sursă. Dacă da, ar trebui să pot împinge modificări la codul sursă. Așa că am fugit git-log:
Din mesajele de comitere, se pare că a comite a fost făcută după adăugarea de active pentru a remedia un whoops. E timpul să verifici comiterea pre-whoops:
Excelent, am gasit un .ssh director cu chei. Să copiem acele chei și să configuram un agent SSH și un utilizator Git pentru a vedea dacă pot uzurpa identitatea proprietarului acelor chei:
Acum să revenim la ramura principală și să testăm dacă putem împinge o modificare banală a codului sursă (folosind nano, am adăugat pur și simplu un spațiu la unul dintre fișiere):
Așadar, am reușit prima parte a provocării uzurpându-mă pe unul dintre dezvoltatorii WordPress, dar site-ul a mai funcționat după impulsul meu?
Împingerea mea a schimbat ceva pentru că acum site-ul web a fost redirecționat către portul 8080.
Până acum, ignorasem partea CI/CD a provocării, care ar trebui să fie cheia finalizării acesteia. Depozitul conține a .gitlab-ci.yml fișier, care oferă configurația pentru o conductă GitLab CI/CD. De fiecare dată când împingeți în depozit, sistemul CI/CD pornește și a GitLab Runner execută scripturile din acest fișier YML. M-am gândit că este la fel de bun ca realizarea execuției codului de la distanță pe serverul pe care este instalat GitLab Runner.
Privind mai atent, am văzut o rsync script care copie toate fișierele din depozitul Git în directorul de pe serverul web de pe care site-ul a fost servit. La început, am încercat să folosesc rsync pentru a inversa fluxul de date prin copierea tuturor fișierelor de pe serverul web în depozitul Git, dar fără succes.
După o mulțime de testare a ipotezelor, în cele din urmă am avut o perspectivă revoluționară: în loc să încerc să „remediez” site-ul WordPress sau să rulez scripturi rău intenționate prin intermediul sistemului de compilare, serviți un site web care scurge informații de pe serverul web. Interior index.php (situat la nivelul superior al depozitului), pot comenta codul care încarcă site-ul WordPress și pot rula comenzi PHP care sondează serverul web.
Într-adevăr, pot rula chiar și comenzi shell cu PHP. am gasit asta trece prin() lucrat usor.
In index.php, Obisnuiam // pentru a comenta două rânduri și am adăugat passthru('ls -la /'); pe ultima linie. Aceasta creează un site web care listează toate fișierele din directorul rădăcină al serverului web:
Apoi am împins această modificare în depozitul Git și sistemul GitLab CI/CD s-a ocupat de actualizarea site-ului pentru mine:
Ah, Inelul Elfen trebuie să fie înăuntru steag.txt! Am repetat pașii anteriori, dar de data aceasta folosind passthru('cat /flag.txt'); dezvăluind Inelul Elfen data viitoare când am solicitat site-ul:
Trec la al treilea inel.
3. Web Ring
Cea mai distractivă provocare pentru mine a fost Open Boria Mine Door, deși Glamtariel's Fountain a fost interesantă, prezentând și ghicitori.
Deschide ușa minei Boria
În Open Boria Mine Door, ni s-au prezentat șase pini sau mini-provocări pentru a ocoli validarea intrării sau un Politica de securitate a conținutului pentru a conecta țevile de intrare și de ieșire între știfturi, inclusiv potrivirea culorilor țevilor. Pentru majoritatea pinurilor, am folosit HTML pentru a scrie o listă de litere de legătură „o”. Iată soluția mea finală:
Pinul 1
Nu a existat nicio validare pentru Pin 1, așa că a fost o simplă chestiune de HTML și CSS inline:
<p style=“letter-spacing: -4px; margin: 0; padding: 0;”>oooooooooooooo</p> |
Pinul 2
Pinul 2 avea o politică de securitate a conținutului care nu permitea JavaScript, dar permitea CSS inline, așa că nu a fost o problemă pentru metoda mea:
1 2 3 4 5 6 7 8 9 10 11 12 |
<ul style=“list-style: none; line-height:0.5; letter-spacing: -4px; margin: 0; padding: 0;”> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>oooooooooooooo</li> </ul> |
Pinul 3
Pinul 3 avea o politică de securitate a conținutului care nu permitea CSS, dar permitea JavaScript inline, așa că am folosit JavaScript pentru a schimba stilurile:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<script> document.write(“” + “<ul id=’o’>” + “<li>o</li>” + “<li>oooooooooooooooooooooo</li>” + “<li>o</li><li>o</li><li>o</li><li>o</li>” + “</ul>”); const o = document.getElementById(‘o’); o.style.color = “blue”; o.style.listStyle = “none”; o.style.lineHeight = “0.5”; o.style.letterSpacing = “-4px”; o.style.margin = “0”; o.style.padding = “0”; </script> |
Pinul 4
Pinul 4 nu avea o politică de securitate a conținutului, dar avea o funcție sanitizeInput pe partea clientului care elimina ghilimele duble, ghilimele simple, parantezele cu unghi stâng și parantezele cu unghi drept. Trucul aici a fost să realizezi că această funcție nu a fost declanșată prin trimiterea formularului, ci de către onblur eveniment. Cu alte cuvinte, mutarea mouse-ului departe de câmpul de intrare a declanșat onblur eveniment, dezinfectând orice intrare. Soluția a fost trimiterea formularului apăsând tasta Intrați tasta, având grijă să nu mutați cursorul mouse-ului în afara limitelor câmpului de introducere:
1 2 3 4 5 6 7 8 9 10 11 |
<ul style=“list-style: none; line-height:0.5; letter-spacing: -4px; margin: 0; padding: 0;”> <li>o</li> <li>o</li> <li>oooooooooooooo</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li>o</li> <li style=“color: blue;”>oooooooooooooo</li> </ul> |
Pinul 5
Pinul 5 avea același lucru sanitizeInput funcția și ocolirea împreună cu o politică de securitate a conținutului care interzice CSS inline, dar permite JavaScript inline:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<script> document.write(“” + “<ul id=’o’>” + “<li>o</li>” + “<li>o</li>” + “<li class=’red’>oooooooooooooo</li>” + “<li><span class=’red’>o</span></li>” + “<li><span class=’red’>o</span></li>” + “<li><span class=’red’>o</span>” + “<span class=’blue’> ooooooooooo</span></li>” + “<li><span class=’red’>o</span>” + “<span class=’blue’> oo</span></li>” + “<li><span class=’red’>o</span>” + “<span class=’blue’> oo</span></li>” + “<li><span class=’red’>o</span>” + “<span class=’blue’> oo</span></li>” + “<li>o<span class=’blue’> oo</span></li>” + “<li>o<span class=’blue’> B</span></li>” + “</ul>”); const o = document.getElementById(‘o’); o.style.listStyle = “none”; o.style.lineHeight = “0.5”; o.style.letterSpacing = “-4px”; o.style.margin = “0”; o.style.padding = “0”; o.style.fontSize = “xx-large”; const reds = document.getElementsByClassName(“red”); for (let red of reds) { red.style.color = “red”; } const blues = document.getElementsByClassName(“blue”); for (let blue of blues) { blue.style.color = “blue”; } </script> |
Pinul 6
În cele din urmă, Pinul 6 nu a dezinfectat intrarea, dar a folosit o politică de securitate a conținutului mai strictă, care interzicea atât CSS, cât și JavaScript inline. Soluția mea a fost să folosesc HTML depreciat pentru a obține stilurile de care aveam nevoie și să folosesc un tabel în loc de o listă:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<table border=“0” frame=“void” rules=“none” cellpadding=“0” cellspacing=“0” width=“100%”> <tr bgcolor=“#00FF00”> <td><font color=“#00FF00” size=“7”>o</font></td> <td><font color=“#00FF00” size=“7”>o</font></td> <td><font color=“#00FF00” size=“7”>o</font></td> <td><font color=“#00FF00” size=“7”>o</font></td> </tr> <tr bgcolor=“red”> <td><font color=“red” size=“5”>o</font></td> <td><font color=“red” size=“5”>o</font></td> <td><font color=“red” size=“5”>o</font></td> <td><font color=“red” size=“5”>o</font></td> </tr> <tr bgcolor=“blue”> <td><font color=“blue” size=“9”>o</font></td> <td><font color=“blue” size=“9”>o</font></td> <td><font color=“blue” size=“9”>o</font></td> <td bgcolor=“red”><font color=“red” size=“9”>o</font></td> </tr> <tr bgcolor=“blue”> <td><font color=“blue” size=“9”>o</font></td> <td><font color=“blue” size=“9”>o</font></td> <td><font color=“blue” size=“9”>o</font></td> <td><font color=“blue” size=“9”>o</font></td> </tr> </table> |
Fântâna lui Glamtariel
Fântâna lui Glamtariel a fost o oportunitate de a practica Atacuri XML External Entity (XXE).. Înțelegerea modului de a defini o entitate XML personalizată, definirea unei entități care solicită un fișier de la server și adăugarea acelei entități ca sarcină utilă la o solicitare HTTP nu a fost greu. Cea mai grea parte a fost să descoperi ghicitorile din joc pentru a ghici calea către fișierele pe care serverul le va scurge. Iată cererea inovatoare care dezvăluie locația inelului de aur:
Aș oferi două lecții învățate din această provocare. În primul rând, utilizați Convertor de tip de conținut extensie în burp pentru a converti încărcăturile utile JSON în XML. În al doilea rând, încercați să plasați încărcătura utilă XXE în diferite etichete – mi-a luat mult timp să îmi dau seama că tot ce trebuia să fac a fost să plasez &xxe; sarcină utilă în reqType eticheta în loc de imgDrop etichetă.
La al patrulea inel.
4. Cloud Ring
Jocul pentru Cloud Ring a fost o incursiune a începătorilor în Interfața de linie de comandă (CLI) Amazon Web Services (AWS).
Punctul culminant al acestui set de provocări a fost utilizarea trufflehog pentru a găsi acreditările AWS într-un depozit Git și apoi exploatarea lor pentru a se autentifica ca utilizator AWS. Un atacator care ajunge în această poziție poate folosi aws iam comenzi pentru a interoga politicile care se aplică utilizatorului și, astfel, ce active cloud pot fi accesate și abuzate.
Trec la al cincilea inel.
5. Inel de foc arzând
Cea mai instructivă parte a acestui set de provocări a fost să înveți despre Merkle Trees să exploateze un contract inteligent și intră pe lista de prevânzare pentru achiziționarea unui token nefungibil (NFT). Aici provocarea a fost să descopăr valorile doveditoare care, împreună cu adresa mea de portofel și valoarea rădăcină a unui Arbore Merkle, au dovedit includerea mea pe lista de prevânzare.
După câteva încercări nereușite de a furniza valori de probă, mi-am dat seama că nu voi putea niciodată să aflu valorile de probă pentru valoarea rădăcină furnizată, deoarece nu exista nicio modalitate de a cunoaște toate valorile frunzelor folosite pentru a o calcula. Trebuia să schimb valoarea rădăcină, astfel încât să pot oferi un Merkle Tree valid.
Utilizarea Instrumentul profesorului QPetabyte, am creat un Merkle Tree din două foi formate din adresa mea de portofel și adresa pentru BSRS_nft contract inteligent, pe care l-am găsit folosind Blockchain Explorer din joc în blocul doi din blockchain-ul Ethereum al jocului. Instrumentul a generat valoarea rădăcină a acestui arbore și valoarea de probă pentru adresa portofelului meu. Apoi am folosit Burp pentru a intercepta cererea către server și am schimbat valoarea rădăcină implicită, astfel încât să pot trimite un Merkle Tree valid. Aici e al meu NFT sporc cumpărat la un preț fix de 100 KringleCoins:
Un exemplar urât într-adevăr.
Final
Le mulțumesc foarte mult organizatorilor SANS Holiday Hack Challenge pentru că mi-au întins mintea în moduri noi și m-au ajutat să-mi aprofundez cunoștințele privind securitatea cibernetică. Nu numai că aștept cu nerăbdare provocarea de anul viitor, dar voi încerca chiar și edițiile din 2020 și 2021 ale acestei provocări. Și dacă nu ați mai participat la această provocare până acum, sper că aceste momente importante v-au stârnit interesul.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. Accesați Aici.
- Sursa: https://www.welivesecurity.com/2023/01/09/cracked-it-highlights-kringlecon-5-golden-rings/
- 1
- 10
- 100
- 11
- 202
- 2020
- 2021
- 2022
- 7
- 9
- a
- Capabil
- Despre Noi
- acces
- accesate
- realizat
- realizarea
- Acțiune
- adăugat
- Suplimentar
- adresa
- După
- Agent
- TOATE
- Permiterea
- Cu toate ca
- Amazon
- Amazon Web Services
- Amazon Web Services (AWS)
- analiză
- analiza
- analiza
- și
- Aplică
- Bunuri
- ataca
- Încercările
- autentifica
- Avatar
- acordare
- AWS
- Rău
- deoarece
- înainte
- fiind
- CEL MAI BUN
- între
- Mare
- Bloca
- blockchain
- Albastru
- au cumpărat
- Branch firma
- Pauză
- izbucni
- Breaking
- descoperire
- construi
- cumpăra
- denumit
- pasă
- Captură
- certificat
- Certificatele
- contesta
- provocări
- Schimbare
- caracter
- verifica
- client
- mai aproape
- Cloud
- cod
- culoare
- comentariu
- comite
- Comun
- Completă
- completarea
- calculator
- efectuarea
- Configuraţie
- Conectați
- Conectarea
- Conexiuni
- Constând
- Recipient
- conține
- conţinut
- contract
- converti
- copiere
- ar putea
- crea
- a creat
- creează
- scrisori de acreditare
- cryptocurrency
- Portofel Cryptocurrency
- CSS
- curios
- personalizat
- Securitate cibernetică
- de date
- Data
- decembrie
- Aprofunda
- Mod implicit
- apărătorii
- definire
- detectat
- Dezvoltatorii
- dispozitiv
- FĂCUT
- .
- diferit
- dificil
- descoperi
- dns
- Docher
- document
- De
- dubla
- câștigat
- cu ușurință
- Punct final
- Securitatea punctului final
- entitate
- intrare
- Mediu inconjurator
- ethereum
- Etanșul blocului
- Chiar
- eveniment
- evenimente
- în cele din urmă
- Executa
- execuție
- Exercita
- Ieşire
- experienţă
- Exploata
- explorator
- extensie
- extern
- puțini
- camp
- Figura
- Fișier
- Fişiere
- final
- Găsi
- descoperire
- First
- Repara
- fixată
- debit
- folie
- următor
- Incursiune
- formă
- format
- Înainte
- găsit
- fântână
- Al patrulea
- din
- Complet
- distracţie
- funcţie
- funcțional
- mai mult
- joc
- Jocuri
- generată
- obține
- gif
- merge
- GitHub
- dat
- Aur
- De aur
- bine
- acordarea
- hack
- hacking
- Greu
- ajutor
- aici
- Ascunde
- Evidențiați
- highlights-uri
- sugestii
- istorie
- Vacanță
- Acasă
- speranţă
- gazdă
- Cum
- Cum Pentru a
- HTML
- HTTPS
- identificat
- in
- În altele
- în joc
- Inclusiv
- includere
- informații
- intrare
- înţelegere
- in schimb
- interes
- interesant
- interfaţă
- introdus
- IP
- Adresa IP
- IT
- JavaScript
- JSON
- Cheie
- chei
- Kicks
- Cunoaște
- cunoştinţe
- Nume
- conduce
- scăpa
- Scurgeri
- învățat
- învăţare
- Lectii
- Lectii invatate
- scrisoare
- Nivel
- Li
- Linie
- linii
- Listă
- listat
- liste
- trăi
- loturile
- situat
- locaţie
- Lung
- perioadă lungă de timp
- Uite
- cautati
- Se pare
- căutare
- Lot
- făcut
- Principal
- malware
- Margine
- potrivire
- materie
- max-width
- sens
- se intalneste
- Memorie
- mesaje
- metodă
- Microsoft
- minte
- monitor
- mai mult
- cele mai multe
- muta
- în mişcare
- Mozilla
- nume
- nano
- nativ
- Navigaţi
- net
- reţea
- trafic de retea
- Nou
- următor
- NFT
- nefungibil
- jeton non-fungible
- North
- oferi
- ONE
- deschide
- de operare
- sistem de operare
- Oportunitate
- comandă
- organizatori
- Altele
- exterior
- proprietar
- parte
- a participat
- participante
- cale
- PHP
- pini
- ţeavă
- conducte
- Loc
- plasare
- plan
- Plato
- Informații despre date Platon
- PlatoData
- Politicile
- Politica
- poziţie
- posibil
- PowerShell
- practică
- presale
- prezentat
- precedent
- preţ
- închisoare
- privilegii
- sondă
- Problemă
- Progres
- proeminent
- dovadă
- s-au dovedit
- furniza
- prevăzut
- furnizează
- de cumpărare
- Împinge
- împins
- Rapid
- repede
- radar
- variind
- realiza
- realizat
- a primi
- primește
- reţetă
- record
- Recupera
- Roșu
- la distanta
- repetat
- depozit
- solicita
- cereri de
- necesar
- reveni
- Dezvăluit
- revelator
- inversa
- Călări
- Inel
- rădăcină
- norme
- Alerga
- alergător
- funcţionare
- script-uri
- Caută
- Al doilea
- secunde
- Secret
- securitate
- serie
- servi
- Servicii
- set
- Distribuie
- Coajă
- să
- parte
- simplu
- pur şi simplu
- singur
- SIX
- inteligent
- contract inteligent
- So
- Moale
- soluţie
- Rezolvarea
- ceva
- Sursă
- cod sursă
- Spaţiu
- Standuri
- şedere
- paşi
- Încă
- stocate
- mai stricte
- stil
- prezenta
- succes
- suspicios
- comutate
- sintaxă
- sistem
- tabel
- TAG
- luare
- TD
- Tehnologii
- test
- Testarea
- Sursa
- Al treilea
- gândit
- trei
- Prin
- timp
- la
- semn
- de asemenea
- instrument
- Unelte
- top
- urmări
- trafic
- Tranzacții
- a declanșat
- în
- actualizarea
- URL-ul
- utilizare
- Utilizator
- validare
- valoare
- Valori
- de
- Video
- joc video
- Portofel
- modalități de
- web
- server de web
- servicii web
- website
- care
- în timp ce
- larg
- voi
- fără
- WordPress
- cuvinte
- Apartamente
- a lucrat
- ar
- scrie
- scris
- XML
- an
- Tu
- Ta
- te
- zephyrnet
- Zip