테스트 사이트 - 개발 중인 베타 버전입니다

euc-kr 서버에서 그누보드5 사용하기 채택완료

gilynh 11년 전 조회 9,613
euc-kr 로 세팅 되어 있는 계정에 그누보드 5 utf-8로 되어 있는 소스를 그대로 올려서 사용하고 있습니다.
다른 기능은 전부 정상적으로 출력되고 작동을 하는데, 문제는 escape_trim 함수가 제대로 작동을 하지 않습니다.
결론은 mysql_real_escape_string 함수가 제대로 동작을 하지 않는 다는 점인데요.
bo_table 변수에 sql인젝션을 먹여서 공격하면 바로 sql  에러문을 출력시켜버리네요.
xss 공격에도 무력화 되는 모습입니다.
동일한 공격을 utf-8서버에 설치된 그누보드 5에 하면 전혀 먹히지 않는 단순한 공격입니다.
stripslashes 함수로도 막히지 않고 뚫리는 모습입니다.

SunOS webbuild1 5.10 Generic_148888-03 sun4u
Apache 2.0
PHP Version 5.3.8
mysql Client API version 5.1.48
서버 환경입니다.

그누보드 5를 안쓰고 4 euc-kr을 쓰면 해결 될 일이긴 한데, 그누보드5를 꼭 쓰고 싶습니다.
전 소스를 euc-kr로 컨버팅해서 사용해보면 해결 될까요?
xss공격이나 sql인젝션 공격 방어나 혹은 다른 해결 법을 아시는 분 도움을 바랍니다.
댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
편리
11년 전
mysql_real_escape_string 함수가 문제라면 addslashes 함수를 사용해도 대응은 될텐데요..
로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

g
gilynh
11년 전
공격문이
board.php?bo_table=04_noticeWFXSSProbe%27"%29%2F>
입니다.
addslashes도 안먹히고 sql에러문을 출력하네요.
g
gilynh
11년 전
[code]
//common.php :: 364
if ($bo_table) {
$bo_table = escape_trim($bo_table);
$sql = " select * from {$g5['board_table']} where bo_table = '$bo_table' ";
$board = sql_fetch($sql);
[/code]
다행이 이 방식으로 bo_table 공격은 막았습니다. 그런데 xss등은 답이 안나오네요. ㅜ_ㅜ
편리
11년 전
http://kr1.php.net/manual/en/function.mysql-real-escape-string.php#101248
위 내용대로 함수를 만들어서 사용하시는 건 어떨까 싶습니다.
g
gilynh
11년 전
편리님 감사합니다! ㅎㅎㅎ

댓글을 작성하려면 로그인이 필요합니다.

11년 전
독립서버라면 mysql_real_escape_string 함수등을 사용할 수 있는 모듈을 추가 설치하시구요

호스팅이라면 업체에 문의해보시는게 빠를꺼 같습니다. 
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

g
gilynh
11년 전
euc-kr 과는 관련없이 mysql_real_escape_string 모듈 설치가 되지 않아서 그런 걸까요?
서버가 대학교내에서 관리하는 서버라서 대응을 안해줍니다.
알아서 해결하라는 식이네요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인