□ 개요
o 국내 PHP기반의 공개 웹 게시판인 그누보드에서 SQL Injection 취약점이 발견됨[1]
o 취약한 버전을 사용하고 있을 경우, DB정보 유출 등의 피해를 입을 수 있으므로 웹 관리자의
적극적인 조치 필요
□ 해당시스템
o 영향받는 소프트웨어[1]
- 그누보드 4.34.09 및 이전 버전
□ 해결방안
o 그누보드 4.34.09 및 이전버전 사용자는 4.34.10버전으로 업데이트[1]
※ 패치 작업 이전에 원본 파일은 백업 필요
o 그누보드를 새로 설치하는 이용자
- 반드시 보안패치가 적용된 최신버전(4.34.10)을 설치
□ 용어 정리
o PHP : 동적인 웹사이트를 위한 서버 측 스크립트 언어
o SQL Injection : 웹 응용 프로그램에 강제로 SQL구문을 삽입하여 내부 데이터베이스서버의
데이터를 유출 및 변조하고 관리자 인증을 우회할 수 있는 공격
o 그누보드 : PHP언어로 작성된 홈페이지용 게시판 소프트웨어 또는 프레임 워크
□ 기타 문의사항
o 한국인터넷진흥원 인터넷침해대응센터: 국번없이 118
[참고사이트]
[1] http://sir.co.kr/bbs/board.php?bo_table=g4_pds&wr_id=6476
4.34.10 (11.08.10)
: [보안패치] $_SERVER 배열변수 값의 변조를 이용한 SQL Injection 공격을 막는 코드입니다.
(SK Infosec 장경칩님께서 알려 주셨습니다.)
bbs/visit_insert.inc.php 의
$sql = " insert $g4[visit_table] ( vi_id, vi_ip, vi_date, vi_time, vi_referer, vi_agent ) values ( '$vi_id', '$_SERVER[REMOTE_ADDR]', '$g4[time_ymd]', '$g4[time_his]', '$_SERVER[HTTP_REFERER]', '$_SERVER[HTTP_USER_AGENT]' ) ";
를 아래 코드로 대체합니다.
$remote_addr = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$referer = mysql_real_escape_string($_SERVER['HTTP_REFERER']);
$user_agent = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);
$sql = " insert $g4[visit_table] ( vi_id, vi_ip, vi_date, vi_time, vi_referer, vi_agent ) values ( '$vi_id', '$remote_addr', '$g4[time_ymd]', '$g4[time_his]', '$referer', '$user_agent' ) ";
댓글