Stage 1
OWASP IMAGE 링크에 있는 이미지를 삽입하는 문제이다.
<img src="images/logos/owasp.jpg" /> 라고 입력해주면 된다.
Stage 2
이미지 태그에 alert문을 넣어야 하는 문제이다.
<img src=javascript:alert('XSS')>라고 넣었는데
에러가 난다. 읽어 보니, onerror를 넣어 구성해야 하는 성공 조건이 있었다.
1 | <img src='' onerror=javascript:alert('XSS') /> | cs |
를 입력하면, 무한 alert문이 발생한다.
alert문을 제거한 후 재빨리 제출하면 끝난다.
Stage 3
IFRAME 태그에 alert문을 넣어야 한다.
onload라는 이벤트가 있어야 성공이라고 판단할 수 있는 것 같다.
1 | <iframe src='' onload=javascript:alert('XSS')></iframe> | cs |
으로 구성해 넣으면 되겠다.
Stage 4
가짜 로그인 form을 생성하는 문제이다.
그대로 복사해서 붙여넣은 후 제출하면 끝난다.
Stage 5
DOM XSS 취약점을 완화하기 위해 클라이언트 단에서 HTML 개체 인코딩을 수행하라는 문제이다.
escape.js 파일에 함수가 제공되나 보다.
Java Source 버튼을 클릭하면, 성공 조건을 볼 수 있다.
DOMXSS.js 파일에 escapeHTML(name)이라는 문자열을 넣어야 한다.
각각 내용을 확인하면, 다음과 같다. DOMXSS.js 파일 뒤에 escape.js의 escapeHTML 함수를 추가한 후,
innerHTML에 들어가는 name을 escapeHTML(name)으로 수정하면 되겠다.
이렇게 추가 및 수정하면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 | function displayGreeting(name) { if (name != ''){ document.getElementById("greeting").innerHTML="Hello, " + escapeHTML(name) + "!"; } } function escapeHTML (str) { var div = document.createElement('div'); var text = document.createTextNode(str); div.appendChild(text); return div.innerHTML; } | cs |
Congratulations 메시지가 안뜨고, 제출 시 오류가 발생한다.
target 경로가 살짝 다르다.
정해진 경로에 디렉터리를 추가해 DOMXSS.js 파일을 옮긴 후, 다시 제출하면 된다.
코드좀 확인하고 배포했으면 한다...
'[Wargame Write-up] > WebGoat' 카테고리의 다른 글
[WebGoat] [Access Control Flaws] Bypass a Path Based Access Conrol Scheme (0) | 2017.01.10 |
---|---|
[WebGoat] [AJAX Security] LAB: Client Side Filtering (0) | 2016.12.29 |
[WebGoat] [Injection Flaws] Log Spoofing (0) | 2016.12.29 |
[WebGoat] [Improper Error Handling] Fail Open Authentication Scheme (0) | 2016.11.15 |
[WebGoat] [Injection Flaws] Command Injection (0) | 2016.10.27 |