<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Komentarze do: Jak zabezpieczyć skrypt PHP/MySQL? Część 2: luki Local File Include (LFI) i Remote File Include (RFI)</title>
	<atom:link href="http://m1chu.eu/2008/10/19/jak-zabezpieczyc-skrypt-php-czesc-2-luki-local-file-include-lfi-i-remote-file-include-rfi/feed/" rel="self" type="application/rss+xml" />
	<link>http://m1chu.eu/2008/10/19/jak-zabezpieczyc-skrypt-php-czesc-2-luki-local-file-include-lfi-i-remote-file-include-rfi/</link>
	<description>we live, as we dream... alone - another devblog</description>
	<lastBuildDate>Mon, 16 Jan 2012 21:03:44 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	<item>
		<title>Autor: Jak zabezpieczyć skrypt PHP/MySQL? Część 2: luki Local File Include (LFI) i Remote File Include (RFI) - develway.pl</title>
		<link>http://m1chu.eu/2008/10/19/jak-zabezpieczyc-skrypt-php-czesc-2-luki-local-file-include-lfi-i-remote-file-include-rfi/comment-page-1/#comment-6283</link>
		<dc:creator>Jak zabezpieczyć skrypt PHP/MySQL? Część 2: luki Local File Include (LFI) i Remote File Include (RFI) - develway.pl</dc:creator>
		<pubDate>Tue, 21 Sep 2010 20:05:09 +0000</pubDate>
		<guid isPermaLink="false">http://m1chu.eu/?p=134#comment-6283</guid>
		<description>[...] wiadomości z tego serwisu       Follow us on Twitter 71 śledzących RSS Feed 394 czytelników     Jak zabezpieczyć skrypt PHP/MySQL? Część 2: luki Local File Include (LFI) i Remote File Include ...     1   głosuj!    Praktycznie każdy dynamicznie generowany system oparty o rozwiązania [...]</description>
		<content:encoded><![CDATA[<p>[...] wiadomości z tego serwisu       Follow us on Twitter 71 śledzących RSS Feed 394 czytelników     Jak zabezpieczyć skrypt PHP/MySQL? Część 2: luki Local File Include (LFI) i Remote File Include &#8230;     1   głosuj!    Praktycznie każdy dynamicznie generowany system oparty o rozwiązania [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Jak zabezpieczyć skrypt PHP/MySQL? Część 2: luki Local File Include (LFI) i Remote File Include (RFI) &#124; www.webu.pl</title>
		<link>http://m1chu.eu/2008/10/19/jak-zabezpieczyc-skrypt-php-czesc-2-luki-local-file-include-lfi-i-remote-file-include-rfi/comment-page-1/#comment-5194</link>
		<dc:creator>Jak zabezpieczyć skrypt PHP/MySQL? Część 2: luki Local File Include (LFI) i Remote File Include (RFI) &#124; www.webu.pl</dc:creator>
		<pubDate>Tue, 22 Jun 2010 11:31:16 +0000</pubDate>
		<guid isPermaLink="false">http://m1chu.eu/?p=134#comment-5194</guid>
		<description>[...] m1chu.eu &#8211; another devblog » Server-side  Tagi: Część, File, Include, Local, luki, PHP/MySQL, Remote, Skrypt, zabezpieczyć [...]</description>
		<content:encoded><![CDATA[<p>[...] m1chu.eu &#8211; another devblog » Server-side  Tagi: Część, File, Include, Local, luki, PHP/MySQL, Remote, Skrypt, zabezpieczyć [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: m1chu</title>
		<link>http://m1chu.eu/2008/10/19/jak-zabezpieczyc-skrypt-php-czesc-2-luki-local-file-include-lfi-i-remote-file-include-rfi/comment-page-1/#comment-5148</link>
		<dc:creator>m1chu</dc:creator>
		<pubDate>Wed, 02 Dec 2009 23:23:47 +0000</pubDate>
		<guid isPermaLink="false">http://m1chu.eu/?p=134#comment-5148</guid>
		<description>Witam,

Jeżeli te katalogi, które wypisałeś są ścieżkami do osobnych kont użytkowników, na jednym serwerze, to kwestią zabezpieczenia ich powinien zająć się administrator serwera (tak, aby jeden użytkownik nie miał dostępu do folderu drugiego).

Kiedy jednak są to dwie ścieżki, na jednym koncie, sytuacja się komplikuje. Tak jak napisałeś, możesz pobawić się prawami dostępu, czy nawet &lt;strong&gt;.htaccess&lt;/strong&gt; i przykładowo &lt;code&gt;order deny,allow&lt;/code&gt; [...]. Problem w tym, że jeżeli ktoś uzyska dostęp do plików serwera poprzez jakiś dziurawy skrypt, to pobierając jakikolwiek inny plik PHP może w 99% przypadków bez problemu rozgryźć każde zabezpieczenie oparte stricte na tym języku. Chyba, że użyjesz jakiegoś szyfratora kodu w stylu &lt;strong&gt;ionCube&lt;/strong&gt;, czy zaciemniacza takiego jak &lt;strong&gt;phpobfuscator&lt;/strong&gt;. Ciut inaczej sprawa wyglądać będzie, jeżeli agresor nie będzie miał możliwość wylistowania, czy przejrzenia listy Twoich plików. Wtedy kluczową sprawą jest sam kod serwisu który może zostać zaatakowany. Wiadomo przecież, że jeżeli includeujemy pliki poprzez adresy typu &lt;code&gt;index.php?page=test&lt;/code&gt; to łatwiej trafić, gdzie i w jakiej postaci znajduje się dany plik, niż chociażby, gdy wywołanie następuje jako &lt;code&gt;index.php?page=1&lt;/code&gt;. Są to jednak kwestie pośrednie i zależne od sytuacji.

Dlatego uważam, że w tym konkretnym wypadku (pierwszym z wymienionych) przede wszystkim należy zabezpieczyć serwer od strony administracyjnej. A tu najlepiej jakby wypowiedział się na ten temat ktoś, kto zajmuje się tym na co dzień, a nie hobbistycznie, od święta jak ja :]

Pozdrawiam,
m1chu</description>
		<content:encoded><![CDATA[<p>Witam,</p>
<p>Jeżeli te katalogi, które wypisałeś są ścieżkami do osobnych kont użytkowników, na jednym serwerze, to kwestią zabezpieczenia ich powinien zająć się administrator serwera (tak, aby jeden użytkownik nie miał dostępu do folderu drugiego).</p>
<p>Kiedy jednak są to dwie ścieżki, na jednym koncie, sytuacja się komplikuje. Tak jak napisałeś, możesz pobawić się prawami dostępu, czy nawet <strong>.htaccess</strong> i przykładowo <code>order deny,allow</code> [...]. Problem w tym, że jeżeli ktoś uzyska dostęp do plików serwera poprzez jakiś dziurawy skrypt, to pobierając jakikolwiek inny plik PHP może w 99% przypadków bez problemu rozgryźć każde zabezpieczenie oparte stricte na tym języku. Chyba, że użyjesz jakiegoś szyfratora kodu w stylu <strong>ionCube</strong>, czy zaciemniacza takiego jak <strong>phpobfuscator</strong>. Ciut inaczej sprawa wyglądać będzie, jeżeli agresor nie będzie miał możliwość wylistowania, czy przejrzenia listy Twoich plików. Wtedy kluczową sprawą jest sam kod serwisu który może zostać zaatakowany. Wiadomo przecież, że jeżeli includeujemy pliki poprzez adresy typu <code>index.php?page=test</code> to łatwiej trafić, gdzie i w jakiej postaci znajduje się dany plik, niż chociażby, gdy wywołanie następuje jako <code>index.php?page=1</code>. Są to jednak kwestie pośrednie i zależne od sytuacji.</p>
<p>Dlatego uważam, że w tym konkretnym wypadku (pierwszym z wymienionych) przede wszystkim należy zabezpieczyć serwer od strony administracyjnej. A tu najlepiej jakby wypowiedział się na ten temat ktoś, kto zajmuje się tym na co dzień, a nie hobbistycznie, od święta jak ja :]</p>
<p>Pozdrawiam,<br />
m1chu</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Michał</title>
		<link>http://m1chu.eu/2008/10/19/jak-zabezpieczyc-skrypt-php-czesc-2-luki-local-file-include-lfi-i-remote-file-include-rfi/comment-page-1/#comment-5140</link>
		<dc:creator>Michał</dc:creator>
		<pubDate>Thu, 26 Nov 2009 02:32:53 +0000</pubDate>
		<guid isPermaLink="false">http://m1chu.eu/?p=134#comment-5140</guid>
		<description>Witaj,
Zastanawia mnie jak zabezpieczyć się przed następującą formą ataku:
Mamy na serwerze Mój skrypt w katalogu
/.../mojSkrypt

Niestety na tym samym serwerze znajduje się Ich skrypt w katalogu:
/.../ichSkrypt

Jak się okazuje Ich skrypt jest podatny choćby na AFD. W ten sposób zawartość mojego skryptu przed światem stoi otworem.
Podejrzewam, że jeśli dobrze poustawiam chmody, skrypty nie będą mogły się czytać, a jedynie wykonywać (co nadal mi nie odpowiada).
Umieśćmy sobie na moim serwerze plik: /.../mojSkrypt/index.php, który będzie includował pozostałe skrypty. Aby zapewnić sobie, że skrypty nie są uruchamiane bezpośrednio (czy, że ktoś w przyszłości przenosząc mój skrypt nie zapomni poustawiać chmodów) dodajmy na początek skryptu w index.php:
define (&quot;TO_MOJ_SKRYPT&quot;, true);
I w pliku skryptu właściwego (includowanego) w skrypt.php:
if (TO_MOJ_SKRYPT != true)
  exit;
Faktycznie uruchomić mój skrypt bezpośrednio jest ciężko. No ale ktoś może skorzystać z Ich skryptu w sposób następujący:
1. Wgrać plik php do niezabezpieczonego katalogu:
/.../ichSkrypt/tmp/skrypt.php
o następującej zawartości:
define (&#039;TO_MOJ_SKRYPT&#039;, true);
include &#039;../../mojSkrypt/skrypt.php&#039;;
W tym momencie bezpieczeństwo od strony PHP zupełnie leży. W takiej sytuacji pozostaje jedynie sprawdzanie czy $_SERVER[&#039;PHP_SELF&#039;] (czy czegoś w tym stylu) jest ustawione na /.../mojSkrypt/index.php. No ale każdy przyzna, że taki wpis we wszystkich plikach includowanych jest kiepskim rozwiązaniem, bo aplikacja staje się nieprzenośna.
Może jednak jest jakiś inny, magiczny sposób na zabezpieczenie tego skryptu? Jeśli to, to jak zabezpieczyć serwer?

Pozdrawiam
Michał</description>
		<content:encoded><![CDATA[<p>Witaj,<br />
Zastanawia mnie jak zabezpieczyć się przed następującą formą ataku:<br />
Mamy na serwerze Mój skrypt w katalogu<br />
/&#8230;/mojSkrypt</p>
<p>Niestety na tym samym serwerze znajduje się Ich skrypt w katalogu:<br />
/&#8230;/ichSkrypt</p>
<p>Jak się okazuje Ich skrypt jest podatny choćby na AFD. W ten sposób zawartość mojego skryptu przed światem stoi otworem.<br />
Podejrzewam, że jeśli dobrze poustawiam chmody, skrypty nie będą mogły się czytać, a jedynie wykonywać (co nadal mi nie odpowiada).<br />
Umieśćmy sobie na moim serwerze plik: /&#8230;/mojSkrypt/index.php, który będzie includował pozostałe skrypty. Aby zapewnić sobie, że skrypty nie są uruchamiane bezpośrednio (czy, że ktoś w przyszłości przenosząc mój skrypt nie zapomni poustawiać chmodów) dodajmy na początek skryptu w index.php:<br />
define (&#8222;TO_MOJ_SKRYPT&#8221;, true);<br />
I w pliku skryptu właściwego (includowanego) w skrypt.php:<br />
if (TO_MOJ_SKRYPT != true)<br />
  exit;<br />
Faktycznie uruchomić mój skrypt bezpośrednio jest ciężko. No ale ktoś może skorzystać z Ich skryptu w sposób następujący:<br />
1. Wgrać plik php do niezabezpieczonego katalogu:<br />
/&#8230;/ichSkrypt/tmp/skrypt.php<br />
o następującej zawartości:<br />
define (&#8216;TO_MOJ_SKRYPT&#8217;, true);<br />
include &#8216;../../mojSkrypt/skrypt.php&#8217;;<br />
W tym momencie bezpieczeństwo od strony PHP zupełnie leży. W takiej sytuacji pozostaje jedynie sprawdzanie czy $_SERVER['PHP_SELF'] (czy czegoś w tym stylu) jest ustawione na /&#8230;/mojSkrypt/index.php. No ale każdy przyzna, że taki wpis we wszystkich plikach includowanych jest kiepskim rozwiązaniem, bo aplikacja staje się nieprzenośna.<br />
Może jednak jest jakiś inny, magiczny sposób na zabezpieczenie tego skryptu? Jeśli to, to jak zabezpieczyć serwer?</p>
<p>Pozdrawiam<br />
Michał</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Bezpieczeństwo Twojej galerii zdjęć &#124; Porady Fotograficzne</title>
		<link>http://m1chu.eu/2008/10/19/jak-zabezpieczyc-skrypt-php-czesc-2-luki-local-file-include-lfi-i-remote-file-include-rfi/comment-page-1/#comment-5062</link>
		<dc:creator>Bezpieczeństwo Twojej galerii zdjęć &#124; Porady Fotograficzne</dc:creator>
		<pubDate>Sat, 09 May 2009 10:49:50 +0000</pubDate>
		<guid isPermaLink="false">http://m1chu.eu/?p=134#comment-5062</guid>
		<description>[...] 2.Autorskie skrypty galerii (własna produkcja) Zakładam, że jeśli już napisałeś własny skrypt galerii to znasz już jako tako język programowania więc użyję konkretnych słów  . O bezpieczeństwie aplikacji PHP i baz MYSQL napisano już w Internecie kilometry tekstu więc nie ma sensu dodawać własnych wypocin ? posłużę się linkami do stron: bezpieczeństwo skryptów PHP webmade.org, zabezpieczenia wraz z przykładem metody ataku. [...]</description>
		<content:encoded><![CDATA[<p>[...] 2.Autorskie skrypty galerii (własna produkcja) Zakładam, że jeśli już napisałeś własny skrypt galerii to znasz już jako tako język programowania więc użyję konkretnych słów  . O bezpieczeństwie aplikacji PHP i baz MYSQL napisano już w Internecie kilometry tekstu więc nie ma sensu dodawać własnych wypocin ? posłużę się linkami do stron: bezpieczeństwo skryptów PHP webmade.org, zabezpieczenia wraz z przykładem metody ataku. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: m1chu</title>
		<link>http://m1chu.eu/2008/10/19/jak-zabezpieczyc-skrypt-php-czesc-2-luki-local-file-include-lfi-i-remote-file-include-rfi/comment-page-1/#comment-3847</link>
		<dc:creator>m1chu</dc:creator>
		<pubDate>Fri, 07 Nov 2008 01:03:49 +0000</pubDate>
		<guid isPermaLink="false">http://m1chu.eu/?p=134#comment-3847</guid>
		<description>Dodałem &lt;a href=&quot;http://dev.m1chu.eu/index.php?title=Include_File_Disclosure_Scanner&quot; title=&quot;Include File Disclosure Scanner&quot; rel=&quot;nofollow&quot;&gt;skaner błędów RFI/LFI + Null Byte&lt;/a&gt; napisany przeze mnie pod .NET-em (a co za tym idzie niezbędny jest minimum &lt;a href=&quot;http://utnij.eu/net_2/&quot; title=&quot;.NET Framework 2.0&quot; rel=&quot;nofollow&quot;&gt;.NET Framework 2.0&lt;/a&gt; zainstalowany w systemie).

Program po jakimś czasie rozmyślania nad sposobem podejścia do problemu napisany został dzisiaj - na szybko. To taka &lt;strong&gt;druga&lt;/strong&gt; wersja &lt;strong&gt;alpha&lt;/strong&gt;.

Atrybuty:
- skanowanie linka w poszukiwaniu RFI/LFI + Poison Null Byte
- posiada podstawowe zabezpieczenia przed wpisaniem niepoprawnych danych
- pozwala na wprowadzenie adresu shella
- pozwala na podanie (zakres &lt;strong&gt;1 - 12&lt;/strong&gt;) ilości wykonywanych pętli wzwyż w drzewie katalogów w poszukiwaniu LFI
- daje możliwość użycia proxy w postaci hosta bądź IP (różnie to działa, przy słabych serwerach pośredniczących kończy się niekiedy np. timeoutem)
- pozwala zapisać log wyników skanowania
- można użyć dwóch języków interfejsu - polskiego i angielskiego (tu za pewnie też znajdzie się trochę błędów spowodowanych pośpiechem, będą poprawione... mam nadzieję ;])
- itp.

Jest też wiele rzeczy do poprawki (bo nie zawsze błędy są wykrywane, a i kod nie jest zbyt optymalny ;D), dlatego zaglądajcie tu regularnie i aktualizujcie. Mam nadzieję, że znajdę chwilę na... dopieszczenie :]

Więcej informacji już niedługo pod pierwszym linkiem w tym komentarzu.</description>
		<content:encoded><![CDATA[<p>Dodałem <a href="http://dev.m1chu.eu/index.php?title=Include_File_Disclosure_Scanner"  title="Include File Disclosure Scanner" rel="nofollow">skaner błędów RFI/LFI + Null Byte</a> napisany przeze mnie pod .NET-em (a co za tym idzie niezbędny jest minimum <a target="_blank" href="http://utnij.eu/net_2/"  title=".NET Framework 2.0" rel="nofollow">.NET Framework 2.0</a> zainstalowany w systemie).</p>
<p>Program po jakimś czasie rozmyślania nad sposobem podejścia do problemu napisany został dzisiaj &#8211; na szybko. To taka <strong>druga</strong> wersja <strong>alpha</strong>.</p>
<p>Atrybuty:<br />
- skanowanie linka w poszukiwaniu RFI/LFI + Poison Null Byte<br />
- posiada podstawowe zabezpieczenia przed wpisaniem niepoprawnych danych<br />
- pozwala na wprowadzenie adresu shella<br />
- pozwala na podanie (zakres <strong>1 &#8211; 12</strong>) ilości wykonywanych pętli wzwyż w drzewie katalogów w poszukiwaniu LFI<br />
- daje możliwość użycia proxy w postaci hosta bądź IP (różnie to działa, przy słabych serwerach pośredniczących kończy się niekiedy np. timeoutem)<br />
- pozwala zapisać log wyników skanowania<br />
- można użyć dwóch języków interfejsu &#8211; polskiego i angielskiego (tu za pewnie też znajdzie się trochę błędów spowodowanych pośpiechem, będą poprawione&#8230; mam nadzieję ;])<br />
- itp.</p>
<p>Jest też wiele rzeczy do poprawki (bo nie zawsze błędy są wykrywane, a i kod nie jest zbyt optymalny ;D), dlatego zaglądajcie tu regularnie i aktualizujcie. Mam nadzieję, że znajdę chwilę na&#8230; dopieszczenie :]</p>
<p>Więcej informacji już niedługo pod pierwszym linkiem w tym komentarzu.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

