prowseed
26.04.2012, 18:06:23
Post #1 w połączeniu z postem #40 wygląda przekomicznie : )
@materkamil
lepszy jest gram dobrej nauki niż kilo byle czego
Nikt Ci nie zabrania się uczyć, ale jak już Ty masz uczyć innych... Wobraź sobie nauczyciela na prawo jazdy, który sam takiego dokumentu nie posiada, więcej- nie wie nawet do końca jak działa skrzynia biegów.
Ciągle coś usprawniasz, ciągle coś poprawiasz, a wystarczy minuta, by namieszać. Widocznie po prostu nie rozumiesz jak to działa.
Niktoś
26.04.2012, 18:09:23
Cytat
Wymęczyłem się 2 godziny
-dwie godziny to nie męczarnia ,to sport w informatyce-niektórzy siedzą tygodniami ,żeby porządnie zabezpieczyć stronę/ny.Musisz nad tym posiedzieć dłużej.Przed upublicznieniem ,zrób sobie kopie bezpieczeństwa tego co zrobiłeś, aby te BUM mniej bolało.
materkamil
26.04.2012, 18:10:47
No więc tak:
<?
$plik_tmp = $_FILES['plik']['tmp_name']; // Tymczasowa nazwa uploadowanego pliku
$plik_nazwa = $_FILES['plik']['name']; // Orginalna nazwa pliku uploadowanego przez uzytkownika
$plik_rozmiar = $_FILES['plik']['size']; // Rozmiar pliku w Byte'ach
$rozmiar = $plik_rozmiar / 1000; // A tu zrobimy z nich kB
$is_obrazek = explode('.', $plik_nazwa); // dzielimy nazwe uploadowanego pliku na tablice $is_obrazek[1
] = strtolower($is_obrazek[1
]); // zmniejszamy nazwe rozszerzenia
if (($is_obrazek[1] == 'jpg')||($is_obrazek[1] == 'jpeg')||($is_obrazek[1] == 'gif')){ // sprawdzamy poprawnosc pliku
został przesłany na serwer!. <br><br>Adres do pliku: <br>http://www.astrouniverse.netii.net/gallery/$plik_nazwa "; // Pokaz dane o pliku
}
} else {
if ($plik_nazwa == NULL) { // Jesli plik jest pusty
return 0;
} else { // Jesli format jest zly
echo 'Niestety ale nie można przesłać tego pliku!'; }
}
?>
To jest kod tego uploadu. Zabezpieczone jest tak, że przejdą tylko jpg i gif. W moim katalogu znalazłem przesłane pliki: grfa.jpg.php które o dziwo przeszły przez ten skrypt. No więc zdobyto zarządzanie plikami i przez to zmieniono plik index.php. Tylko jakim cudem ten skrypt przepuścił plik ewidentnie php?
Edit: wszystkie kopie są, podejrzewałem że tak się skończy więc bum nie boli tylko cieszy
mccd
26.04.2012, 18:23:41
<?
[...]
$is_obrazek[1
] = strtolower($is_obrazek[count($is_obrazek)-1
]); // zmniejszamy nazwe rozszerzenia [...]
?>
Bierzesz nie 2., ale ostatni element tablicy.
Niktoś
26.04.2012, 18:30:35
To nie jest rozwiązanie ,a jak plik będzie normalnie nazwany?
<?
$plik_tmp = $_FILES['plik']['tmp_name']; // Tymczasowa nazwa uploadowanego pliku
$plik_nazwa = $_FILES['plik']['name']; // Orginalna nazwa pliku uploadowanego przez uzytkownika
$plik_rozmiar = $_FILES['plik']['size']; // Rozmiar pliku w Byte'ach
$rozmiar = $plik_rozmiar / 1000; // A tu zrobimy z nich kB
$is_obrazek = explode('.', $plik_nazwa); // dzielimy nazwe uploadowanego pliku na tablice $rozszerzenie="";
foreach($is_obrazek as $extension)
{
}
if (($rozszerzenie== 'jpg')||($rozszerzenie == 'jpeg')||($rozszerzenie == 'gif')){ // sprawdzamy poprawnosc pliku
zosta� przes�any na serwer!. <br><br>Adres do pliku: <br>http://www.astrouniverse.netii.net/gallery/$plik_nazwa "; // Pokaz dane o pliku
}
} else {
if ($plik_nazwa == NULL) { // Jesli plik jest pusty
return 0;
} else { // Jesli format jest zly
echo 'Niestety ale nie mo�na przes�a� tego pliku!'; }
}
?>
@DOWN Prowseeda przykład robi to co mój ,tylko znaczenie wydajniejszy.
prowseed
26.04.2012, 18:31:50
oglądał ktoś te filmiki?
Polecam pierwszy

Wiesz @materkamil - wydajem i się, że jeszcze troche musisz nad tym php posiedzieć. Może nagrywaj to jako dziennik progress'u?
//EDIT
@down
No nie? Z głosu taki sympatyczny, aż szkoda jeździć...
//EDIT2
http://www.scanit.be/uploads/php-file-upload.pdfhttps://www.owasp.org/index.php/Unrestricted_File_Uploadhttp://www.acunetix.com/websitesecurity/up...orms-threat.htmhttp://www.gnucitizen.org/blog/cross-site-...upload-attacks/na dobry poczatek : )
xxdrago
26.04.2012, 18:37:23
http://php.webtutor.pl/pl/2011/04/11/code-...w-obrazku-jpeg/ - poczytaj o tym jeszcze

(tak dla bezpieczeństwa)...
Biedny chłopak ;/ faktycznie bardzo ciekawy film.
mccd
26.04.2012, 19:01:42
Cytat(Niktoś @ 26.04.2012, 19:30:35 )

To nie jest rozwiązanie ,a jak plik będzie normalnie nazwany?
@DOWN Prowseeda przykład robi to co mój ,tylko znaczenie wydajniejszy.
$is_obrazek = explode('.', $plik_nazwa);
To te 2 sposoby nie są równoważne?
materkamil
26.04.2012, 19:14:24
Ale jazda. Zabezpieczyłem przesyłanie danych uploadu a tam dalej strona zdeformowana:
http://astrouniverse.netii.net/
1. rozszerzenia pliku sprawdza się dzięki pathinfo a nie explode
2. sprawdzaj nazwę pliku, jakie zawiera znaki
to na początek wystarczy. poza tym nie wiem po co na głównej stronie dajesz możliwość wgrywania plików.
materkamil
26.04.2012, 19:18:46
Na głównej bo to ma być hosting. Ok zabezpiecze przesyłanie, aby nie było znaków ale jakim cudem na stronie głównej jest informacja? takie coś można tylko dodać w PA
Bo nie zabezpieczyłeś PA.
Niktoś
26.04.2012, 19:21:29
Cytat
To te 2 sposoby nie są równoważne?
Faktycznie-błąd w wyliczeniach.
materkamil
26.04.2012, 20:45:00
Na FTP pojawiają mi się pliki - coś takiego: plik'/'<script>.jpg
Jednak czy nazwa pliku coś daje? Można racja włożyć w obrazek kod PHP, ale nazwa? O czym to świadczy?
Cytat
Ważna informacja: Teraz już skrypt jest napisany i zabezpieczony inaczej, więc nie dostaniesz się do niego w życiu
Ważna informacja: NIGDY NIE MOW NIGDY

Ważna informacja: PHP.pl

Ważna informacja: by !*!
Ważna informacja: Dobra widzę że dodajesz pliki z cudzysłowiami. Dlatego też zaraz wprowadzę ograniczenie nazwy jedynie do polskich znaków

