반영된 XSS(입력)

Feb 23 2023
안녕하세요 친구 여러분, 오늘은 제가 .Net Core MVC를 사용하여 개발한 Saka라는 프로젝트에서 웹 애플리케이션 보안 테스트에서 접한 Reflected XSS(Input) 취약점과 유사한 취약점을 탐지하고 악용하는 단계를 보여드리겠습니다.

안녕하세요 친구 여러분, 오늘은 제가 .Net Core MVC를 사용하여 개발한 Saka 라는 프로젝트에서 웹 애플리케이션 보안 테스트에서 접한 Reflected XSS(Input) 취약점과 유사한 취약점을 탐지하고 악용하는 단계를 보여드리겠습니다.

XSS란?

아래 문서에서 XSS 취약점에 대한 자세한 정보를 찾을 수 있습니다.

애플리케이션 실행

도커

docker pull erdemstar/saka:reflected-xss-input
docker run -d -p 80:80 erdemstar/saka:reflected-xss-input

git clone https://github.com/ErdemStar/Saka
cd reflected-xss-input
- mouse click on reflected-xss-input.sln
- devenv reflected-xss-input.sln (CMD)

응용 프로그램을 처음 열면 아래와 같은 페이지가 우리를 환영합니다. 페이지에서 공격 버튼을 누르면 테스트할 부분으로 이동합니다.

인덱스 페이지

공격 페이지에 도달하면 사용자로부터 이름 정보를 가져오는 페이지에 직면하게 됩니다. 이 필드에 이름을 적어 보내면 다음과 같은 결과가 나옵니다.

공격 페이지
공격 페이지

애플리케이션을 자세히 살펴보려면 브라우저를 통해 들어오고 나가는 요청을 보는 것이 유용할 것입니다.

Burp 프록시 공격 페이지e

정신 메모

  • 사용자로부터 받은 값은 name 매개변수에 보관되며 POST HTTP Verb를 사용하여 전송됩니다.
  • 애플리케이션은 수신한 이름 값을 <b></b> 에 추가 하고 응답합니다.

애플리케이션에 대한 충분한 정보를 얻은 후 XSS 취약점을 악용하기 위해 보낼 이름 값에 브라우저에서 해석할 일부 문자를 추가합니다.

Burp 프록시 공격 페이지

수신된 회신의 내용을 확인할 때 해당 애플리케이션은 보안 확인 없이 당사로부터 받은 이름 값을 반영한 것으로 파악됩니다.

애플리케이션 동작에 대한 많은 정보를 얻은 후 이름 필드에 아래와 같은 요청을 보낼 때 애플리케이션에서 Reflected XSS 시나리오를 수행합니다.

Burp 프록시 공격 페이지
공격 페이지

제 글을 읽어주셔서 감사합니다. 도움이 되었기를 바랍니다. 아래에 귀하에게 유용할 수 있는 다른 개념의 링크를 남겨 둡니다.

웹 취약점에 대한 다른 기사를 보려면 여기를 클릭하십시오. 링크