• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

Microbe – extensie pentru Chrome „Made în România” ce testează vulnerabilități web

0
  • Publicat de Andrei Avădănei
  • în Browser · Javascript, Ajax, jQuery · Open Source
  • — 12 apr., 2014 at 11:22 am

Microbe este o extensie pentru Google Chrome destinată celor care se ocupă cu testarea vulnerabilitaților web, deși poate fi folosită și cu alte scopuri, precum editarea cookie-urile, codare/decodarea șirurilor în diverse ciphere sau dezactivarea history.

Cum una dintre cele mai cunoscute și distructive metode de atac la ora actuală este SQL injection, în Microbe s-a pus accentul pe acest tip de atac și s-au implementat anumite shortcode-uri pentru facilitarea unui astfel de atac, dar asta nu limitează extensia la acesta.

featured_image

Instalare și accesare

Microbe se află în store-ul oficial Google la adresa: chrome.google.com/webstore/detail/microbe/khejlnipbheaalinebbiadhmajjlmdil

Dupa ce ați apăsat butonul de instalare și i-ați acordat permisiunile necesare pentru a rula, îl puteți deschide apăsând pe pagină click dreapta și selectând „Inspect Element”. In partea dreaptă, în navigatorul din fereastra ce tocmai s-a deschis, veți observa un link nou numit „Microbe”.

Din păcate Google nu permite deschiderea unei extensii Developer Tools dintr-un buton, din motive de siguranță, de asta trebuie să treceți prin Inspect Element prima oară. Dacă în viitor se va permite, va fi adăugat un astfel de buton la îndemană.

Structura extensiei și metode de utilizare

Current Request

current_request

Aici se întamplă cele mai multe lucruri, se pot altera parametrii GET, cei POST dar și headerele trimise, cum ar fi user-agent-ul sau referer-ul.

Toolbar-ul de sus are aplicabilitate pe căsuțele GET și POST. De asemenea, acestea au implementat un sistem de history (CTRL + Z, CTRL + Y sau CTRL + SHIFT + Z) personalizat, pentru o eficiență sporită.

Primul buton: „Load„, încarcă datele despre pagina inspectată; URL-ul și headerele acesteia. Acesta, ca și restul de butoane din acel toolbar, are atribuită o scurtatură: ALT + A. Vă puteți da seama de aceste scurtături dacă vă uitați după caracterul subliniat de pe fiecare buton.

Următorul buton: „Split„, se folosește pentru sporirea lizibilității URL-ului modificat sau a datelor POST, astfel acesta trimite toți parametrii în rândul lui. Exemplu:

Din:

http://exemplu.ro/pagina.php?cat=6&id=2&filtru=34&i=5

Odată apăsat butonul, primim:

http://exemplu.ro/pagina.php
?cat=6
&id=2
&filtru=34
&i=5

Astfel ne putem concentra pe ce avem de făcut mai usor, și anume construirea unei sintaxe de exploatare, fără a fi distrași prea tare de ce este în jur.

De menționat că se pot adăuga câte linii noi doriți, nu există o limită pentru că atunci când URL-ul este executat, acestea vor fi șterse automat, deci URL-ul final nu este afectat cu nimic, liniile fiind doar pentru aspectul estetic.

Butonul „Execute” este cel care trimite datele modificate într-un nou request. Absolut tot ce ați modificat la Current Request și Cookies Manager va fi executat odată cu apăsarea lui.

în continuare, avem câteva unelte aplicabile pe selecții de text, majoritatea sunt pentru codarea și/sau decodarea unui text în diferite ciphere.

Prima listă definește din ce cipher se va face codarea/decodarea, plain insemnând „text clar”.

Butonul „to” este pentru schimbarea mai eficientă a cipherelor între ele. De exemplu, dacă aveți Plain to HEX, odată cu apăsarea lui, acestea se vor schimba între ele, devenind: HEX to Plain.

Următoarea listă conține cipherul în care se va face codarea/decodarea. A se observa și MD5, SHA1 și SHA256 de la finalul listei, care servesc la calcularea unui hash pentru textul selectat.

Microbe a fost gândit să aplice aceste codări/decodări în trei situații diferite:

  1. Când se detectează o schimbare în a doua listă
  2. Când este apăsat butonul „to”
  3. Când este apăsat butonul „Go”

Butonul „Go” este folositor doar dacă nu este îndeajuns o singură codare/decodare și doriți să o repetați.

Butoanele „Commas” și „Spaces” au rolul de a elimina virgulele, respectiv spațiile din textul selectat. Acestea au fost introduse pentru că unele ciphere, de exemplu: Plain to HEX, produc un astfel de rezultat: 73 74 72 69 6e 67, iar dacă nu aveti nevoie de spații între caractere, de exemplu pentru a coda un string fără ghilimele pentru MySQL, acestea sunt folositoare.