psotniki jedne
Cytat
Na FTP pojawiają mi się pliki - coś takiego: plik'/'<script>.jpg
Jednak czy nazwa pliku coś daje? Można racja włożyć w obrazek kod PHP, ale nazwa? O czym to świadczy?
Zła nazwa pliku to zła nazwa pliku. Widziałeś kiedyś u siebie na dysku plik z krzakami? Jak, myślisz dlaczego takich się nie tworzy.
materkamil
27.04.2012, 08:26:01
Tak, widziałem. Nie można używać >, < ale można używać ' i właśnie te. Teraz wymyśliłem nową metodę zabezpieczeń. I to skomplikowaną. Opisze ci ją na PW
Pisz w tym temacie, więcej osób się wypowie.
Poza tym skupiłeś się wyłącznie na wygrywaniu plików, wydaje mi się że niepotrzebnie tzn. nie zapominaj o panelu bo to w nim może być problem i zaraz ktoś Ci coś tam może napisać.
materkamil
27.04.2012, 08:44:48
Aha i jeszcze jedno pytanie:
Mam problem z kasowaniem plików FTP tych, co przesłane zostały. To screen:
http://s6.ifotos.pl/img/Beztytuup_reehnxh.pngCo to może być. Je nie można skasować
Edit: PA jest 100% bezpieczny. Przynajmniej dziś, gdy to zabezpieczyłem go całkiem inną metodą która wg. mnie bez znania hasła PA lub dostępu do FTP jest nie do przejścia. A wcześniej został mi przesłany "hauru.php" czyli klient ftp na stronę
Niktoś
27.04.2012, 11:23:26
Cytat
Co to może być. Je nie można skasować
Sprawdź uprawnienia tych ,plików czy nie mają czasami flagi "tylko do odczytu".
Może z następnym problemem załóż nowy wątek w odpowiednim dziale.
materkamil
27.04.2012, 11:55:39
I tu drugi problem. Nazwy plików są tak dziwne, że nie da się ustawić uprawnień. Przy każdej próbie pisze:
553 Prohibited file name: pap<script>alert(\'zxc\')a.php.jpg
I do tego znów jest info na stronie głównej.
PS: Zaraz dam skrypt strony
Skrypt logowania wygląda tak:
Kod
<?
if($_POST["haslo"] == "tego nie podam") {
include("tutajjestadrespaneluadmina");
setcookie("tego nie podam","tego tez nie", time()+3600);
}
else
{
}
?>
<html>
<form method=post>
<input type=text name=haslo>
<input type=submit>
</form>
</html>
Jak mamy już cookiesa idziemy do PA
skrypt PA
Kod
<?
if(!isset($_COOKIE["klucz"])) {
echo("<script src=index.js></script>");
}
?>
Czyli jak ktoś nie wpisze hasła, nie ma ciasteczka, a bez ciasteczka go wyrzuca. I potem jest obsługa plików - dodawanie newsów:
Kod
<form method="post" action="tamgdziesiedoda"><input name="dodaj" type="text"><input type="submit"></form>
I "tamgdziesiedoda":
Kod
<?
$trescc = $_POST["dodaj"];
$tresccx = strip_tags($trescc);
$tresc = "<br><center><b><font size=6 color=red>Ważna informacja: $tresccx</font></b>";
$plik = "tujestenplikcododaje.txt";
$open = fopen($plik,"a");
fputs($open,$tresc);
fclose($open);
?>
Czyli na oko trzeba wysłać cookie z czymkolwiek i już mam dostęp... nie no weź to jakoś zabezpiecz bardziej bo wstyd że strona o bezpieczeństwie, jest od kilku dni "hackowana".
materkamil
27.04.2012, 12:21:02
Nie bo cookie wprowadziłem dopiero dziś. Wczoraj było to zrobione inaczej i znów przeszło. A do tego jak agresor mógł wiedzieć że strona opiera się na ciasteczkach, jeśli ciasteczko zostało wysyłane tylko po poprawnym warunku?
Edit: Niektóre dane zamazałem "tego nie podam" bo wg. mnie nie są potrzebne a mogą ułatwić "atak"
Cytat(materkamil @ 27.04.2012, 13:21:02 )

Nie bo cookie wprowadziłem dopiero dziś. Wczoraj było to zrobione inaczej i znów przeszło. A do tego jak agresor mógł wiedzieć że strona opiera się na ciasteczkach, jeśli ciasteczko zostało wysyłane tylko po poprawnym warunku?
Nie musi, wystarczą podstawowe dane o serwerze, zresztą... nie chce mi się tego tłumaczyć. Ściągnij jakiś gotowiec, będzie to bezpieczniejsze niż to co sam piszesz.
materkamil
27.04.2012, 12:25:11
Spróbuję jeszcze raz to zabezpieczyć inaczej i ciekawe i wtedy nie powinno się dać tego przejąć
Niktoś
27.04.2012, 12:28:18
Cytat
Nie bo cookie wprowadziłem dopiero dziś. Wczoraj było to zrobione inaczej i znów przeszło. A do tego jak agresor mógł wiedzieć że strona opiera się na ciasteczkach, jeśli ciasteczko zostało wysyłane tylko po poprawnym warunku?
Jeśli już chcesz używać coockies to hashuj w nim dane.Agresor będzie wiedział ,że twoja strona generuje cookies,można to w łatwy sposób sprawdzić w przeglądarce.Cookies to zwykły plik tekstowy generowany po stronie klenta.Ktoś może w nim napisać złośliwy kod np. w js.Ty na tomiast sprawdzasz istnienie cookies ,ale co w nim jest już nie.
Może faktycznie poczytaj jakieś tutoriale.
materkamil
27.04.2012, 12:31:54
No ale wpisując java script:alert ... nie pokaże mu cookiesa, bo on zostanie wysłany dopiero po wpisaniu hasła:
if ($haslo = "poprawne") {
wyślij cokies
}
else
{
nic nie wyślij
}
Niktoś
27.04.2012, 12:35:26
Zapraszam,do lektury -google is ur master-poszukaj.Nie pomyślałeś że ktoś może sam sobie cookies stworzyć i nie musi ono koniecznie pochodzić z twojego skryptu?
materkamil
27.04.2012, 12:38:40
Ważna informacja: Wyleciał i już nie wróci. Do widzenia w piekle. Teraz już nie ma możliwości żebyś coś zrobił

Ważna informacja: To zabezpieczenie co zaprogramowałem jest nie do obejścia. Nigdy już nie napiszesz tu nic
Ważna informacja: spoko

Ważna informacja: Jakim cudem piszesz? Czyżby własny skrypt z obsługą tego pliku tekstowego?
Ważna informacja: mhm ukryty w jednym z plikow z grafika
Ważna informacja: i jeszcze jeden plik z grafika ktory pozwala na podglad twoich plikow php

Ważna informacja: W takim razie jakim cudem? Przecież wysłałeś mi pliki *jpg

Co wy na to?
phpion
27.04.2012, 12:40:50
@materkamil:
Zauważ, że piszesz w dziale "Oceny". Jeśli chcesz się doedukować to załóż nowy wątek w dziale "Przedszkole".
Uwaga do wszystkich:
Proszę zakończyć rozmowy na temat sposobów zabezpieczeń. Do takich celów są inne działy. Tutaj proszę skupić się tylko i wyłącznie na ocenie samej strony.
greycoffey
27.04.2012, 15:27:09
"PHP to człowiek."
"
funkcja echo składa się zawsze z echo,
nawiasów i
średnika" - a ja myślałem, że echo to struktura językowa, nawiasy śa niepotrzebne oraz funkcja się z nich nie składa, a średnik oddziela procedury - widać głupi byłem

"korzystamy z tej oto przeglądarki" - woooow!
"zauważmy że pomiędzy dwoamia takimi znakamiii...."
"możemy tutaj cuda robić", "możemy zarządzać wszystkim!" (o przesyłaniu tagów html przez $_GET)
"atak XSS który wykorzystuje błąd w filtrowaniu zmiennej" - eeee... ale nie ma żadnego filtrowania, to jaki błąd ma wykorzystywać?
Niktoś
27.04.2012, 20:12:22
OMG,ktoś się dobrze bawi,ale czy Ten ktoś wie ,że manipulowanie w kodzie czyjegoś autorstwa jest niezgodne z prawem?
Czy ten ktoś wie ,że każdy request,żądanie zapisywany jest w logach Apache?Mam nadzieje ,że jechałeś przez proxy,bo jak autor posprawdza logi i Ciebie chytnie ,to będziesz mógł mieć nie lada problemy.
Poza tym dostał lekcje ,więc pytanie po co jedziesz mu po stronce?Daj se siana(tutaj zwrot do tego kogoś).
A do autora ,wykasuj wszystkie linki z tej strony i zmień ponownie adres i nazwę hosta i sam testuj-a jak będziesz uważał ,że faktycznie jest dobre to dopiero poproś o sprawdzenie pod względem bezpieczeństwa w dziale oceny innych forumowiczów.
Cytat(Niktoś @ 27.04.2012, 21:12:22 )

OMG,ktoś się dobrze bawi,ale czy Ten ktoś wie ,że manipulowanie w kodzie czyjegoś autorstwa jest niezgodne z prawem?
Czy ten ktoś wie ,że każdy request,żądanie zapisywany jest w logach Apache?Mam nadzieje ,że jechałeś przez proxy,bo jak autor posprawdza logi i Ciebie chytnie ,to będziesz mógł mieć nie lada problemy.
Poza tym dostał lekcje ,więc pytanie po co jedziesz mu po stronce?Daj se siana(tutaj zwrot do tego kogoś).
Przesadzasz, nikt nigdzie nie manipuluje, to jest wykorzystywanie danych/możliwości ogólnie dostępnych,autor witryny nie zrobił nic żeby ją zabezpieczyć.
Logi co wykażą? kilka adresów z tego forum + wysyłanie formularza? łał po prostu łał
Niktoś
27.04.2012, 20:44:44
Cytat
Przesadzasz, nikt nigdzie nie manipuluje, to jest wykorzystywanie danych/możliwości ogólnie dostępnych,autor witryny nie zrobił nic żeby ją zabezpieczyć.
Wstrzyknięcie jakiegokolwiek kodu,do źródła strony jest manipulacją.A tam wstrzykniętą <h4> lub <span> z treścią.
Cytat
Logi co wykażą? kilka adresów z tego forum + wysyłanie formularza? łał po prostu łał
Ip komputera,z którego nadszedł request-to nie wystarczy?-nie wiem jak dokładnie wyglądają logi Apache,w IIS jest wszystko fajnie rozpisane, (IP/domena/host) nawet jakie dane ktoś wysłał.No chyba ,że ktoś jechał przez proxy tak jak wspomnialem.
Jakie wstrzyknięto? Jak to jest opcja panelu do którego ktoś miał hasło. Logi serwera głównie są od tego żeby pokazać dane z ip, hostem itp. tylko nie widzę tu zastosowania. to tak jakbyś miał pretensje że widzisz tło strony i wiesz jaki to plik bo zajrzałeś w źródło.
Fifi209
27.04.2012, 20:49:41
Zauważ, że poza dodaniem tekstu strona nie ucierpiała, a sam autor tematu powinien być wdzięczny za możliwość nauki
Autor wydaje się być dociekliwy, testuje zabezpieczenia i daje testować. Zrobił backup, nakręcił filmik o błędzie w uploadzie.
Logi w Apache pokazują typ GET/POST, IP, jaki url został wywołany i parametry, oczywiście czas.
Niktoś
27.04.2012, 20:55:13
Cytat
Zauważ, że poza dodaniem tekstu strona nie ucierpiała, a sam autor tematu powinien być wdzięczny za możliwość nauki smile.gif
Autor wydaje się być dociekliwy, testuje zabezpieczenia i daje testować. Zrobił backup, nakręcił filmik o błędzie w uploadzie.
Najlepiej ,niech się autor wypowie czy mu ta zabawa odpowiada.Poprzednią stronę tak mu ktoś zjechał,że musiał adres hosta zmienić,nie wiem może ktoś wciąż mu w tej chwili coś tam skrobie.
vieri_pl
27.04.2012, 21:36:10
Autor troszkę sam sobie szkodzi pisząc takie rzeczy na starej stronie... widzę, że "NIEZŁAMALNA" nowa strona już wita nas pozdrowieniami z php.pl
Niktoś
27.04.2012, 21:41:13
Wiesz chcialbym, żeby mi tak zjechali strone.Kiedyś zamieszczałem tutaj serwis ,ale jakoś nikt nie mógł,a wręcz błagałem o to-gadałem zniszczcie mi strone i nic.On jest nowicjuszem ,uczy się,po co mu niszczyć kolejną stronę.Niech ten napis,będzie ostatnim krokiem ,a nie żeby kolejny raz ktoś mu zniszczył stronkę.
Fifi209
27.04.2012, 21:46:13
Cytat(Niktoś @ 27.04.2012, 21:55:13 )

Najlepiej ,niech się autor wypowie czy mu ta zabawa odpowiada
Cytat(Niktoś @ 27.04.2012, 22:41:13 )

.Niech ten napis,będzie ostatnim krokiem ,a nie żeby kolejny raz ktoś mu zniszczył stronkę.
Zdecyduj się.
Niktoś
27.04.2012, 21:55:37
Jutro poprawie część kodu i rzucę podobnym hasełkiem i udostępnie.Ciekawe czy ktoś tak będzie mądry.
Cytat
Zdecyduj się.
Odpowiadałem tylko na poprzedni post,już się nie udzielam.
materkamil
28.04.2012, 14:34:18
Oczywiście na tych "atakach" strasznie się uczę i jestem z tego zadowolony. Przynajmniej mam chęć do wymyślania kolejnych zabezpieczeń

Do tego kogoś: spoko! W logach nie zamierzam grzebać, namierzać itp. Możecie kombinować, to jest jedynie serwer testowy. Dlatego spoko, nie bój się. FBI nie przyjdzie do ciebie autorze "włamań"

Jedynie kiedyś możesz nie dać rady przejść, moich zabezpieczeń i tyle. A ja nie odpuszczę. Tylko ciekawi mnie gdzie tkwi największy błąd. Już założyłem inny wątek
Edit: Napisy są dodawane i kasowane w PA więc spokojnie, nie niszczy żadnego indexu, a jedynie dodaje dane do pliku
Cytat(materkamil @ 28.04.2012, 15:34:18 )

Jedynie kiedyś możesz nie dać rady przejść, moich zabezpieczeń i tyle. A ja nie odpuszczę.
No, to dłuuugie dzieciństwo Cię czeka... Skoro zakładasz, że kiedyś uda Ci się zrobić zabezpieczenia nie do złamania... Nie odpuszczaj, to oczywiste, abyś zajął się zabezpieczeniem serwisu a nie pisaniem na forum, dzięki czemu mniej tu będzie takich wątków
Valik
10.05.2012, 14:32:07
Równie dobrze mogłeś zrobić bloga i ściągnąć darmową templatkę z neta... Wyglądałoby 100x lepiej, a nie jak by robił to ktoś z gimnazjum...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.