| 취약점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) |
|