driver.get('<http://3.39.55.38:1929/login>')driver.find_element_by_id('id').send_keys('admin')driver.find_element_by_id('pw').send_keys('$MiLEYEN4')driver.find_element_by_id('submit').click()time.sleep(2)
주어진 소스코드의 bot.py
를 열람할 경우, admin의 정보를 사용해 로그인하는 것을 확인할 수 있습니다.
따라서 다음과 같이 로그인한 뒤, flag 게시글에 접속할 경우 플래그를 얻을 수 있습니다.
id: admin
pw: $MiLEYEN4
FLAG: codegate2022{4074a143396395e7196bbfd60da0d3a7739139b66543871611c4d5eb397884a9}
다음은 본 프로그램의 주요 코드입니다.
func (this *LoginController) Auth() {
id := this.GetString("id")
password := this.GetString("password")
if id == admin_id && password == admin_pw {
this.Ctx.SetCookie(Md5("sess"), Md5(admin_id + auth_key), 300)
this.Ctx.WriteString("<script>alert('Login Success');location.href='/main/index';</script>")
return
}
this.Ctx.WriteString("<script>alert('Login Fail');location.href='/login/login';</script>")
}
admin계정으로 로그인할 경우, /main/index로 접속하게 되며, index의 내용은 다음과 같습니다.
<html>
<head>
<title>{{.app_name}}</title>
</head>
<body>
<h3>Index</h3>
{{.flag}}
</body>
</html>
MD5 collision 등 다양한 것을 시도해봤지만, 결국 아이디 admin
과 비밀번호 password
로 로그인할 수 있었습니다.
FLAG: codegate2022{d9adbe86f4ecc93944e77183e1dc6342}