web hacking 8

simple_sqli

로그인 서비스입니다. SQL INJECTION 취약점을 통해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. #!/usr/bin/python3 from flask import Flask, request, render_template, g import sqlite3 import os import binascii app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' # table만들기 DATABASE = "database.db" if os.path.exists(DATABASE) == False: db = sqlit..

csrf-1

여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. CSRF 취약점을 이용해 플래그를 획득하세요. xss-1, xss-2와 똑같은 함수들이 있다. #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url, cookie={"name": "name", "value": "value"}..

xss-2

여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{…} 입니다. xss-1과 굉장히 유사한 문제이다. #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]" def read_url(url,..

xss-1

여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. 플래그 형식은 DH{…} 입니다. 해당 문제는 함께 실습이기 때문에 문제풀이를 먼저 보면 쉽게 풀 수 있다. 하지만 문제풀이 부터 보게 된다면 별 생각없이 얻거가는 것이 없기 때문에 문제부터 풀어보았다. #!/usr/bin/python3 from flask import Flask, request, render_template from selenium import webdriver import urllib import os app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = op..

session-basic

쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. 플래그 형식은 DH{…} 입니다. #!/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_storag..

cookie

쿠키로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. 플래그 형식은 DH{…} 입니다. #!/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', 'admin': FLAG } @app.route('/') def index(): username = request.cookies.get('username..

devtools-sources

개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요. 플래그 형식은 DH{…} 입니다. 보통 flag는 어떠한 목적을 달성하기 위해 있다. system hacking에서는 셸을 얻어 flag를 읽으면 셸을 사용할 권한을 얻었다는 의미다. 그러나 이 문제는 무엇을 달성하고 싶은 것인지가 애매하다. 그래서 처음에는 하나씩 클릭해보며 무슨 사이트인지 확인해본다. 홈페이지만 봐서는 무슨 홈페이지인지 전혀 짐작이 가지 않는다. james torres라는 사람을 소개하는 홈페이지 같기도 하다. 목적이 추측되지 않으므로 문제를 다시 보아 '개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요' 라는 말을 되새긴다. sources라는 탭에 Ctrl+F를 하면 나오나? webpack의 styl..