Luka w nginx+fastcgi pozwalające na zdalne wykonanie dowolnego kodu

Oryginalny post: klik
po „ingliszu”: klik

a po naszemu, jest możliwość wykonania dowolnego kodu php.

możliwy model ataku:
1) prowadzimy hosting obrazków/plików, jest możliwość uploadu plików ogólnie;
2) ktoś wgrywa plik, plik to obrazek.jpg (nazwa czy rozszerzenie nie istotne) z kodem php;
3) dowolne wywołanie bezpośrednie pliku http://domain.tld/pliki/obrazek.jpg/cosdowlnego.php spowoduje wykonanie spreparowanego pliku;

przykład podatnej konfiguracji:

  1. location  ~ \.php$ {
  2.  root html;
  3.  fastcgi_pass 127.0.0.1:9000;
  4.  fastcgi_index index.php;
  5.  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  6.  include fastcgi_params;
  7.  }

która jest.. wszędzie, w każdym how to itp.

Możliwe formy zabezpieczenia się? Polecam lekturę: http://forum.nginx.org/read.php?2,88845. Można np dodać:

  1. location ~ \..*/.*\.php$ {
  2.  return 403;
  3.  }

Komentarze

Zostaw komentarz