그누보드에서 인자값에 \ 자동으로 붙이는 코드가 어디있나요?

그누보드에서 인자값에 \ 자동으로 붙이는 코드가 어디있나요?

QA

그누보드에서 인자값에 \ 자동으로 붙이는 코드가 어디있나요?

본문

안녕하세요.

그누보드 시스템에선 특정 특수문자를 인자값을 전달 시 특수문자 앞에 \ 가 붙는 것을 확인하였습니다.

ex)

' > \' 
\ > \\ 

 

아마도 SQL 인젝션과 같은 보안상의 이유로 그누보드 시스템 자체적으로 어디선가 이를 정의한거 같은데, 위의 내용을 수행하는 코드가 어떤 파일에 있나요? 알려주신다면 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 3

/lib/common.lib.php

 

 

funciton bad_tag_convert ($code) {

.........

 

이걸 찾으시는건가요?

 


// 검색어 특수문자 제거
function get_search_string($stx)

 

 


// XSS 관련 태그 제거
function clean_xss_tags($str)

 

 


// unescape nl 얻기
function conv_unescape_nl($str)

 

 


// 파일명에서 특수문자 제거
function get_safe_filename($name)

 


// QUERY STRING 에 포함된 XSS 태그 제거
function clean_query_string($query, $amp=true)

 

 

이중에서 필요핫니걸 찾으시면되지 않을까 싶네요

 

말씀해 주신 함수들 모두 찾아서 함수를 삭제하거나 return 값을 함수인자값 그대로 반환하는걸로 바꾸어 보아도 결과값은 동일합니다ㅜㅜ

/bbs/login.php?test='grd'

위와 같이 인자값에 '(작은따움표)가 있을 때, echo $_GET['grd'] 를 하게 되면 \'grd\' 로 출력이 됩니다.. 님께서 써주신 함수 중에 쿼리스트링에서 XSS 태그를 제외하는 함수가 가장 근접해 보였으나 해당 함수를 아무리 조작해 봐도 결과값은 동일합니다ㅜ 그누보드+아미나 빌더를 사용하고 있는데 어째서 이런 결과값이 나오는 것일까요ㅜ

설명이 조금 복잡하긴한데요

 

common.php가 기본적으로 인클루드되고

"쌍따옴표, ' 따옴표 등의 문자에 대해서

 

array_map_deep 함수를 통해서

G5_ESCAPE_FUNCTION에 해당되는 내용이 호출되고

해당 내용은

sql_escape_string에 매핑되서

php함수인

addslashes

를 작동시킵니다.

 

그래서, 위의 질문과 같은 형태로 만들어진 값이 넘겨받게 됩니다.

이런게 싫으시면

 

//include_once('./_common.php');

와 같이  주석으로 막아보세요

글러면 원하시는 따옴표로 받을수있을겁니다만

보안은 책임질수 없겠죠

 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,643 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT