제로보드4 게시판에 인터니즈2 님께서 올리신 대응법입니다.
http://www.xpressengine.com/?mid=zb4_security&page=2&document_srl=18608421
소스 잘 보시고 적용하시면 됩니다.
주의 사항은 본인의 상황에 맞게 수정후,
lib가 있는 폴더에 업로드 하여 실행해야 정상적으로 처리가 됩니다.
require "../zboard/lib.php"; // ◀--- 사이트의 상황에 맞게 수정해주세요~
if(!$connect) $connect = dbconn();
$View_Level="1"; // 실행권한조정(현재1등급)
if(!$member) $member=member_info();
if(!$member[no]) Error("권한이 없습니다(1)! ","window.close");
if($member[level]>$View_Level) Error("권한이 없습니다(2)! ","window.close");
$que2 = "select name from zetyx_admin_table";
$result2=mysql_query($que2) or Error(mysql_error());
while($temp2 = mysql_fetch_array($result2)){
$board_name=$temp2[name];
$check=0;
echo("$board_name - 악성스크립트 인젝션공격 확인시작!
\n");
$que = "select no, memo from zetyx_board_$board_name order by no desc";
$result=mysql_query($que) or Error(mysql_error());
while($data = mysql_fetch_array($result)){
$mem_no = $data[no];
$check_memo=$data[memo];
///////////////////////////////////////////////////////////////////////////////////////////////////////////
$sp_change_word = "SCRIPT Language=JavaScript src=\"./";
$sp_change_word_pattern ="/".str_replace("\0","\\0",preg_quote($sp_change_word,"/"))."/i";
$check_memo = preg_replace($sp_change_word_pattern, "", $check_memo);
///////////////////////////////////////////////////////////////////////////////////////////////////////////
if($check_memo<>$data[memo]) {
$check=1;
echo("$mem_no | ");
}
}
if($check==0) {
echo("$board_name - 악성스크립트 인젝션공격이 없었습니다!
\n");
} else {
echo("
$board_name - 해당번호의 게시물에 포함되어 스크립트가 있습니다!
\n");
}
}
echo("악성스크립트 확인시에는 따로 프로그램을 돌려주세요!~ \n");
if($connect) mysql_close($connect);
?>