주의해 야 할 몇 개의 PHP 구멍 소결

1756 단어 PHP 빈틈
주의해 야 할 몇 가지 PHP 빈틈 몇 가지 중요 한 php.ini 옵션 Register Globals php>=4.2.0,php.ini registerglobals 옵션 의 기본 값 은 Off 로 설정 되 어 있 습 니 다.registerglobals 가 On 으로 설정 되 어 있 을 때,프로그램 은 폼 에서 제출 한 변 수 를 포함 하여 서버 로부터 다양한 환경 변 수 를 받 을 수 있 으 며,PHP 가 변수의 값 을 미리 초기 화 할 필요 가 없 기 때문에 매우 큰 안전 위험 을 초래 할 수 있 습 니 다.예 1:
 
  //check_admin() , admin $is_admin true, true,
  //ex1.php
  
  if (check_admin())
  {
  $is_admin = true;
  }
  if ($is_admin)
  {
  do_something();
  }
  ?>
이 코드 는$is 를 사용 하지 않 았 습 니 다.admin 미리 Flase 로 초기 화,registerglobals 는 On 입 니 다.그럼 직접 제출 하 겠 습 니 다.http://www.sectop.com/ex1.php?is_admin=true,check 를 돌아 갈 수 있 습 니 다.admin()의 검증 예 2:
 
  //ex2.php
  
  if (isset($_SESSION["username"]))
  {
  do_something();
  }
  else
  {
  echo " !";
  }
  ?>
 
  //ex1.php
  
  $dir = $_GET["dir"];
  if (isset($dir))
  {
  echo "";
  system("ls -al ".$dir);
  echo "";
  }
  ?>
  mixed eval(string code_str)//eval 주입 은 일반적으로 공격 자가 입력 한 문자열 을 제어 할 때 발생 합 니 다./ex2.phop
   
  $var = "var";
  if (isset($_GET["arg"]))
  {
  $arg = $_GET["arg"];
  eval("$var = $arg;");
  echo "$var =".$var;
  }
  ?>

좋은 웹페이지 즐겨찾기