JWT - Introduction Write-up

Ccr3t·2026년 3월 13일

Wargame

목록 보기
75/76

[Solved in under 2 minutes]

나 오늘 사이판 간다.

그냥 자랑 하고 싶었다.

가보자.



접속하면 일단 로그인 창이 뜬다.

소스코드를 한번 보자


<html>
    <head>
        <style>
            .panel {
                background: #f3f2f2;
                width: 300px;
                border-radius: 6px;
                margin: 0 auto 0 auto;
                border: #767676 3px solid;
                padding: 10px;
            }

            .input {
                border-radius:4px;
                background: #f5f5f5;
                border: #ccc 1px solid;
                margin-left: 25px;
                margin-top: 10px;
                padding-top:5px;
                padding-bottom:5px;
                width:250px;
            }

            .btn {
                background: #f1c40f;
                width:250px;
                padding-top:5px;
                padding-bottom:5px;
                color:white;
                border-radius:4px;
                border: #f1c40f 1px solid;

                margin-top:20px;
                margin-bottom:20px;
                margin-left:25px;
                font-weight:800;
                font-size:0.8em;
            }

            .btn:hover{
                background: gold;
            }
        </style>
    </head>
   <body><link rel='stylesheet' property='stylesheet' id='s' type='text/css' href='/template/s.css' media='all' /><iframe id='iframe' src='https://www.root-me.org/?page=externe_header'></iframe>
        <link rel='stylesheet' property='stylesheet' id='s' type='text/css' href='/template/s.css' media='all' />
        <iframe id='iframe' src='https://www.root-me.org/?page=externe_header'></iframe>

        <div class="panel">
            
                    <form method="post" action="index.php">
                        <h1>Login Form</h1>
        
                        <input type="text" name="username" placeholder=" Username" class="input" />
        
                        <input type="password" name="password" placeholder=" Password"  class="input" />
        
                        <button type="submit" class="btn">Sign In</button>
                    </form>
        
                    <p>You don't have an account? <a href="index.php?guest" style="color:#f1c40f;">Login as Guest!</a></p>
                        </div>
    </body>
</html>

어? index.php?guest 형식으로 하면 GET으로 guest 로그인 되는 것 같아서 일단 한번 날려봤다.

로그인 잘 되는거 확인했고,

여기서 어? 그럼 그냥 admin으로 쏘면 이거 날먹 ㅆ가능 아니냐 했다.

ㅋㅋㅋㅋ 어림도 없었다.

보통 guest로 로그인되는 이런 문제는 99.7% 확률로 admin으로 로그인하면 풀리는 문제다.

쿠키를 확인해보자

대놓고 나 JWT요.

이러고 있는 애들 발견해서 돌려봤다.

HS256알고리즘을 사용하고 username이 guest인것을 확인했다.

이제 뭐 어쩌라고? 시크릿키 크랙이라도 해야하나 싶었는데..

냅다 그냥 알고리즘 부분에 none으로 때려 넣고 username도 admin으로 바꿔서 다시 토큰화 해서 넣었다

예?

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 답 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

S1gn4tuR3_v3r1f1c4t10N_1S_1MP0Rt4n7

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

내가 아직 필드를 많이 안 뛰어봐서 잘 모르는 걸 수도 있는데.

JWT를 가지고 이렇게 쉽게 안 뚫린다. none? 들어보지도 못했다.

하지만, 이런게 있구나 정도로 알고는 있자

RootMe JWT - Introduction Write-up

이상 보고 끝!

profile
웹해킹을 잘 못 하지만 좋아 하려고 노력하는 한 젊은이.

0개의 댓글