관리 메뉴

nalaolla

[MSSQLTIP] 동적쿼리 보안 취약점찾기, EXECUTE AS CALLER외의 내용 찾기 본문

MS-SQL

[MSSQLTIP] 동적쿼리 보안 취약점찾기, EXECUTE AS CALLER외의 내용 찾기

날아올라↗↗ 2015. 12. 20. 15:44
728x90

일반적으로 동적문자열 실행의 사용은 피해야합니다또한 프로시저에 기본 권한인 EXECUTE AS CALLER가 아닌 별개의 권한 할당을 한 경우 주의해야합니다.

아래링크를 참조해서 살펴보고 좀 개선해 보았습니다. 쓸만할 겁니다 ^^

http://www.sqlskills.com/BLOGS/KIMBERLY/post/Looking-for-security-vulnerabilities-in-database-code.aspx

 

SELECT so.type [타입], OBJECT_NAME(sm.object_id) AS [프로시저명],

  CASE

      WHEN sm.definition LIKE '%EXEC (%' OR sm.definition LIKE '%EXEC(%' THEN '경고: EXEC 포함'

      WHEN sm.definition LIKE '%EXECUTE (%' OR sm.definition LIKE '%EXECUTE(%' THEN '경고: EXECUTE 포함'

      ELSE '없음'

  END AS [동적구문],

  CASE

      WHEN execute_as_principal_id = '-2' THEN N'EXECUTE BY OWNER'

      WHEN execute_as_principal_id IS NOT NULL THEN N'경고: EXECUTE AS ' + UPPER(user_name(execute_as_principal_id))

      ELSE 'EXECUTE BY CALLER(기본)'

  END AS [실행자]

FROM sys.sql_modules AS sm

JOIN sys.objects so ON sm.object_id = so.object_id

ORDER BY [타입],[프로시저명]

728x90