본문 바로가기
Security

PHP Injection

by Hide­ 2007. 3. 9.
반응형

일반적인 PHP injection 공격 방법을 시험해 볼 것이다.
모의 공격을 위해, 공격을 당할 서버에 PHP Injection에 취약한 다음 code를 업로드할 것이다.

// test.php
<? include($var); ?>
 

사용자 삽입 이미지


[공격 당할 서버 예제 사진]



$var 변수에 `test'라는 값을 입력하자, include path error가 출력되었다.
결론적으로 우리는 $var 변수에 공격 코드 URL을 입력하여 명령을 삽입할 수 있게 된다.

그 후, 공격자의 웹서버에 다음 code를 업로드할 것이다.

// attack
<? passthru($command); ?>



사용자 삽입 이미지










[공격자의 서버 예제 사진]
 


$command 변수를 통해 시스템 명령어를 수행할 수 있도록 passthru() 함수를 사용하였다.

자, 그럼 모의 공격을 시도해보자.

다음과 같이 $var 변수에 `attacker_host' host에 있는 attack 파일을 include 요청하여 불러온 후,
$command 변수에 `id' 명령어를 삽입하여 현재 권한을 확인할 수 있었다.

사용자 삽입 이미지

[공격 후, 명령어 결과 사진]
 


공격 후, 공격을 받은 시스템에 작성된 log 파일 일부를 읽어본 결과, 다음과 같은 내용을 볼 수 있었다.

사용자 삽입 이미지

[공격 후, 서버에 기록된 공격자의 IP 정보와 요청내용]
 


지금까지, 개념 증명하에 PHP Injection 취약점 모의 공격을 시도해보았다.
공격을 시도해본 결과, 여러대의 서버를 필요로 하고 또, 공격자의 요청내용이 서버에 기록된다는 사실을 알게 되었다.

'Security' 카테고리의 다른 글

퍼미션  (0) 2007.03.09
/etc/passwd 구조  (0) 2007.03.09
Mysql 을 이용한 쉘 획득법  (0) 2007.03.09
Writing Stack Based Overflows on Windows  (0) 2007.03.09
Buffer overflow foundation  (0) 2007.03.09