▷ 작성자 : 니키 (ngnicky@a3sc.co.kr)
▷ 편집자 : 니키 (ngnicky@a3sc.co.kr)

MySQL 에서 Column값을 삽입하는 과정에서 MAX값을 체크하지 않아 정해진 크기 이후로 입력되는 값이 생략되면서, 관리자 권한 우회 가능성이 존재합니다.

현재 MySQL 뿐 아니라 MS-SQL 대상으로 연구중입니다.

원본 URL : http://www.suspekt.org/2008/08/18/mysql-and-sql-column-truncation-vulnerabilities/

아래는 MySQL 5.0에서 점검한 내용으로써, 내용처럼 특수문자가 짤린 상태에서 정상적으로 입력되는 것을 볼 수 있습니다. 공격자가 악의적으로 관리자 아이디(admin)가 존재할 시에 동일한 아이디를 생성할 가능성이 존재하겠죠?.
프로세스 차원에서 'admin'이라는 사용자는 모두 관리자 권한을 주고 있다면 관리자 권한까지 획득할 가능성이 존재합니다.




아래는 MS-SQL 2000에서 점검한 내용인데 정해진 길이 이상으로 입력시에는 에러가 발생하고 있습니다. 다른 차원에서 접근을 해보면서 지속적으로 연구해볼 문제인듯 합니다.



대응방안

[소스레벨]

- 서버스크립트단에서 길이체크를 해서 정해진 문자 크기 이상으로 DBMS에 저장이 되지 않도록 해야 합니다.

[DBMS레벨]
- MySQL 인 경우에는 UDF(User Defined-Function)을 활용해야 합니다.
- MS-SQL 과 Oracle인 경우에는 개별 프로시저를 활용해야 합니다.
※ DMMS레벨은 더 조사를 하고 앞으로 정리를 하도록 하겠습니다.


Copyright(c) 1998-2008 A3 Security ,LTD


Disclaimer
※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.