Butonul „Copy” copiază pur și simplu textul selectat în clipboard.
–

Sub acest toolbar vom mai găși casuța intitulată GET, în care puteți modifica URL-ul în sine și alte patru elemente puțin mai complexe.

Replacers permite modificarea elementelor din GET, din nou, pentru a nu îngreuna lizibilitatea.

Să presupunem că întampinăm un WAF (Web Application Firewall), adică un script în backend ce ne modifică inputul, în incercarea de a-l sanitiza, astfel încat sa nu ajungă așa cum îl trimitem in SQL și să presupunem ca acest WAF elimina pur și simplu spatiile. Asta înseamna că dacă avem o sintaxa de genul:

id=1' order by 2-- -

Aceasta va deveni, după procesarea din backend:

id=1'orderby2---
Ceea ce rezultă într-o sintaxă eronată și sigur ori aplicația SQL va returna o eroare, ori backend-ul în sine.

Acum, ca să trecem peste acest pas, trebuie să înlocuim spațiile cu alte caractere pe care nu le filtrează, să zicem: /**/

Dacă am introduce aceste caractere direct în sintaxa noastră, nu am mai înțelege mare lucru, astfel aici intervine această funcționalitate de la „Replacers”. Dacă trecem la „Spaces” /**/ toate spațiile vor fi înlocuite cu /**/, dar, partea frumoasă este că noi nu vedem asta în câmpul GET pentru că schimbarea se va aplica în momentul în care apăsam butonul Extecute, deci ne putem concentra pe sintaxă pentru ca lizibilitatea este aceeași.

Câmpurile „Regex” sunt exact ce se prezintă a fi, puteți aplica același lucru ca mai sus dar folosind instrucțiuni regex.

Să presupunem din nou că am întalnit un WAF, dar de data aceasta acestă ne șterge efectiv cuvintele cheie „select” și „from”. Ca să încercam mai ușor să trecem peste acest WAF ne putem folosi de aceste câmpuri Regex astfel:

Introducem în primul camp:

(select|from)

Și în al doilea:

/*!$1*/

Notă: Daca nu știti nimic despre regex, vă recomand să citiți acest tutorial.

Acesta va modifica toate cuvintele „select” și „from” din sintaxă noastră cu „/*!select*/” și „/*!from*/”. Se poate folosi în nenumărate cazuri această funcționalitate, doar imaginație să aveți.

–

View Headers permite vizualizarea requestului precedent și modificarea acestuia pentru a crea unul nou, după bunul plac. Se poate adăuga conținut POST, se poate schimba tipul de request și tot ce se află la „Request Headers”, de asemenea, se pot adăuga headere noi, custom.

Cum am spus mai sus, toolbar-ul de sus are efect și pe căsuta de POST de aici, la fel și shortcode-urile de jos, la care vom ajunge în scurt timp.

Pentru a modifica ceva de la „Request Headers” pur și simplu selectați conținutul și schimbați-l pentru că totul se află într-un <input> propriu și apoi apăsați Execute.

–

Retriever este din nou un feature foarte important, dacă știți cum și cand să îl folositi. Această opțiune, parsează linie cu linie, în codul sursă al paginii inspectate, ceea ce introduceți în câmpul dat. Aceleași reguli de regex se aplica și aici.

Am întalnit cazuri în care eroarea ce ne ajuta să ne dăm seama daca o porțiune a unui site este vulnerabilă apare în codul sursă comentată și am intalnit cazuri în care exista foarte mult text, pe lângă alte tipuri de conținut, înainte de eroare, asa că aici devine folositoare această functionalitate.

Exemplu: Daca vrem să returnăm toate erorile din pagină, tot ce trebuie să scriem este:

.*error.*

Iar dacă exista o astfel de linie în sursă, va fi returnată și ne va fi la îndemana, nu va mai trebui sa stăm să dăm scroll dupa ea sau să ne uitam în sursă după fiecare request.

Și în acest caz, limita este imaginația, puteți descoperi combinații „magice” care să vă ajute în orice situație. Din punctul meu de vedere, acest retriever este extrem de folositor celor ce caută vulnerabilități de tip XSS, pentru că mai mereu trebuie să se uite în sursă după șirul introdus să vadă unde a apărut, iar acest feature poate fi de folos.

–

Shortcodes, deși am lasat această componenta la final, nu este deloc de neglijat, ba chiar este extrem de folositoare. Aici veti găsi fiecare shortcode valabil și utilizabil în campurile GET și POST. Există shortcode-uri pentru aproape toate funcționalitațile din toolbar și mai mult de atât.

