XSS 취약점 중에 Reflected XSS를 실습했습니다
기본적인 자바스크립트 코드를 이용했습니다
하지만 이런 XSS 취약점들은 어느 웹사이트에서나 존재할 수 있으며 해당 웹사이트 마다 주입하는 코드가 다를 수 있습니다
자바스크립트 인젝션 탭으로 이동하여 비밀번호 생성기를 이용하여 실습했습니다
해당 페이지는 Generate 버튼 클릭시 무작위의 비밀번호를 생성해줍니다
웹 페이지에서 보이는 anonymous는 URL에 존재하는 username 파라미터의 변수로서 사용됩니다
이를 통해 username 파라미터를 사용하여 먼저 이름을 변경해봤습니다
파라미터를 test로 변경 시 웹페이지에 그대로 적용되는 것을 확인했습니다
이제 XSS 취약점을 찾기위해 기본적인 스크립트를 넣어 시도해봤습니다
<script>alert("XSS")</script>
경고 창이 나타나지 않으며 오류가 발생했다고 나타납니다
브라우저의 Inspect기능을 이용하여 해당 오류 부분의 소스코드를 확인했습니다
사용자가 입력한 파라미터의 값 이전에 스크립트 태그로 감싸져 있습니다
또한 입력값이 따옴표로 묶여있습니다
"; alert('XSS')
다시 시도 후 소스코드를 확인했습니다
따옴표는 정확히 잘 닫혀있으며 기본적으로 웹페이지에 하드코딩된 따옴표가 뒤에 발생합니다
최종 XSS 스크립트 코드는 아래와 같습니다
"; alert('XSS'); //
모든 취약점은 웹 사이트마다 다를 수 있습니다
그러므로 소스코드를 확인하며 웹 사이트 간에 데이터 전송 방식(GET, POST) 또는 익스플로잇을 하기 위해 해당 특정 웹페이지에 맞도록 조정해야 합니다