[보안패치] 그누보드 4.22.03
4.22.03 (08.03.31)
: 아이디/패스워드 찾기 페이지 로봇에 의한 접근 차단 (GD Lib 사용자만 사용 가능)
skin/member/basic/password_forget2.skin.php
bbs/password_forget2.php
bbs/password_forget3.php
반드시 패치 하시기 바랍니다.
: 아이디/패스워드 찾기 페이지 로봇에 의한 접근 차단 (GD Lib 사용자만 사용 가능)
skin/member/basic/password_forget2.skin.php
bbs/password_forget2.php
bbs/password_forget3.php
반드시 패치 하시기 바랍니다.
첨부파일
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 81개
이젠 별별곳까지 로봇이 기승을 부리는군요..
그런데 손본데가 많은데 ㅜ.ㅜ 어흙
수고하셨습니다.
감사합니다.
skin/member/basic/password_forget2.skin.php
bbs/password_forget2.php
bbs/password_forget3.php
이 경로에 있는 password_forget2.skin.php ,password_forget2.php , password_forget3.php
이 세개 파일을 패치 해야된다는건데..
이걸 어떻게 패치해야 하는지용
<?
phpinfo();
?>
---------------------------------------------------------------------------------------------
gd
GD Support | enabled
GD Version | 2.0 or higher
FreeType Support | enabled
FreeType Linkage | with freetype
GIF Read Support | enabled
GIF Create Support | enabled
JPG Support | enabled
PNG Support | enabled
WBMP Support | enabled
gettext
GetText Support | enabled
잘 사용할께요~
즐거운 하루 되세요!!
파일: http://happyjung.com/gnuboard/bbs/board.php?bo_table=data&wr_id=93
js/common.js
### 변경전
// 폼메일 창
function win_formmail(mb_id, name, email)
{
win_open(g4_path+"/" + g4_bbs + "/formmail.php?mb_id="+mb_id+"&name="+name+"&email="+email, "winFormmail", "left=50, top=50, width=600, height=480, scrollbars=0");
}
### 변경후
// 폼메일 창
function win_formmail(mb_id, name, email)
{
if (g4_charset.toLowerCase() == 'euc-kr')
win_open(g4_path+"/" + g4_bbs + "/formmail.php?mb_id="+mb_id+"&name="+name+"&email="+email, "winFormmail", "left=50, top=50, width=600, height=480, scrollbars=0");
else
win_open(g4_path+"/" + g4_bbs + "/formmail.php?mb_id="+mb_id+"&name="+encodeURIComponent(name)+"&email="+email, "winFormmail", "left=50, top=50, width=600, height=480, scrollbars=0");
}
skin/board/basic/write.skin.php
### 변경전
echo "<img src='$g4[bbs_path]/norobot_image.php' border='0'>";
### 변경후
echo "<img src='$g4[bbs_path]/norobot_image.php?{$g4['server_time']}' border='0'>";
skin/member/basic/register_form.skin.php
### 변경전
echo "<img src='$g4[bbs_path]/norobot_image.php' border='0'>";
### 변경후
echo "<img src='$g4[bbs_path]/norobot_image.php?{$g4['server_time']}' border='0'>";
skin/member/basic/password_forget2.skin.php
### 변경전
<tr>
<td height="30"></td>
<td colspan="2" valign="top">
<input type=text name='mb_password_a' size=55 required itemname='패스워드 분실시 답변' value=''>
</td>
</tr>
### 변경후
<tr>
<td height="30"></td>
<td colspan="2" valign="top">
<input type=text name='mb_password_a' size=55 required itemname='패스워드 분실시 답변' value=''>
</td>
</tr>
<tr>
<td height="40" align="center"><img src="<?=$member_skin_path?>/img/icon_02.gif" width="6" height="6"></td>
<td colspan="2">
<?="<img src='$g4[bbs_path]/norobot_image.php?".time()."' border='0' align='absmiddle'>";?>
<input type=text name='wr_key' size=10 required itemname='자동등록방지 코드'> 자동등록방지 코드를 입력하세요.
</td>
</tr>
skin/member/basic/password_forget2.skin.php
### 변경전
<script language='JavaScript'>
function fpasswordforget2_submit(f)
{
f.action = "./password_forget3.php";
f.submit();
}
document.fpasswordforget2.mb_password_a.focus();
</script>
### 변경후
<script language="javascript" src="<?=$g4['path']?>/js/md5.js"></script>
<script language='javascript'> var md5_norobot_key = '<?=md5($norobot_key)?>'; </script>
<script language='JavaScript'>
function fpasswordforget2_submit(f)
{
if (hex_md5(f.wr_key.value) != md5_norobot_key) {
alert('자동등록방지용 코드가 순서대로 입력되지 않았습니다.');
f.wr_key.focus();
return;
}
f.action = "./password_forget3.php";
f.submit();
}
document.fpasswordforget2.mb_password_a.focus();
</script>
bbs/password_forget2.php
### 변경전
include_once("./_common.php");
### 변경후
include_once("./_common.php");
// 토큰 생성
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);
$norobot_key = substr($token, 0, rand(4,6));
set_session("ss_norobot_key", $norobot_key);
bbs/password_forget3.php
### 변경전
include_once("./_common.php");
### 변경후
include_once("./_common.php");
$wr_key = trim($_POST[wr_key]);
if (!($wr_key && $wr_key == get_session('ss_norobot_key'))) {
alert("정상적인 접근이 아닌것 같습니다.");
}
그누보드를 사용하고 있는 유저입니다.
다름이 아니라 파일업로드 취약성이 있는거 같아서
쪽지를 보낼려니 안보네지네요 -ㅁ-
원래 그냥 저도 쓰고 있었는대 보안관련 취약성에 대해서 지침에 내려와서
확인하다보니 발견하게 되었네요 ^^
bbs/write_update.php
159번째 줄 바로 밑에 아래와 같이 추가했습니다.
별건 아니구 php,php3,inc,htm,html 파일 확장자 업로드를 못하게 체크하는거구요
맞게 썼는지는 모르겠네요 ^^
좋은 하루 보내세요
// 파일업로드 취약점 보안 확장자 체크
$exp=substr(strrchr($filename,"."),1);
$exp=strtolower($exp);
if($exp=="php" || $exp=="php3" || $exp=="inc" || $exp=="htm" || $exp=="html"){
$file_upload_msg = "\'{$filename}\' 파일이 정상적으로 업로드 되지 않았습니다.\\n";
continue;
}
말씀하신 부분은 이미 막혀있습니다.
// 아래의 문자열이 들어간 파일은 -x 를 붙여서 웹경로를 알더라도 실행을 하지 못하도록 함
$filename = preg_replace("/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", $filename);