common.php에 아래를 추가를 했더니....
$sst = preg_replace("/[\<\>\'\"\%\=\(\)\s]/", "", $sst);
$sst = preg_replace("/[\<\>\'\"\%\=\(\)\s]/", "", $sst);
관리자 화면 첫페이지가 아래처럼 에러가 나네요. 위 소스를 추가한 위치가 틀린건가요?
원상복구를 했더니 에러는 없어졌습니다.

답변 2개 / 댓글 3개
채택된 답변
+20 포인트
2014-03-26 (수) 10:34:00
if (isset($sst)) {
$sst = mysql_real_escape_string($sst);
$qstr .= '&sst=' . urlencode($sst); // search sort (검색 정렬 필드)
}
이부분을
if (isset($sst)) {
$sst = mysql_real_escape_string($sst);
$sst = preg_replace("/[\<\>\'\"\%\=\(\)\s]/", "", $sst); // 보안패치 2014-03-25
$qstr .= '&sst=' . urlencode($sst); // search sort (검색 정렬 필드)
}
이렇게 고치셔야 해요
답변에 대한 댓글 2개
2014-03-26 (수) 10:41:50
2014-03-26 (수) 10:43:25
맞을꺼야 님,,,하나만 더 묻겟습니다.
아래꺼는 어떻게 패치하면 되는지요...
이건 추가를 해야 하나요?
lib/common.lib.php 의 sql_query() 함수에서 union 사용 및 information_schema DB 로의 접근을 허락하지 않습니다.
// Blind SQL Injection 취약점 해결
$sql = trim($sql);
// union의 사용을 허락하지 않습니다.
$sql = preg_replace("#^select.*from.*union.*#i", "select 1", $sql);
// `information_schema` DB로의 접근을 허락하지 않습니다.
$sql = preg_replace("#^select.*from.*where.*`?information_schema`?.*#i", "select 1", $sql);
아래꺼는 어떻게 패치하면 되는지요...
이건 추가를 해야 하나요?
lib/common.lib.php 의 sql_query() 함수에서 union 사용 및 information_schema DB 로의 접근을 허락하지 않습니다.
// Blind SQL Injection 취약점 해결
$sql = trim($sql);
// union의 사용을 허락하지 않습니다.
$sql = preg_replace("#^select.*from.*union.*#i", "select 1", $sql);
// `information_schema` DB로의 접근을 허락하지 않습니다.
$sql = preg_replace("#^select.*from.*where.*`?information_schema`?.*#i", "select 1", $sql);
2014-03-26 (수) 10:48:53
// mysql_query 와 mysql_error 를 한꺼번에 처리
function sql_query($sql, $error=TRUE)
{
if ($error)
$result = @mysql_query($sql) or die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : $_SERVER[PHP_SELF]");
else
$result = @mysql_query($sql);
return $result;
}
위부분을 아래와 같이 수정하세요
// mysql_query 와 mysql_error 를 한꺼번에 처리
function sql_query($sql, $error=TRUE)
{
// Blind SQL Injection 취약점 해결
$sql = trim($sql);
// union의 사용을 허락하지 않습니다.
$sql = preg_replace("#^select.*from.*union.*#i", "select 1", $sql);
// `information_schema` DB로의 접근을 허락하지 않습니다.
$sql = preg_replace("#^select.*from.*where.*`?information_schema`?.*#i", "select 1", $sql);
if ($error)
$result = @mysql_query($sql) or die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : $_SERVER[PHP_SELF]");
else
$result = @mysql_query($sql);
return $result;
}
답변에 대한 댓글 1개
2014-03-26 (수) 11:05:55
맞을꺼야 님,,
정말로 감사합니다......
덕분에 패치 완료 하였습니다....^^
감사합니다!!
정말로 감사합니다......
덕분에 패치 완료 하였습니다....^^
감사합니다!!
답변을 작성하려면 로그인이 필요합니다.
제가 초보자라서 몰랐습니다. 그냥 추가를 하면 되는가 해서....
리자님에게는,
저같은 초보자도 많을텐데, 패치에 관해 어느 부분에 추가를 하라던가 수정을 하라던가 식으로
설명을 해주셨으면 고맙겠습니다.