2026. 4. 1. 14:27ㆍ보안/Web security Academy
Lab: Reflected XSS into a JavaScript string with single quote and backslash escaped
This lab contains a reflected cross-site scripting vulnerability in the search query tracking functionality. The reflection occurs inside a JavaScript string with single quotes and backslashes escaped.
To solve this lab, perform a cross-site scripting attack that breaks out of the JavaScript string and calls the alert function.
(이 연구실에는 검색 쿼리 추적 기능에 반영된 사이트 간 스크립팅 취약점이 포함되어 있습니다. 이 반사는 단일 따옴표와 백슬래시가 제거된 JavaScript 문자열 내부에서 발생합니다.
이 실험실을 해결하기 위해 JavaScript 문자열에서 벗어나 경고 함수를 호출하는 사이트 간 스크립팅 공격을 수행합니다.)
1. 웹페이지 코드를 보니 검색창에 들어간 값을 searchTerms에 저장하여 인코딩하여 URL에 적용시키는 방식입니다

그럼 '따옴표를 통해서 밖으로 나와서 alert를 실행을 시키면 될것같습니다
<script>
var searchTerms = '\'; alert(1); //';
document.write('<img src="/resources/images/tracker.gif?searchTerms='+encodeURIComponent(searchTerms)+'">');
</script>
해보니 안됩니다 문제에서 '따옴표랑 백슬래쉬관련 공격을 차단을 했다고 합니다..
다른 방법을 고민해보니 5search results for'v'가 h1으로 들어가 이를 공략을 해보면 어떨까 생각했습니다
h1을 닫고 실행을 시키면 alert가 발생하지 않을까해서 집어넣어봤습니다
</h1><script>alert(1)</script>를 해보니깐
<h1>0 search results for '</h1><script>alert(1)</script>'</h1>
괄호같은 문자들이 인코딩되어서 제가 원하는 기능이 되지 않습니다..
그렇게 다시 고민을 하던중 이전에 했던 변수를 통해서 하는 것을 script로 시작을 했으니 script를 닫아주고
alert를 실행시키면 어떨까 해서
</sciprt><img src =x onerror=alert(1)>를 했습니다

네 성공했습니다
정답을 확인을 해보니
</script><script>alert(1)</script>
sciprt를 닫고 다시 열어서 alert를 실행을 시켜줬네요
이상입니다
감사합니다
'보안 > Web security Academy' 카테고리의 다른 글
| web security academy 34 (1) | 2026.04.07 |
|---|---|
| web security academy 33 (0) | 2026.04.02 |
| web security academy 31 (0) | 2026.03.31 |
| web security academy 30 (0) | 2026.03.30 |
| web security academy 29 (0) | 2026.03.27 |