2010-05-27 8 views
0

우리는 MS SQL 데이터베이스를 사용하는 간단한 ASP 응용 프로그램에서 펜 테스트를 수행하고 있습니다. 동적 생성 쿼리를 사용하지만 단일 qout을 이스케이프하는 것으로 인증하는 것 같습니다. % uFFO7, % u02b9 등의 유니 코드 따옴표를 사용할 때 우리는 성공적으로 SQL 삽입을 주입 할 수 있습니다. 유니 코드 문자를 표준화하기 위해 IIS 서버의 구성 문제가 더 많아 졌는지 또는 작은 따옴표를 이스케이프 처리하는 유효성 검사 함수를 작성하는 방식이 문제의 원인인지 이해하고 싶습니까?IIS 6.0 서버 및 유니 코드 문자

+0

공격 예제를 추가해야합니다. 현재 수행중인 작업이 명확하지 않습니다. '% uXXXX'는 유효한 URL 인코딩 된 유니 코드 문자가 아니며, JavaScript'escape()'함수에 의해 생성 된 커스텀 형식입니다. 결코 사용되어서는 안됩니다. – bobince

답변

0

ASP 코드 샘플이 있습니까? 이해할 수 있듯이 인코딩은 IIS에 의해 수행되지만 전송 용이며 실제로 볼 수 없기 때문에 이스케이프 기능에 결함이있을 수 있습니다. 이것은 저장 프로 시저 (어떤 경우에도 따옴표는 신경 쓰지 않지만 리터럴 문자로 받아 들일 수 있음)를 사용하는 대신 동적 SQL 문자열을 작성하는 경우 특히 그렇습니다.

+0

이전 질문에서 한 가지 수정은 데이터베이스가 MS SQL이 아니라 Oracle입니다. 동안 파로스에서 촬영 한 후 콘텐츠를 이용 는 & = 로그인 __DIRTY = 1 & __ SENTITY = __ ISPOPUP = 1 & __ ISWIZARDSTEP = 0 __ ISRETURN = 0 __ viewstate가있다 = TRUE & AccessibleMode = 거짓 & FromLogin = 1 SubmitButton = + 쿼리 및 사용자 이름 = 사용자 % uFF07 + 제출 - 및 암호 = 암호 쿼리를 그 NetMon을 사용하여 데이터베이스 서버로 이동할 때 캡처 됨 Usr_Id, Usr_Status 사용자 선택 User_Name = 'user'- '및 Usr_Password ='password ' 문자 % uFF07이 (가) 따옴표로 해석됩니다. – Srikanth

+0

SQL Server는 아니지만 오라클. "저장 프로 시저"대신 "패키지"를 사용하면 같은 위치에 있습니다. ASP 코드에서 동적 SQL 문자열을 작성하는 것은 사용자가 지적한 익스플로잇 때문에 조금 위험합니다. 쿼리 문자열 입력을 처리하는 코드 섹션을 게시 할 수 있습니까? –