Web Hacking/Dreamhack

#!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' users = { 'guest': 'guest', 'user': 'user1234', 'admin': FLAG } # this is our session storage session_storage = { } @app.route('/') def index(): session_id = request.cookies.get('sessionid', None) try: ..
본 문제의 목표는 admin 계정으로 로그인을 성공하는 것이다. 위 코드를 보면 가장 먼저 계정이 guest와 admin이 있는 것을 알 수 있다. guest의 경우 비밀번호가 guest인 것을 알 수 있으나 admin의 비밀번호는 FLAG로 되어있으며 알 수 없다. index 엔드포인트 코드를 보면 request.cookies.get('username', None)이 코드가 쿠키에서 username을 가져오는 것을 알 수 있는데 어떤 뜻인지 확인해보기 위해 먼저 guest로 로그인 해보았다. username과 비밀번호를 각각 guest, guest로 입력하면 로그인이 되어 위와 같은 페이지가 나온다. guest계정이고, admin계정이 아니라는 것을 주는 것 같다. 쿠키를 확인해보면 쿠키의 이름은 us..
문제를 풀려면 encile을 복호화하여 flag.png를 복구해야 한다. 즉, flag.png를 암호화한 rot128.py 코드를 살펴보자.*복호화하려면 암호화된 코드를 알아야 함!* #!/usr/bin/env python3hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)]with open('flag.png', 'rb') as f:    plain_s = f.read()plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s]enc_list = list(range(len(plain_list)))for i in range(len(plain_list)):    hex_b = plain_list[i] ..
#!/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..
파일을 선택해서 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가 나와야 되..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
최하호
'Web Hacking/Dreamhack' 카테고리의 글 목록