Să presupunem că avem un input care primește conținut codat în Base64, pe care mai apoi, în backend îl decodează și îl folosește normal. Dacă am vrea să testăm acest câmp, ar trebui să scriem sintaxa și apoi să o codăm în Base64 de fiecare dată, nu? Ei bine, nu. Considerati exemplul următor:

http://exemplu.ro/base64`1 and false`

Ce se întamplă aici? E simplu și, zic eu, destul de intuitiv, textul delimitat de caracterul ` este encodat în Base64. Din nou, și aceasta funcționalitate este aplicată în momentul executării, ca voi să nu vă pierdeți timpul codând/decodând mereu sintaxele încercate. Ca să ducem exemplul la bun sfarșit, cam asa va arăta URL-ul executat:

http://exemplu.ro/MSBhbmQgZmFsc2U=

Simplu, nu? Același lucru îl puteți aplica pentru toate funcțiile de codare/decodare/hashing din toolbar. Aveți toate acestea, plus exemple de rezultate, la „Shortcodes”.

Pe lângă funcțiile de codare, mai există un element foarte folositor, scurtarea injecțiilor ce au prea multe coloane. Mă refer la acele injecții în tabele cu peste 30-40 de coloane, care vă forțează să introduceți un cârnat de numere nefolositoare și care mai tare vă încurcă în dezvoltarea injecției finale.

Aici intervine caracterul ~ cu functia s-a speciala, acesta, dacă este așezat între două numere întregi (a, b) și dacă „a” este mai mic decât „b”, servește la adiția automată a unui șir de numere de la „a” la „b”, despărțite de virgule. De exemplu:

1~7,database(),9~27

Va deveni, în momentul executării:

1,2,3,4,5,6,7,database(),9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27

Yet again, voi nu veți vedea rezultatul decât în browser, în URL, în campurile GET sau POST, veți avea o sintaxă foarte scurtă care vă va scăpa de disconfortul de a dezvolta o sintaxă printre foarte multe numere cărora nici n-ar trebui să le acordați atenție.

Pe lângă aceastea, mai există și trei functii de codare a string-urilor atunci când simbolurile ghilimele sau apostrof sunt filtrate, pe lângă HEX. Sunt trei pentru că există trei DMBS-uri diferite: MySQL, MSSQL și Oracle.

Exemplu pentru MySQL:

mychar`string`

Va rezulta în:

CHAR(115,116,114,105,110,103)

Toate cele discutate se regăsesc la „Shortcodes”.

HTTP Headers

http_headers
Aici vom regăsi toate requesturile făcute de de la deschiderea extensiei și până în momentul de față. Aceasta are legătura exclusiv cu pagina inspectată, nu vor apărea requesturi de la alte componente ale browserului care să vă încurce.

Până aici funcționează ca tabul Network din Developer Tools, dar ce-ar fi dacă v-aș spune că puteți edita orice request doriți de aici după bunul plac? Ba mai mult, îl puteți aduce la „Current Request” ca să-l editați în întreaga lui splendoare, de cate ori vreti.

Dacă faceți click pe un request, veți avea acces la toate detaliile sale și le veți putea edita, exact ca la Current Request. Sub detaliile fiecărui request veti gași două butoane, unul „Send Modified Request„, care vă permite să trimiteți același request după ce l-ați modificat, sau „Add to Current Request” care va copia detaliile requestului la Current Request. Acest ultim buton este util daca vreți să modificați datele trimise prin POST mai ușor.

În partea de sus a tuturor request-urilor aveți câteva posibilităti de a le filtra, de a stopa adiția de noi requesturi sau de a le șterge pe toate primite deja.

Cookie Manager

cookies
Această zonă nu este exclusivă pe pagina inspectată, cum sunt primele doua secțiuni, așa că o puteți folosi chiar dacă nu sunteți pentesteri sau pasionați de securitate.

Fiecare rând reprezintă un cookie și contine toate detaliile care pot fi schimbate pentru aceasta. În partea de sus, din nou, aveți posibilitatea de a le filtra. Daca ștergeți ce e la „Domain”, veți putea vizualiza absolut toate cookie-urile salvate de browser.

Fiecare cookie are butoanele lui de salvare, ștergere sau restabilire, dar și în partea de jos, după toate cookie-urile listate, mai există trei butoane.

„Add New” va permite adiția unui nou cookie. „Remove All” va permite ștergerea tuturor cookie-urilor listate, iar „Reload” pur și simplu execută un refresh, în caz că ați editat ceva în alt tab și schimbările nu s-au făcut și in cel curent.

Form Handler

forms
Aici veți găsi toate formularele din pagina inspectată, la care aveți acces să le editați după bunul plac. Pentru a selecta unul, faceți un simplu click și se vor deschide opțiunile pe care le aveți.

Puteți modifica toate input-urile prezente, puteți adăuga altele noi sau le puteti șterge.

De asemenea, ca și la Cookie Manager, aveți un buton „Reload” în partea de jos în caz că aveți nevoie de el.

Miscellaneous

Toate opțiunile din secțiunile de aici sunt valabile la nivel global, nu mai au legatura doar cu pagina curentă.

Krypton

krypton
Krypton este un tool de encoding/decoding în diferite ciphere. Este implementat pentru a putea coda/decoda șiruri chiar dacă nu aveți treabă cu ce se află la „Current Request”. S-ar putea spune ca este un tool individual intr-un tool mai mare (Microbe).

Codarea se face în timp real, așadar pentru codarea unui șir de caractere pur și simplu introduceti șirul în campul „Plain”. Implicit va fi codat în Base64, dar în timp ce selectați alte taburi din partea dreaptă, textul va fi re-codat în ce doriți. De asemenea, ca să decodați, doar inserați șirul codat direct în zona din partea dreapta, la categoria potrivită și acesta va fi decodat corespunzator.

Există și opțiunea „Remove Duplicates” în partea stângă, dacă vreți să stergeți liniile ce se repetă dintr-un șir.

Proxy Manager

proxies
Aici puteți seta un proxy pentru browser. Îl puteți folosi și cu TOR, de asta e trecut acolo în mod implicit.

Ca să activați un proxy adăugat, trebuie să bifati checkbox-ul de la „Activate” și să apăsați Save urmând apoi să bifați Enable Proxy Manager de jos.

Partea ce mai frumoasă la această categorie este că puteți să activați mai multe proxy-uri în același timp și vor fi folosite în funcție de disponibilitate. Adică atunci când pică unul, va trece automat la următorul. Sigur că veți fi anuntati când se întamplă asta prin notifier-ul din Google Chrome.

Overrides & Disablers

overrides
De aici puteți dezactiva cookie-urile, javascript, plugin-urile browser-ului, popup-urile, CSS, imaginile sau notificările. Acestea fiind pentru pagina curentă.

De asemenea, la nivel global, puteți dezactiva history și să setati un User Agent.

Filter Evasion & Prepared Statements

Aici au fost introduse câteva sintaxe dintre cele mai folosite pentru a exploata mai usor o vulnerabilitate de tip SQL injection, alături de câteva metode de bypass pe anumite cuvinte cheie.

Despre autor

Microbe a fost dezvoltat de Cosmin Gheorghita, un tânăr de doar 19 ani ce este pasionat de tehnologiile web precum PHP și Javascript. Pe lângă cunoștințele web, Cosmin are experiență în graphic design (branding, pe lângă Web layout design) folosind Adobe Photoshop și Adobe Illustrator.

Concluzie

Microbe nu este una dintre acele extensii care au fost scrise și lasate asa, va suferi update-uri frecvente și cu siguranta va fi îmbunătățită, dar pentru asta este nevoie de intervenția voastră prin raportarea bug-urilor sau sugerarea de noi funcționalități. Puteți să lăsati un comentariu aici, dar există modalități de contact în extensie, dacă apăsați pe „?!” de lânga „Manipulation”.

Etichete: Chromeextensie de chromemicrobemicrobe extensie chromepentest in chromeplugin de chrome pentestTehnictesteaza vulnerabilitati in chrome

— Andrei Avădănei a scris 1246 articole

Andrei scrie pe worldit.info din vara lui 2011. Este fondatorul Asociatiei Centrul de Cercetare in Securitate Informatica din Romania - CCSIR si coordoneaza DefCamp, cea mai importanta conferinta de securitate informatica & hacking din Europa Centrala si de Est. Andrei ofera in cadrul Bit Sentinel servicii de securitate informatica, penetration testing, security management, recuperarea de pe urma unui atac cibernetic, training-uri si workshop-uri.

  • Articolul anterior Talks #42 – Bitcoin, securitate și SQL Server
  • Articolul următor Concursul Național de Creativitate Digitală ExplorIT Bacau : 8-11 mai 2014

  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    [wp_rss_retriever url="https://rohacked.bit-sentinel.com/feed/" excerpt="none" items="5" read_more="false" new_window="true" thumbnail="false" cache="0"] RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • martie 2023
    L Ma Mi J V S D
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
    « dec.    
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Tehnic
  • Browser
  • Microbe – extensie pentru Chrome „Made în România” ce testează vulnerabilități web
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons