본문 바로가기

전체 글125

UTCTF 2022 1. Login as Admin Pt 1 (Web) 문제를 살펴보면 관리자 권한으로 로그인을 하라는 것으로 보인다. app.py를 다운 받아서 코드를 살펴보았다. username, pdw가 각각 admin이고 cookie의 value가 True이면 flag를 얻을 수 있는 것으로 보인다. 문제에 나와 있는 링크로 접속했다. 이 상태에서 admin으로 로그인을 하자 로그인이 거부되었다. cookie의 value를 False에서 True로 바꿔주었다. cookie의 value를 바꿔준 다음에 다시 admin으로 로그인을 시도하자 플래그가 출력되었다. 2. Login as Admin Pt 2 (Web) 문제를 살펴보면 이전 문제와 동일하게 관리자 권한으로 로그인을 하라는 것으로 보인다. 문제에 나와 있는 링크.. 2022. 6. 28.
DaVinciCTF 2022 1. EBG13 (Crypto) 문제를 살펴보면 암호 qiPGS{3apElcg1ba_1f_r4fl}를 해석해야 하는 것으로 보인다. flag의 형태가 dvCTF{···}라는 것을 알고 있기 때문에 qiPGS{3apElcg1ba_1f_r4fl}와 dvCTF{···}와의 상관관계를 찾아보았다. https://ko.wikipedia.org/wiki/%EC%98%81%EC%96%B4_%EC%95%8C%ED%8C%8C%EB%B2%B3 영어 알파벳 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org dvCTF{···}에서 앞으로 알파벳 13칸을 이동하면 qiPGS{3apElcg1ba_1f_r4fl}가 나온다는 규칙을 발견하였다. 이때, 소문자는 소문자로 대문자는 대문자로 변환해주었다. 문자와 숫자는 .. 2022. 6. 28.
funjs [문제] [풀이] 문제에 접속하면 "Find FLAG !"가 써있는 입력창이 계속 움직이는 것을 확인할 수 있다. function moveBox() { box.posX = Math.random() * (window.innerWidth - 64); box.posY = Math.random() * (document.documentElement.scrollHeight - 64); box.style.marginLeft = box.posX + "px"; box.style.marginTop = box.posY + "px"; debugger; } 입력창의 이동과 debugger의 감지를 moveBox() 함수가 담당하고 있기에 해당 부분을 삭제하고 저장해 주었다. moveBox() 함수를 삭제하니 더 이상 입력창이 .. 2022. 5. 14.
login-1 [문제] [풀이] 문제에 접속화면 로그인을 할 수 있는 /login 페이지, 회원가입을 할 수 있는 /register 페이지, password를 찾을 수 있는 /forgot_password 페이지를 확인할 수 있다. 우선 소스 코드를 살펴보자. 소스 코드를 살펴보면 guest 계정과 admin 계정의 userLevel을 0과 1로 나눈 것을 확인할 수 있다. /forgot_password 페이지에서는 사용자가 backupCode를 입력하여 입력한 값이 일치한다면 password를 변경해주고 있다. 이때, sleep(1)을 걸어서 1초 내에 여러 접근이 발생할 경우 race condition 취약점이 발생한다. 해당 취약점을 이용하여 burte force Attack을 수행해 문제를 해결하는 것으로 보인다.. 2022. 5. 14.
session [문제] [풀이] 소스 코드를 살펴보면 guest, user, admin 계정이 있음을 확인할 수 있다. os.urandom(4).hex() 함수를 통해 4byte의 무작위 값을 hex 값으로 변환하여 session_id에 저장한다. 그 다음에 session_storage[session_id] = username을 통해 로그인 한 사용자의 세션 ID를 정의한다. session_storage[os.urandom(1).hex()] = 'admin'을 통해 admin의 세션 ID를 정의한다. 이때, admin의 세션 ID는 1byte의 hex 값으로 설정된다. 플래그를 얻기 위해서는 admin 계정으로 로그인을 해야 하는데 admin의 세션 ID를 Brute force attack을 통해 알아낸 다음 admi.. 2022. 5. 14.
web-misconf-1 [문제] [풀이] 문제에 접속하면 다음과 같은 화면이 나타난다. 보통 웹 서버의 관리자 초기 아이디와 비밀번호는 admin이기 때문에 시험삼아 한 번 admin을 입력해주었다. admin을 입력하자 로그인이 진행되고 비밀번호를 바꾸라는 화면이 나타난다. 새로운 비밀번호를 admin_new로 변경한 다음 마저 진행했다. 비밀번호를 바꾸고 페이지를 들어가면 다음과 같이 Welcome to Grafana 문구가 출력된 화면을 확인할 수 있다. 여기서 Organization을 찾아 플래그를 획득하면 문제가 해결될 것으로 보인다. 왼쪽 탭에서 Server Admin/Orgs로 이동해보았지만 플래그를 찾을 수 없었다. 해당 탭이 아닌 다른 탭에 플래그가 있을 것이라 생각해 다른 탭들을 마저 찾아보았다. 플래그는 S.. 2022. 5. 10.