» »

ASP.Net bad!!

ASP.Net bad!!

denial ::

SELECT finger FROM hand WHERE id=3;

denial ::

SELECT finger FROM hand WHERE id=3;

fiction ::

If the ASP.Net application is using ASP.Net 3.5 SP1 or above, the attacker could use this encryption vulnerability to request the contents of an arbitrary file within the ASP.Net application. The public disclosure demonstrated using this technique to retrieve the contents of web.config. Any file in the ASP.Net application which the worker process has access to will be returned to the attacker.

Hm kako je pa to povezano? Mislim zakaj dostop do datotek kot posledica tega da lahko dekriptiraš stvari? A lahko kdo prosim pove kaj več o tem.

Tudi tisti DotNetNuke napad mi ni najbolj jasen. Mislim zakaj DotNetNuke sploh vrne ciphertext, v katerem je prava vrednost admin cookija, neavtoriziranemu uporabniku?

denial ::

Hm kako je pa to povezano? Mislim zakaj dostop do datotek kot posledica tega da lahko dekriptiraš stvari? A lahko kdo prosim pove kaj več o tem.

The attack that was shown in the public relies on a feature in ASP.NET that allows files, which are secured with a key that is sent as part of the request, to be downloaded. Unfortunately if you are able to forge a key you can use this feature to download the web.config file. (Vir: Scott Guthrie blog)

Tudi tisti DotNetNuke napad mi ni najbolj jasen. Mislim zakaj DotNetNuke sploh vrne ciphertext, v katerem je prava vrednost admin cookija, neavtoriziranemu uporabniku?

Yea, there's always a catch, isn't it :| IMO, gre za BF/try-and-fail, ker je napad pogojen s 400 oz. 500 HTTP errorji.
SELECT finger FROM hand WHERE id=3;

Zgodovina sprememb…

  • spremenil: denial ()

fiction ::

denial je izjavil:

The attack that was shown in the public relies on a feature in ASP.NET that allows files, which are secured with a key that is sent as part of the request, to be downloaded. Unfortunately if you are able to forge a key you can use this feature to download the web.config file. (Vir: Scott Guthrie blog)
Aha, sem šele zdaj videl. Komentarjev nisem šel brat v celoti. Ok, ampak še vedno me zanima kakšen čuden feature je to. Se pravi ti pošlješ request z nekim magic ključem in dobiš nazaj kar katerikoli fajl in to naredi že direktno ASP.NET engine, ne kakšen vulnerable page? Je to kje dokumentirano?

denial je izjavil:

Tudi tisti DotNetNuke napad mi ni najbolj jasen. Mislim zakaj DotNetNuke sploh vrne ciphertext, v katerem je prava vrednost admin cookija, neavtoriziranemu uporabniku?

Yea, there's always a catch, isn't it :| IMO, gre za BF/try-and-fail, ker je napad pogojen s 400 oz. 500 HTTP errorji.
Hm? Ja no padding oracle napad je neke vrste bruteforce, samo da ne poskušaš vsakič dešifrirati vse, ampak to lahko delaš bajt po bajt od zadaj naprej. Kot pri vislicah imaš nekoga, ki ti pove, ko si uganil črko. Največ 256 poskusov pa veš kaj je zadnji bajt in greš naprej. Ampak če pogledaš tisti video od 1:36 naprej, vidiš nek WebResource.axd.

WebResource.axd is the new Handler that enables control and page developers to download resources that are embedded in an assembly. This is a valuable and welcome tool, since control developers may want to include a javascript file (.js) or images (.jpg, .gif) for their controls and there is now a built-in method to access these.
(vir)

Ok, se pravi z WebResource.axd lahko dobiš nekaj kar je embeddano v assembly. In parameter d je šifriran assembly identifier. Ampak potem na koncu pa, če nastaviš .DOTNETNUKE cookie v plain-text od tega d-ja, dobiš kar super user access. Kako to?

fiction ::

Uf, vse skupaj je očitno povezano z Forms Authentication in ASP.NET 2.0, ne s samim DotNetNuke. Ta authentication cookie je zašifriran s ključem iz machineKey.

Tisti d iz WebResource.axd pa očitno uporablja isti algoritem in isti ključ. Zdej pa sklepam, da poznaš pravo ime assemblya (plain-text od d) in te Padding Oracle napad zanima samo za to, da ugotoviš ključ.

Ko imaš machineKey pa lahko sam zašifriraš authentication cookie. Tja not napišeš, da si superuser in server ti, ker je tisto pravilno zašifrirano verjame, da ti je on sam dal ta cookie. POET zgleda vse te korake avtomatizira in ti kar da JS kodo za nastavljanje .DOTNETNUKE cookija.

To ima vsaj malo smisla. Če ima kdo kakšno boljšo razlago naj pa prosim pove...

OMG. Vse skupaj torej pomeni, da je ranljiva praktično vsaka ASP.NET aplikacija, ki uporablja standarden način prijave! Če na prosto dostopni strani vrže ven nekaj šifriranega, bog ne daj da uporabi kar embeddane resurse, je zadeva takoj ownana. Sicer moraš pa imeti uporabniški račun. Prijaviš se kot A. Iz svojega cookija izračunaš machineKey. Zdaj lahko svoj kriptiran cookie "spreminjaš", napišeš not B pa si za aplikacijo B. Pri čemer je ponavadi najbolj elegantno, če je B kar admin oz. uporabnik z največ pravicami.

denial ::

Another mitigation: KLIK
SELECT finger FROM hand WHERE id=3;

denial ::

OOB patch comming: KLIK
SELECT finger FROM hand WHERE id=3;

noraguta ::

Pust' ot pobyedy k pobyedye vyedyot!

denial ::

Not yet :D

Sedaj je potrebno popravek še namestiti. Trenutno so javno objavljena najmanj tri orodja, ki uspešno izvedejo padding oracle napad. Temu dodaj še trditev raziskovalcev, da metode zmanjševanja učinka (mitigation) ki jih je objavil MSFT niso učinkovite.
SELECT finger FROM hand WHERE id=3;


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

jquery ajax webservices asp.net

Oddelek: Izdelava spletišč
141173 (988) sas084
»

Internetna stran in domač server

Oddelek: Omrežja in internet
173314 (3150) Seljak
»

Microsoft izdal brezplačni WebMatrix

Oddelek: Novice / Ostala programska oprema
126327 (4772) CaqKa
»

Izbira CMS

Oddelek: Izdelava spletišč
272182 (1703) Gandalfar
»

ASP.NET opensource e-trgovina

Oddelek: Izdelava spletišč
5860 (860) xeon

Več podobnih tem