2010-06-16 5 views
1

XSS에 대한 질문이 있습니다XSS 데이터가 저장되지 않아도 공격 벡터로 XSS가 발생합니까?

데이터가 데이터베이스에 저장되어 나중에 사용 되더라도 XSS의 벡터로 사용할 수 있습니까?

즉 PHP의 코드는이 될 것입니다 :
<form input="text" value="<?= @$_POST['my_field'] ?>" name='my_field'> 

위의 코드 사소한 자신의 브라우저에서 경고 상자 (JS 실행할 수 있다는 것을 보여)보기. 그러나 이것은 여러 브라우저에서 악용 될 수 있습니까? 내가 보는 유일한 시나리오는 누군가 특정 페이지 (예 : CSRF와 XSS의 조합)를 방문하도록 속이는 것입니다.

"데이터베이스에 저장되어 나중에 사용됨": CSS에 대해 알고있는 시나리오는 JavaScript를 실행하는 사이트에 데이터를 게시 할 수 있으며 브라우저에서 페이지가 더 큰 페이지에 표시됩니다./자신보다 다른 권한. 그러나 명확히 말하면, 이것은 이 아니고 와트입니다.

답변

1

예, 여전히 공격 벡터입니다.

당신이 고려할 필요가있다 :

는 인증 된 사용자가 악의적으로 제작 된 데이터를이 페이지를 볼 속아서 할 수 있습니까?

답변은이 경우 예 (인증 된 사용자가 있다고 가정)입니다. 누군가를 사이트로 유도하고 악의적 인 변수를 해당 필드에 전달할 수 있기 때문입니다.

0

사용자 2가 사용자 1이 추가 한 이전 데이터를 표시 할 수 없으므로 사용자가 의도 한 바가 있다고 생각합니다. 따라서 XSS가 발생할 수 있습니까? 따라서 사용자 1이 URL을 해킹하여 일부 $ _GET 매개 변수가 웹 페이지에 표시되도록 한 다음 (심지어는 tinyurl로 변경)이 URL을 퍼뜨려이 페이지 등을 볼 가치가 있다고 말하면 가능할 수도 있습니다.

페이지를 표시 할 때 모든 매개 변수를 이스케이프하는 것이 좋습니다.

0

이것은 절대적으로 유효한 XSS 형식입니다. XSS는 저장 및 반영의 두 가지 형태로 제공됩니다. 반영된 것이 훨씬 더 일반적이지만 저장하면 더 큰 손해를 입을 가능성이 있습니다. 반사 된 XSS는 일반적으로 사회 공학 공격의 일부로 사용됩니다. 공격자는 다음과 같은 URL을 만듭니다. http://host.com/page.php?my_field=malicious_code 그들은 종종 tinyutl 또는 bit.ly로 URL을 단축하고 일반적인 사회 공학 방법 (전자 메일, 게시판, 트위터, 하이재킹 된 페이스 북 계정 등)을 사용하여이를 해제합니다.

1

그래도 영향은 더 상황에 따라 다르지만 공격 벡터입니다.

1) 공격자가 CSRF를 사용하여 여기에

양식에 도달하기 위해 인증이 필요합니다 (그리고 사이트가 양식 POST를 통해 제출하는 경우 신경 또는 GET하지 않는 경우 쉽게) 경우 이전 답변에 확장 인위적인 시나리오입니다 예 : < iframe src = http://../login?id=...&pass= ... "> </iframe >) 공격자의 자격 증명을 사용하여 피해자를 로그인하십시오. 이렇게하면 공격자가 양식을 피해자에게 가져오고 피해자가 계정.
2) 공격자는 또 다른 CSRF를 사용하여 양식에 대해 XSS를 실행합니다.이 CSR은 일부 자격 증명 등을 묻습니다.(설득력있는 사회 공학이 필요하거나 공격자가 사이트의 브라우저의 동일 출처 내에서 사용할 유용한 JavaScript가있는 곳입니다.) 취약한 양식이 송금과 같은 몇 가지 중요한 작업을 수행하는 또 다른 인위적인 시나리오입니다. 계정 간 :

0) 취약한 양식은 CSRF를 방지하기 위해 임의의 값으로 숨겨진 양식 필드를 사용합니다. 공격자는 값이 무엇인지 알지 못하며 적절한 공격을 설정할 수 없습니다.
1) 공격자가 폼의 임의의 csrf 토큰을 읽는 자바 스크립트가 포함 된 CSRF 페이로드를 만듭니다 (즉, 브라우저의 DOM에서 가져 오기).
2) 피해자가 사이트에 로그인합니다.
) 공격자가 CSRF 페이로드 피해자를 유혹하며 CSRF는 피해자의 브라우저에서 실행 중이며 피해 사이트의 동일 출처 내에서 실행되고 피해자의 인증 세션을 사용하기 때문에 양식 요청을 올바른 csrf 토큰으로 부트 스트랩합니다. 침입자는 csrf 토큰을 알 필요가 없으며이를 저장하는 양식 필드를 조작 할 수 있습니다. 4) 공격자는 피해자가 CSRF 페이로드로 유인하는 것을 제외하고는 팝업이나 사회 공학을 필요로하지 않고 공격자가 "유용"할 필요가있는 양식을 제출하게됩니다.

관련 문제