출처 :http://kldp.net/tracker/index.php?func=detail&aid=300515&group_id=13&atid=300013

이곳에서도 사용하는 weblog에서 아주 심각하지는 않지만 나름대로 중요한 보안버그가 발견되었습니다. 여기는 다른툴로 막았지만 다른곳은 패치를 해야할듯
합니다. 아쉽게도 아직 새로운 릴리즈는 없네요.

-----------------------------------------------------------------

자세한 설명:
버그 형태 KorWeblog 1.6.2-cvs 버전의 "아이콘 보기" 기능 상에 존재하는
"디렉터리 이동" 버그

해당 버그의 재현 방법
http://[victim]/viewimg.php?
path=images.d/face/../../../../../../../&form=Com&var=faceicon

현재 구현 상 위와 같이 하는 경우 임의의 디렉터리의 파일 리스트를 파악이
가능합니다.

수정 방안
viewimg.php 의 65행과 72행에서
$path 변수를 images.d/face 로 대체
> $img_file = KWL_GetFileName("$CONF[G_PATH]/images.d/face");
> ...
> <IMG SRC="$CONF[G_URL]/images.d/face/$img
> ...

파급 효과
물론 이 버그는 서버 침해에 이르는 심각한 버그는 아닙니다.
그러나 악의적인 공격자가 다른 웹 어플리케이션의 취약점을 이용하여 공격용
도구(php스크립트 등)를 업로드한 경우, 이 도구를 업로드한 위치를 파악하는데
유용하게 사용 될 수 있습니다.
또한 디렉터리의 파일 리스트를 보고 운영 체제에 관한 정보를 수집할 수
있습니다.

--- viewimg-org.php 2004-09-21 13:08:15.000000000 +0900
+++ viewimg.php 2004-09-21 13:08:44.000000000 +0900
@@ -63,13 +63,13 @@
<TABLE BORDER="0" CELLSPACING="3" CELLPADDING="5" ALIGN="CENTER">
<TR>
<?
-$img_file = KWL_GetFileName("$CONF[G_PATH]/$path");
+$img_file = KWL_GetFileName("$CONF[G_PATH]/images.d/face");
$x = 0;
if (is_array($img_file)) {
foreach($img_file as $img) {
if (isset($fix)) $tmp = "$path/$img";
else $tmp = $img;
- echo "<TD ALIGN=CENTER><A HREF="javascript:pick('$tmp')
"><IMG SRC="$CONF[G_URL]/$path/$img" BORDER="0" VSPACE="5" HSPACE="5"
ALT="$img"></A>n";
+ echo "<TD ALIGN=CENTER><A HREF="javascript:pick('$tmp')
"><IMG SRC="$CONF[G_URL]/images.d/face/$img" BORDER="0" VSPACE="5"
HSPACE="5" ALT="$img"></A>n";
$x++;
if ($x==7 || isset($br)) { echo "</TR><TR>n"; $x=0; }
}

관련 링크: http://kldp.net/tracker/index.php?func=detail&aid=300515&group_id=13&atid=300013

+ Recent posts