본문 바로가기

전체 글

(113)
[드림핵 워게임] ex-reg-ex 1. 사이트 및 코드 확인 문제 사이트에 접속하면 처음으로 보이는 페이지다. 입력란이 있고, 그 아래에 Input 값과 Flag를 출력하는 박스가 있다. 입력란에 임의로 'a'를 입력했더니 위와 같은 결과가 나왔다. def index(): input_val = "" if request.method == "POST": input_val = request.form.get("input_val", "") m = re.match(r'dr\w{5,7}e\d+am@[a-z]{3,7}\.\w+', input_val) if m: return render_template("index.html", pre_txt=input_val, flag=FLAG) return render_template("index.html", pre_..
[드림핵 워게임] Flying Chars 1. 사이트 접속 문제 사이트에 접속해보았다. 작은 문자들이 날아다니는 것을 볼 수 있다. 문제 설명대로 첨부파일이 주어져있지 않기 때문에 개발자 도구를 열어서 소스를 확인해보기로 했다. 2. 개발자 도구로 소스보기 개발자 도구의 Elements 탭에서 html 소스를 보았다. 먼저 태그를 탐색했다. 태그 안에는 19개의 태그들이 들어있다. 날아다니는 문자들의 정체가 바로 이 이미지들인 것 같다. const img_files = ["/static/images/10.png", "/static/images/17.png", "/static/images/13.png", "/static/images/7.png","/static/images/16.png", "/static/images/8.png", "/static..
[드림핵 워게임] phpreg - step1 1. 코드 및 사이트 확인 문제 사이트에 접속하면 처음으로 보이는 페이지다. 닉네임과 패스워드를 입력하는 폼을 확인할 수 있다. if ($name === "dnyang0310" && $pw === "d4y0r50ng+1+13") { echo 'Step 2 : Almost done...'; $cmd = $_POST["cmd"] ? $_POST["cmd"] : ""; if ($cmd === "") { echo ' '; } // cmd filtering else if (preg_match("/flag/i", $cmd)) { echo "Error!"; } else{ echo "--Output--\n"; system($cmd); echo ""; } } else{ echo "Wrong nickname..
[드림핵 워게임] cg-simple_sqli 1. 사이트 및 코드 확인 문제 사이트에 접속하면 처음에 보이는 페이지다. Login을 클릭해보았다. 로그인 입력창을 확인할 수 있다. DATABASE = "database.db" if os.path.exists(DATABASE) == False: db = sqlite3.connect(DATABASE) db.execute('create table users(userid char(100), userpassword char(100));') db.execute(f'insert into users(userid, userpassword) values ("guest", "guest"), ("admin", "{binascii.hexlify(os.urandom(16)).decode("utf8")}");') db.com..
[드림핵 워게임] amocafe 1. 문제 사이트와 코드 살펴보기 문제의 사이트에 접속해보면 처음에 위와 같은 화면이 뜬다. 아모의 최애 메뉴(1_c_3_c_0__ff_3e)가 암호화된 문자열로 주어지고, menu number를 입력할 수 있는 입력창을 확인할 수 있다. "My favorite menu is {{ menu }} 🥤" order 해당 부분에 대한 코드를 templates/index.html 파일에서 확인해보면 암호화된 문자열은 {menu} 라는 파라미터를 통해 전달받고 있는 것을 볼 수 있다. 입력창에 아무 숫자나 입력해보았다. try again... 이라는 결과가 뜬다. # POST if request.method == "POST": input_str = request.form.get("menu_input", "") i..
[TJCTF 2023]swill-squill 1. 사이트 기능 확인 처음 페이지에 방문하면 뜨는 페이지이다. Name과 Grade 입력란과 Register 버튼을 확인할 수 있다. 값을 입력해서 Register 해보았다. Register를 하고 나니 Note 입력란과 Save Note 버튼이 있는 페이지로 연결된다. 노트를 입력해보았다. 같은 페이지의 상단에 내가 입력한 노트가 보여진다. 2. 코드 확인하기 def create_db(): conn = sqlite3.connect(':memory:') c = conn.cursor() c.execute( 'CREATE TABLE users (name text, grade text)') c.execute( 'CREATE TABLE notes (description text, owner text)') c...
[BYUCTF 2023] Notes (미해결) 1. Server 페이지 기능과 코드 확인 우선 Server 링크로 접근해 페이지와 코드를 확인해보았다. server.py 코드의 상단을 먼저 살펴보면 다음과 같다. FLAG = open("flag.txt", "r").read() SECRET = open("secret.txt", "r").read() users = [{'username':'admin','password':SECRET}] # NEVER DO THIS IN PRODUCTION fyi notes = [{ "note":FLAG, "user":"admin", "id":"00000000000000000000000000000000", "shared":[] }] csrf_tokens = [] users 배열에는 admin 계정을 포함한 사용자 계정 정..
[Vishwa CTF] Eeezzy(미해결) 1. 시작 받은 링크로 들어가면 뜨는 첫 화면이다. 로그인 폼을 확인할 수 있다. 코드도 제공되고 있다. 분석해보면, username과 password 값을 GET 방식으로 받고 있다. 둘다 값이 존재하면 $flag와 값을 비교해서 $flag와 값이 같으면 $_SESSION['status']에 $flag를 저장하고 다르면 "Invalid username or password"라는 문구를 저장한다. 예외가 발생하면 $_SESSION['status']에 $flag를 저장한다. 2. 페이지 기능 확인 username과 password에 임의의 값을 입력하고 로그인을 했더니 로그인 폼 안에 Invalid username or password라는 문구가 출력된다. 앞서 코드를 살펴본 바에 따르면 $_SESSION..