#!/usr/bin/python3from flask import Flask, request, render_template, make_response, redirect, url_for, session, gimport sqlite3import hashlibimport osimport time, randomapp = Flask(__name__)app.secret_key = os.urandom(32)DATABASE = "database.db"userLevel = { 0 : 'guest', 1 : 'admin'}MAXRESETCOUNT = 5try: FLAG = open('./flag.txt', 'r').read()except: FLAG = '[**FLAG**]'def makeBackupco..
전체 글
Dev, sec, ops파일을 선택해서 submit 하여 파일을 업로드 할 수 있는 페이지가 있다. 이 문제를 풀기 위해서는 htaccess가 무엇인지 알아야 한다..htaccess는 웹서버 접근 제어 파일이다. 그래서 .htaccess 파일을 사용하면 특정 동작을 수행하게 할 수 있다.이를 이용하여 정의되지 않는 확장자를 php로 작동할 수 있게 만들 것이다. AddType application/x-httpd-php .aaa위의 코드를 .htaccess파일에 넣어준다. aaa확장자 파일은 이제 php로 작동할 수 있다. 업로드가 되었으면 이제 flag를 찾을 웹쉘을 만들 것이다.확장자는 aaa로 만들어주어야한다. cmd명령을 입력 받을 수 있도록 설정했다.윈도우 디펜더 때문에 파일이 사라지거나 안열..
로그인과 회원가입하는 버튼이 있다.admin으로 로그인 해야하기 때문에 admin계정을 새로 만들어 보겠다. id는 4글자 이상, ps는 7글자 이상이어야 한다.admin계정을 만들어 보았지만admin이 존재한다고 뜬다.하지만 현재 admin의 ps를 모르기 때문에 로그인 하지 못한다. 코드를 보니 힌트가 있다. admin으로 회원가입 해야한다.즉 우회하여 admin으로 가입해야한다.그러기 위해선 admin 검증하는 부분을 찾아 보았다. maxlength가 32로 정해져 있다. 아마 admin도 32글자 까지만 검증하는 것 같다.그래서 maxlength를 33으로 바꿔주고 마지막에 1을 추가하였다. 회원가입을 완료하였고, 로그인을 하면 원래 flag가 나와야 되..