TECH / / 2023. 1. 31. 10:27

XSS(Cross-Site Scripting) 공격이란?

반응형

이번 글에서는 OWASP TOP 10 순위안에 항상 포함되는 해킹 공격 종류의 대표적인 방법 중 크로스사이트스크립팅(XSS)에 대해서 자세하게 알아보도록하겠습니다.  

 

크로스사이트스크립팅(XSS)란 무엇인가요?

 

XSS(Cross-Site Scripting) 응용 프로그램의 보안 취약성의 일종으로, 공격자가 다른 사용자가 보는 웹 사이트에 악의적인 스크립트를 주입할 수 있게 해줍니다. 이로 인해 쿠키 또는 양식 데이터와 같은 중요한 정보가 도용될 수 있으며 웹 사이트의 기능을 손상시킬 수도 있습니다.

 

그리고, 크로스 사이트 크립팅(XSS) 공격은 공격자가 웹 사이트에 악의적인 코드를 삽입하고 피해자의 인터넷 접속 브라우저에 의해 실행될 때 주로 발생합니다.

웹 사이트의 검색 필드는 사용자 입력을 적절히 확인하지 않고 공격자가 자바스크립트 코드를 검색 쿼리에 입력할 수 있도록 합니다.


피해자가 침해된 쿼리를 사용하여 검색을 수행하면 브라우저에서 악성 코드를 실행하고 공격자가 중요 정보(예: 로그인 자격 증명)를 탈취하거나 기타 악의적인 행위를 실행합니다.

 

XSS 예제 코드

 

악용하지 말고 공부나 참고용도로 활용하시기바랍니다.

 

1) 웹 사이트에는 사용자 입력을 가져와서 input 유효성을 제대로 검사하지 않고 웹 페이지에 결과를 표시하는 검색 필드가 있습니다.

 

<form>
  <input type="text" id="search">
  <button type="submit">Search</button>
</form>
<div id="results"></div>

<script>
  const form = document.querySelector('form');
  form.addEventListener('submit', (event) => {
    event.preventDefault();
    const search = document.querySelector('#search').value;
    document.querySelector('#results').innerHTML = search;
  });
</script>

 

2) 공격자는 검색 필드에 다음과 같은 텍스트를 입력합니다.

 

<script>
  alert('XSS Attack');
</script>

 


피해자가 검색을 실행하면 공격자의 스크립트가 실행되고 XSS 공격이라는 메시지의 경고 상자가 표시됩니다.
이 예는 사용자 입력이 적절히 검증되지 않은 경우 간단한 XSS 공격이 어떻게 수행되는지를 보여줍니다. 악의적 인 코드가 브라우저에 의해 실행되지 않도록하는 것이 중요합니다.

 

3. 공격을 당한 피해자가 웹페이지를 실행하면 공격자가 심어놓은 스크립트가 실행되고 XSS 공격이라는 메시지의 경고 박스가 아래와 같이 표시됩니다.

 

cross-site-scripting-xss

 

위의 XSS 예제 코드는 사용자 입력의 유효성을 제대로 검사하지 않은 경우 단순 XSS 공격을 실행하는 방법을 보여줍니다. XSS 공격을 방지하려면 사용자 입력을 검사하고 브라우저에서 악성 코드가 실행되지 않도록 특수 문자를 인코딩하는 것은 보안의 기본이며 매우 중요한 절차이니 항상 머릿속에 숙지하고 코딩하시기바랍니다.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유