본문 바로가기

전체 글237

[SECCON - Beginners_CTF_2021] werewolf 1. 개요 web, python class private 멤버 변수 문제 2. 분석 코드를 보면, 다음과 같이 role 넣으면 될 것 같지만 안됩니다. data = { "role": "WEREWOLF", } Player 클래스를 보면 role은 접두사로 __(언더바 2개)를 붙여서 private으로 선언했습니다. 그래서 외부에서 접근할때는 _Player__role 로 접근해야합니다. import os import random from flask import Flask, render_template, request, session # ==================== app = Flask(__name__) app.FLAG = os.getenv("CTF4B_FLAG") # ================.. 2023. 5. 28.
[SCTF 2022] CUSES 1. 개요 aes-256-ctr 문제, 세션 조작 문제 2. 분석 주석에 적힌대로 guest/guestpassword 를 입력하면 로그인됩니다. 코드를 보면 aes-256-ctr을 사용해서 세션을 생성하고 있고, 세션 생성에서 username을 꺼내옵니다. - ctr - XOR 연산을 사용 - 세션에는 username이 포함됨(예: 'guest', 'admin') 3. exploit - guest/guestpassword 로 로그인 후 세션을 받습니다. - 세션에서 'guest' 가 포함된 부분을 'admin'으로 바꿉니다. XOR이 적용되었기 때문에 복호화 가능합니다. - ex) 'a'에 적용된 ctr 암호화 결과 = 'g'에 적용된 암호화 결과 ^ 'g' ^ 'a' - 세션을 바꿔서 플래그를 얻어옵니.. 2023. 5. 21.
[SCTF 2022] Imageium 1. 개요 python pillo CVE-2022-22817 문제, RCE 문제 2. 분석 접속하면, pillow 라이브러리로 계산한 이미지를 보여줍니다. http://localhost:37359/dynamic/modified?mode=r 코드를 보면, ImageMath.eval 로 mode 파라미터를 실행시킵니다. mode에 python 코드를 넣고 실행시켜봅시다. @app.route("/dynamic/modified", methods=['GET']) def modified(): mode = request.args.get('mode', '') img = Image.open("./original.jpeg") buf = BytesIO() try: if mode: for w in badlist: if w i.. 2023. 5. 20.
[SCTF 2022] DocxArchive 1. 개요 파일 카빙 문제 2. 분석 1) foremost `RecoverMe.docx` 파일을 줍니다. 파일 카빙 문제이고, 쉬운 중 하나는 foremost를 사용하는 것 입니다. foretmost -t all RecoverMe.docx 2) docx OLE(Object Linking and Embedding) 파일은 여러개의 파일을 모아진 형태이고, RecoverMe.zip 으로 확장자를 변경하고 압축해제하면, 연결된 파일들을 볼 수 있습니다. unzip RecoverMe.zip 결과는 다음과 같은데요, oleObject1.bin 파일이 수상합니다. hex 에디터로 살펴보면 안에 png 파일이 들어 있습니다. PNG 파일 시그니처 잘 보고 새 파일로 만들면 flag를 얻을 수 있습니다. 2023. 5. 20.