λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
βœ’οΈ Web Hacking/Dreamhack

[Dreamhack] XSS-2 λ“œλ¦Όν•΅ μ›Œκ²Œμž„ 문제 풀이

by A Lim Han 2022. 9. 21.

2 - 0 - 3. XSS - 2 취약점 뢄석 μ‹€μŠ΅

 

 

 

# XSS - 2 취약점 뢄석 μ‹€μŠ΅

1. 문제 확인 ν›„ 문제 파일 λ‹€μš΄λ‘œλ“œ

 

 

 

2. 접속 정보 ν™•μΈμ—μ„œ http://host3.dreamhack.games:15556/ νŽ˜μ΄μ§€λ‘œ 접속 ν›„ vuln νŽ˜μ΄μ§€λ‘œ 이동  -->  νŒμ—…μ°½μ΄ λœ¨μ§€ μ•ŠμŒμ„ 확인

 

 

 

 

3. μ½”λ“œ 뢄석 및 XSS - 1 사둀와 비ꡐ해보기

+ xss - 1의 사둀와 λΉ„κ΅ν•˜μ—¬ μ½”λ“œ μƒμ—μ„œ νŠΉλ³„νžˆ λ³΄μ΄λŠ” 이상은 μ—†μŒ

 

+ xss - 1 νŽ˜μ΄μ§€μ™€λŠ” 달리 xss -2 νŽ˜μ΄μ§€μ—λŠ” 방화벽이 ν™œμ„±ν™”λ˜μ–΄μžˆμŒ

--> 방화벽을 μš°νšŒν•˜μ—¬ xss 취약점을 λ°œμƒμ‹œμΌœ νŒμ—…μ°½μ΄ λœ¨λ„λ‘ ν•΄μ•Ό 함

 

+ 방법 1) λ°©ν™”λ²½ 우회λ₯Ό μœ„ν•΄ <script> μ½”λ“œκ°€ μ•„λ‹Œ html νƒœκ·Έ μ‚¬μš©

-->  <svg/onload> νƒœκ·Έ ν™œμš© (μ›Ήμš© λ²‘ν„°κ·Έλž˜ν”½ svg의 HTML λ¬Έμ„œμ— 직접 μ‚½μž…μ΄ κ°€λŠ₯ν•œ μ„±μ§ˆ 이용)

 <svg/onload> 
svg(=Scalable Vector Graphic) onload 속성

 

+ 방법 2) λ°©ν™”λ²½ 우회 μœ„ν•΄ <img> νƒœκ·Έ μ‚¬μš©

<img> νƒœκ·Έ onerror
이미지 μ‚½μž… 경둜λ₯Ό src μ˜΅μ…˜μ„ 톡해 μ§€μ •ν•˜λŠ” νƒœκ·Έ 이전 μ½”λ“œ μ—λŸ¬ λ°œμƒ μ‹œ μ‹€ν–‰λ˜λ©°, λ’€μ˜ μ½”λ“œλ₯Ό μ‹€ν–‰μ‹œν‚¬ 수 있음

 

 

 

4. λ‹€μ‹œ flag νŽ˜μ΄μ§€λ‘œ 접속 ν›„ 방법 1인 <svg onload=location.href="/memo?memo="+document.cookie'> μ½”λ“œλ₯Ό λΉˆμΉΈμ— μž…λ ₯

 

μ •μƒμ μœΌλ‘œ μž…λ ₯λ˜μ—ˆμ„ 경우 good 좜λ ₯

 

 

 

5. good 좜λ ₯ ν›„ λ‹€μ‹œ memo νŽ˜μ΄μ§€λ‘œ μ ‘μ†ν•˜μ—¬ FLAG 확인

FLAGλŠ” DH{3c01577e9542ec24d68ba0ffb846508f}

 

 

 

6. 방법2λ₯Ό μ‹œλ„ν•΄λ³΄κΈ° μœ„ν•΄ λ‹€μ‹œ flag νŽ˜μ΄μ§€λ‘œ 이동 ν›„ λΉˆμΉΈμ— <img src=x onerror=javascript:location.href="/memo?memo="+document.cookie> μž…λ ₯

 

μ •μƒμ μœΌλ‘œ μž…λ ₯된 경우 good 좜λ ₯

 

 

 

7. good 좜λ ₯ ν›„ λ‹€μ‹œ memo νŽ˜μ΄μ§€λ‘œ λŒμ•„μ™€ FLAG의 정상 좜λ ₯ μ—¬λΆ€ 확인

방법 1의 κ²½μš°μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ FLAG 값이 잘 좜λ ₯됨