Dreamhack - Curling
·
DreamHack/CTF
1. 소스코드from flask import Flask, request # Flask 웹 프레임워크와 요청 처리를 위한 모듈from os import urandom # 안전한 랜덤 바이트 생성을 위한 모듈from subprocess import run, TimeoutExpired # 외부 명령어 실행 및 타임아웃 처리를 위한 모듈# Flask 애플리케이션 객체 생성app = Flask(__name__)# 세션 및 CSRF 보호를 위한 비밀 키 생성 (32바이트 랜덤 값)app.secret_key = urandom(32)# 플래그 값 로드 시도: 서버 환경에서 "/flag" 파일 읽기try: FLAG = open("/flag", "r").read().strip() # 파일에서 플래그를 읽어 공..
chockshop
·
DreamHack/CTF
문제 페이지를 들어가면 액세스를 위해서는 세션이 필요하다고 한다. Acquire Session을 눌러 들어가 보자.           들어가는 순간 SHOP, MYPAGE 가 나오는데 둘러보자.                    flag는 2000 파운드로 판매되고 있다. MYPAGE에 들어가 보자.         Coupon Claim을 누르면 쿠폰 값을 주고 그 밑에다가 제출하는 식인거 같다.           Claim 을 누르면 쿠폰 값이 뜨고            submit 하면 바로 1000파운드가 생긴다. flag는 2000파운드다. 힌트에서는 사용된 쿠폰을 검사하는 로직이 취약하다고 하니 그걸 중점으로 한번 보자.          # Redis와 Flask 라이브러리를 사용하여 웹 애플리케..
Secure Secret
·
DreamHack/CTF
#!/usr/bin/env python3import osimport stringfrom flask import Flask, request, abort, render_template, session# 비밀 파일을 저장할 경로와 허용할 문자 집합을 정의합니다.SECRETS_PATH = 'secrets/'ALLOWED_CHARACTERS = string.ascii_letters + string.digits + '/'#알파벳 대문자 소문자 숫자 슬래시만 허용 된다.# Flask 애플리케이션을 초기화합니다.app = Flask(__name__)# 세션 암호화에 사용할 비밀 키를 무작위로 생성합니다.app.secret_key = os.urandom(32)# 샘플 파일을 생성하여 기본 메시지를 씁니다.with ope..
(CTF 출제) simple-web-request
·
DreamHack/CTF
문제화면이다. STEP 1을 들어가 보자.             문제코드도 한번 보자.       #!/usr/bin/python3import osfrom flask import Flask, request, render_template, redirect, url_forimport sysapp = Flask(__name__)try: # flag is here! FLAG = open("./flag.txt", "r").read() except: FLAG = "[**FLAG**]"@app.route("/")def index(): return render_template("index.html")@app.route("/step1", methods=["GET", "POST"])def ..
(CTF 출제) Tomcat Manager
·
DreamHack/CTF
문제화면이다. 개발 중이라고 하니 공사 중인 이미지를 넣은 거 같다. 소스코드를 봐보자         FROM tomcat:8.0.51-jre7-alpineENV RUN_USER tomcatENV RUN_GROUP tomcatRUN addgroup ${RUN_GROUP} && adduser -G ${RUN_GROUP} -D -h ${CATALINA_HOME} ${RUN_USER}RUN chown -R tomcat:tomcat $CATALINA_HOMERUN ls -lah $CATALINA_HOMERUN rm -rf /usr/local/tomcat/webapps/ROOT/COPY flag /flagCOPY ROOT.war /usr/local/tomcat/webapps/ROOT.warCOPY tomcat-u..
(CTF 출제) amocafe
·
DreamHack/CTF
암호학문제인데 인 거 같은데          그냥 커피 마시지.. 일단 소스코드를 한번 보자         def index(): menu_str = '' org = FLAG[10:29] org = int(org) st = ['' for i in range(16)] for i in range (0, 16): res = (org >> (4 * i)) & 0xf if 0   menu_str = '' > menu_str에 빈 문자열을 선언한다. org = FLAG [10:29]> FLAG 변수에서 인덱스 11 [시작점]부터 28까지의 슬라이스를 가져와 org 변수에 저장된다. (10,29는 미포함) org = int(org)              [FLAG..
(CTF 출제) Whis-is-my-ip
·
DreamHack/CTF
벽뒤에 있는데 어캐알앗냐고 뭐라 칸다 문제화면을 보자               IP가 고스란히 나온다 (물론 수정한 거지만) 소스코드를 봐보자   #!/usr/bin/python3import osfrom subprocess import run, TimeoutExpiredfrom flask import Flask, request, render_templateapp = Flask(__name__)app.secret_key = os.urandom(64)@app.route('/')def flag(): user_ip = request.access_route[0] if request.access_route else request.remote_addr try: result = run( ..
(CTF 출제) BypassIF
·
DreamHack/CTF
문제화면이다. 키를 찾아 FLAG를 받는 느낌이다. 뭐 아무것도 없으니 코드를 한번 봐야겠다.         #!/usr/bin/env python3import subprocessfrom flask import Flask, request, render_template, redirect, url_forimport stringimport osimport hashlibapp = Flask(__name__)try: FLAG = open("./flag.txt", "r").read()except: FLAG = "[**FLAG**]"KEY = hashlib.md5(FLAG.encode()).hexdigest()guest_key = hashlib.md5(b"guest").hexdigest()# filteri..
(CTF 출제) Random-Test
·
DreamHack/CTF
#!/usr/bin/python3from flask import Flask, request, render_templateimport stringimport randomapp = Flask(__name__)try: FLAG = open("./flag.txt", "r").read() # flag is here!except: FLAG = "[**FLAG**]"rand_str = ""alphanumeric = string.ascii_lowercase + string.digitsfor i in range(4): rand_str += str(random.choice(alphanumeric))rand_num = random.randint(100, 200)@app.route("/", meth..