[picoCTF] login writeup

SCY·2023년 1월 30일
0

picoCTF

목록 보기
10/13

문제

https://play.picoctf.org/practice/challenge/200?category=1&page=1

풀이

해결 과정

HTML과 CSS 소스에는 크게 중요한 내용이 없다고 판단하였다.
JS 소스 코드를 보자.

(async()=>{
    await new Promise((e=>window.addEventListener("load", e))),
    document.querySelector("form").addEventListener("submit", (e=>{
        e.preventDefault();
        const r = {
            u: "input[name=username]",
            p: "input[name=password]"
        }
          , t = {};
        for (const e in r)
            t[e] = btoa(document.querySelector(r[e]).value).replace(/=/g, "");
        return "YWRtaW4" !== t.u ? alert("Incorrect Username") : "cGljb0NURns1M3J2M3JfNTNydjNyXzUzcnYzcl81M3J2M3JfNTNydjNyfQ" !== t.p ? alert("Incorrect Password") : void alert(`Correct Password! Your flag is ${atob(t.p)}.`)
    }
    ))
}
)();

username은 YWRtaW4와,
password는 cGljb0NURns1M3J2M3JfNTNydjNyXzUzcnYzcl81M3J2M3JfNTNydjNyfQ와 같아야 한다.

위 두 문장이 답의 근거가 될텐데 btoa()를 통해 인코딩 되어있다.
따라서 나는 atob()를 통해 해당 문장들을 디코딩 해주었다.


console을 이용하여 작성해주었다.

정답

picoCTF{53rv3r_53rv3r_53rv3r_53rv3r_53rv3r}

profile
성장 중독 | 서버, 데이터, 정보 보안을 공부합니다.

0개의 댓글