다음 컨텍스트에서 자바 스크립트를 삽입하고 실행할 수 있습니까? 또는 JavaScript 문자열을 종료 하시겠습니까?URL을 JavaScript 문자열에 삽입하면 JavaScript 삽입이 가능합니까?
- URL은 자바 스크립트 문자열 (구분 따옴표)
- URL은 브라우저가 아닌 서버 측에서 인코딩 된 URL입니다에 삽입됩니다. 는 URL이 (자바 스크립트 또는 백 엔드에서 중) 디코딩되지 않습니다
- (단순화를 위해, 단지 파이어 폭스와 크롬을 사용)
예 :
는var baseURL = "http://example.com/?[USER CONTROLLED INPUT]";
주 하나는 종료되지 않은이 발생할 수 있음 문자열 리터럴 "\
"로 끝나는 문자열을 제공하여 JavaScript 오류가 발생했습니다. 이 오류가 다른 사용자 입력 사용에 영향을 미치지 않는다고 가정합니다.
참고 : 현재 브라우저 URI 인코딩은 다양합니다.
주어진 다음의 URL :
example.com?!*'();:@&=+$,/?[]"%-.<>\^_`{|}~#
파이어 폭스 27.01을 제출 :
http://example.com/?!*%27%28%29;:@&=+$,/[]%22%-.%3C%3E\^_%60{|}~#
크롬 32.0을 제출 :
http://example.com/?!*%27();:@&=+$,/?[]%22%-.%3C%3E\^_`{|}~#
'# '이 실제로 제출 된 것으로 의심됩니다. :) – Gumbo
'[USER CONTROLLED INPUT]'이 서버에 의해 출력되고 있다면, 사용자는';; alert ('foobar'); _ = "'를 입력하여"foobar "를 깨지 않고 경고 할 수 있습니다 암호. 그것이 javascript에 의해 대신 만들어지면 html을 생성하는 데 사용되지 않는 한 중단되지 않습니다. –
검보 : 기술적으로 정확합니다. 올바른 최고의 종류. Kevin : 사용자의 특수 문자는 브라우저에서 URL로 인코딩됩니다. 결과는 다음과 같습니다. "example.com/?%22;alert(%27foobar%27);_%20=%20%22"; "지저분한 문자열 일 수는 있지만 자바 스크립트 삽입은 아닙니다. –