Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » bajbusek 19:00
 » zibi13 19:00
 » Wedelek 18:57
 » Gniew 18:56
 » Artaa 18:56
 » RoBakk 18:55
 » Markizy 18:55
 » ngP 18:54
 » lcf 18:52
 » elliot_pl 18:50
 » rainy 18:49
 » Draghmar 18:47
 » ulan 18:41
 » Kenny 18:35
 » Promilus 18:34
 » globi-wan 18:30
 » waski 18:28
 » NimnuL 18:20
 » DYD 18:18
 » wrrr 18:15

 Dzisiaj przeczytano
 34498 postów,
 wczoraj 29900

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2025
A R C H I W A L N A   W I A D O M O Ś Ć
    

[hackerstwo] Jak zrobić proste php injection? Jak obejść wycinanie tagów HTML? , kubazzz 15/12/08 17:43
czy domyślnie php filtruje jakoś przesyłany kod?
Załóżmy że mamy formularz w którym można wpisać wszystko, jak teraz zrobić wtrącenie np?
Bo filtruje niektóre tagi, np <em>, ale przepuszcza np <br>.
Da się to jakoś obejść? (to jest po stronie serwera, nie JS)

Chciałbym przetestować zabezpieczenia swojej stronki (żeby się zabezpieczyć) i zabezpieczenia innej (żeby komuś coś udowodnić) i dlatego kombinuje z tym php injection, czyli żeby wrzucić jakiś prosty kod w tym formularzu, tak żeby się wykonał.. np jakiś var_dump, albo echo, albo curl, coś takiego..
Czytałem coś tam na wikipedii, ale nie bardzo mi to działa...

SM-S908

  1. a kto parsuje phpem cos, co wpisal uzytkownik? , Grocal 15/12/08 19:11
    Nie spotkalem sie z taka praktyka jak zyje (co nie znaczy, ze niektorzy tak nie robia). Najszybciej to wkleisz cos hatemelowego z javascriptem, co wykona sie po stronie uzytkownika (i zje ciastka na przyklad). No ale wiekszosc programistow raczej sprawdza poprawnosc wpisywanych przez uzytkownikow danych czy danych pochodzacych z "niepewnych" zrodel (zewnetrzne serwisy, rssy, cudze dane z baz/xmli etc.).

    Szybciej znajdziesz dziurę w SQLu, jeśli programista nie sprawdza danych wprowadzanych przez użytkownika a wykorzystuje je w zapytaniach SQL.

    Dawno, dawno temu ludzie potrafili jednak robić coś takiego:
    1. Pobrac w zmiennej $_GET nazwe pliku
    2. Zaincludowac go

    np. test.pl/index.php?plik=text.txt
    a w kodzie index.php <? include ($_GET['plik']) ?> albo w czasach superglobali: <? include ($plik); ?>. Szczerze jednak wątpię, że ktoś w phpie robi takie błędy.

    Na pewno, na razie, w ogóle...
    Naprawdę, naprzeciwko, stąd...
    Ortografia nie gryzie!

    1. no ale np. , kubazzz 15/12/08 19:27
      $tresc = $_POST['tresc_wiadomosci'];
      i ta tresc idzie potem do bazy,
      a potem jest
      $tresc = pobierana z sql'a zawartosc
      i jest
      echo $tresc;



      i zakladajac, że w formularzu wpiszę treść wiadomości, wtedy $tresc= ; echo 'hello world';
      to powinno w teorii się includować..
      chyba, że kolejny raz czegoś nie rozumiem;)

      SM-S908

      1. kubazzz... sprobuj , Grocal 15/12/08 19:49
        Juz Ci kiedys mowilem, ze najlepszym sposobem na nauke jest eksperymentowanie. Po uruchomieniu Twojego przykladu na ekranie ukaze sie:

        ; echo 'hello world';

        Dane sa zapisane w zmiennej $tresc i nic z nimi sie nie dzieje. echo nie robi nic innego jak "wypluwa" cokolwiek w tej zmiennej jest napisane na standardowe wyjscie (w skrocie - do okna przegladarki).

        Dla ciekawosci sprawdz sobie dzialanie funkcji eval().

        Na pewno, na razie, w ogóle...
        Naprawdę, naprzeciwko, stąd...
        Ortografia nie gryzie!

        1. sprobowalem , kubazzz 15/12/08 19:58
          rzeczywiscie tak sie stalo.
          zasugerowalem sie tym w jaki sposob pokazane byly SQL injection np w polu hasla 1=1 ;)) Teraz sobie uswiadomilem jak glupie to bylo.
          poczytałem o eval, ale jak sie nie ma wejscia do kodu to nic nie mozna zrobic.

          SM-S908

          1. Parę porad , pachura 15/12/08 23:42
            1. Każde dane przychodzące z formularzy traktuj jako wroga. Wklejasz jakiś parametr do SQL-a? Sprawdź czy na pewno typ zgadza się z założonym (liczba/string/data), zawsze wszystko escape'uj lub używaj prepared statements. Klasycznym błędem jest bezpośrednie wklejenie do query wartości typu "1; drop table USERS;", bo wynikowe zapytanie wychodzi np. "select * from NEWS where ID = 1; drop table USERS;" i możesz pożegnać się z tabelą użytkowników...

            2. Nigdy nie używaj eval(), operatora backtick `` etc. Nie uruchamiaj zewnętrznych programów.

            3. Nigdy nie odwołuj się do lokalnego systemu plików, bo zaraz znajdzie się ktoś kto przeczyta Twoje /etc/passwd.

    
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL