Jump to content
shark0der

XSS Filter Bypass

Recommended Posts

Posted (edited)

Story: Gigel si-a facut propriul client de email. Incercati sa treceti de filtrul XSS care filtreaza campul "to" si "subject".

Mesajul ("message") nu se ia in considerare pentru ca ne intereseaza codul sa se execute imediat ce Gigel deschide inboxul (este ignorat de server de fapt, nu are rost sa-l modificati).

URL: Challenge-ul se afla aici.

Rules: Castigatorul trebuie sa posteze screenshot in care sa se vada numele sau (in alert de exemplu) + message id ca sa pot verifica.

Winers: -

====

Edit: am reparat eroarea "Error: something is broken. That's all I know :|". Va rog sa ma anuntati daca se mai intampla.

====

Edit 2: am facut un cron care verifica daca nu apare eroarea si o repara in caz de e :P . E o solutie mai taraneasca ca de fapt ar trebui sa repar problema din radacina, dar lucreaza :D

You're all invited now!

====

Update: Daca mai primiti eroare, e din cauza ca nu ati trecut de filtru (vedeti discutiile de mai jos). Punct.

Edited by shark0der
Posted (edited)

//Removed

uite filtrul :D revin cu edit

daca pui simplu simbolul [<] scriptul ignora tot ce e in fata lui ,

daca pui < ii da display normal [<] , nu-l ruleaza ,

url-encode+< ii da display ca atare [<] (same for html-entities)

g %3C igel

unde sursa:

g < igel

acesta este outputul care-l primesc dupa ce dai url-encode de doua ori la [<].

verdict : nu se poate trece de filtru [html injection]

[am incercat mult mai multe dar nu le pub pe toate :D]

nu le am cu javascript

+ce-ai vazut tu shark0der a fost dupa ce am dat manual POST:to=a&subject=a

Edited by abraxyss
Posted (edited)

Ascunde te rog rezultatul ca sa nu fie mai usor pentru altii :P

EDIT: @abraxyssE valabila chestia care ai gasit-o? Te-am gasit in loguri dupa msg_id-ul postat inital, dar:

1. sau nu am logat eu bine datele

2. sau ceea ce ai gasit tu nu merge

Ai gasit pana la urma sau nu?

Edited by shark0der
Posted

Nu incercam sa te atac, doar spuneam ce am vazut in loguri:

tzF51.png

Ora serverului e +4. Mesajul tau era postat la 17:54. Tu din cate se vede folosesti Opera. Tragem concluziile.

Inchidem discutia asta pentru ca este inutila.

Totusi ca sa iti dau dreptate si tie: daca primesti eroare, e din cauza ca filtrul iti sterge continutul, si variabila ramane empty, de aici si eroarea.

Ca sa verifici ca de fapt e din cauza filtrului si nu a serverului, incerci sa trimiti "x" si "y" in campuri, si vei vedea ca merge de fiecare data. Edit: Voi face update si la postul initial, ca sa fie clar tuturor.

Posted (edited)

Mi se pare imposibil sa treci de filtru cand orice caracter 'lipit' de < nu este vizibil... , Si modul in care tu afisezi 'scriptul' mie imi pare impenetrabil:

< script >alert(1)</ script>

PS: am despertit < de restul caracterelor ca sa fie afisat

De curiozitate, tu ai reusit sa faci un bypass la el?:D

Edited by eusimplu
Posted

@abraxyss: Din moment ce htmlspecialchars($text, ENT_QUOTES, 'utf-8'); e cunoscut ca bulletproof nu prea vad rostul sa fac ceea ce zici tu.

Challenge-ul a fost mai mult un experiment pentru a valida o idee (o platforma de challenge-uri ca sa fiu mai exact si sa nu spuna cineva ca vorbesc bullshit-uri). Din pacate nu a fost prea activa lumea (~2000 de request-uri in 2 saptamaini), dar vedem.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...