English
◀◁ 뒤로
취약점ID 21264
위험도 40
포트 80, ...
프로토콜 TCP
분류 CGI
상세설명 해당 myPHPNuke의 몇몇 PHP 스크립트들은 코드 삽입 공격에 취약하다.
myPHPNuke는 자유롭게 이용 가능한 PHP 기반의 콘텐트 관리 시스템이다. myPHPNuke 버전 1.8.8_7은 사용자 제공 입력값을 적절하게 걸러내지 못해 원격지의 공격자가 악의적인 PHP 파일들을 Include 할 수 있게 해 준다. 공격자는 악의적인 서버 상에 악의적인 PHP 파일들을 설치하여 취약한 시스템에 임의의 코드를 실행시키는 데 그 파일들을 사용할 수 있다.
원격지의 공격자는 인수로써 원격지의 시스템상에 있는 악의적인 PHP 파일을 명기한 잘 조작된 URL 요청을 'gallery/displayCategory.php' 혹은 'mailattach.php' 스크립트로 보낸다. 이는 문제가 되는 시스템상에 임의의 코드를 실행시킬 수 있게 해 준다.

* 참고 사이트:
http://www.securityfocus.com/archive/1/337085
http://archives.neohapsis.com/archives/vulnwatch/2003-q3/0101.html

* 영향을 받는 플랫폼:
Linux Any version
Unix Any version
Windows Any version
myPHPNuke 1.8.8_7
해결책 2014년 6월 현재 업그레이드나 패치는 나와 있지 않다.

임시 조치방법으로, http://www.phpsecure.info 에 있는 phpSecure.org 웹 사이트에서 제시되어 있듯이 각각의 문제가 되는 스크립들의 소스코드를 수정할 것을 권고한다.

Gallery/displayCategory.php에서 맨 첫 부분에 다음 라인들을 추가한다:
-------------------------------------------------------------------
if (isset($_REQUEST["basepath"]) OR isset($_REQUEST["adminpath"])){
die("Patched.");
}
-------------------------------------------------------------------

그리고 mailattach.php에서는 다음 라인들 뒤에 아래의 라인들을 추가한다:
-------------------------------------------------------------------
[…]
<?
OpenTable();
global $attachmentdir;
[...]
-------------------------------------------------------------------

추가할 라인들:

-------------------------------------------------------------------
if (isset($_REQUEST["attach1_type"]) OR isset($_REQUEST["attach1_name"])
OR ereg("/",$attach1) OR ereg("\.\.",$attach1) OR ereg(".php",$attach1_name)
){
die("Patched.");
}
-------------------------------------------------------------------
관련 URL (CVE)
관련 URL (SecurityFocus)
관련 URL 13164 (ISS)