분류 전체보기
-
[Dreamhack Wargame] xss-2 문제풀이 / write up정보보안/CTF write-up 2022. 7. 28. 15:05
문제에 대한 정보를 확인합니다. XSS 취약점이 있다는 것을 확인할 수 있고, 입력받은 URL로 접속을 하는 봇이 있다는 것을 알 수 있습니다. 사이트에 접속하면 세 가지 페이지가 있어요. 각각의 페이지는 주어진 소스를 보면서 분석 해보겠습니다. 일단 소스를 살펴보면 xss-1 문제와 매우 유사합니다. xss-1 문제의 경우에는 flag 페이지에 들어가서 쿠키를 담은 script를 전송하면 memo에서 flag 값이 보이는 문제였습니다. xss-1 문제와 나머지 소스 코드는 동일하나 한 가지만 달랐습니다. # xss-2 문제 @app.route("/vuln") def vuln(): return render_template("vuln.html") # xss-1 문제 @app.route("/vuln") de..
-
[Dreamhack Wargame] session-basic 문제풀이 / write up정보보안/CTF write-up 2022. 7. 20. 11:48
쿠키와 세션에 대한 강의를 보고 나니, 관련 문제가 있습니다. admin 계정으로 로그인하면 되는 문제입니다. 문제에서 문제 사이트에 접속할 수 있게 해줘서 들어가보니, 단순한 페이지 하나에 로그인 기능 하나 있습니다. 사이트를 살펴봤지만, 크게 얻을 수 있는 정보는 없어서 아래에 첨부된 파일도 함께 다운 받았습니다. 다운 받아보니 압축된 플라스크 파일 하나 있습니다. #!/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 = '[**FLA..
-
[Dreamhack Wargame] devtools-sources 문제풀이 / write-up정보보안/CTF write-up 2022. 7. 19. 19:42
드림핵 웹브라우저 부분 수업을 다 보고 나니, 개발자 모드와 관련된 문제가 하나 있었습니다. source 탭 기능을 사용하라고 합니다. Source 탭에서 Call Stack, Scope 등 다양한 기능을 살펴봤기 때문에 그 기능들을 사용하여 문제를 해결하면 되겠다는 생각이 들었습니다. 그래서 자바스크립트도 보고, html 소스들도 살펴봤습니다. 자바스크립트는 읽기 어렵게 되어있었고, HTML에도 특별히 숨어있는 것이 없었습니다. 플래그는 보통 정해진 형식으로 문제를 푸는 사람이 플래그를 발견하면 플래그가 무엇인지 알 수 있게 해줍니다. 드림핵의 경우에는 DH{플래그값}의 형식으로 플래그가 나와있습니다. 그래서 Ctrl+Shift+F 키를 눌러 'dh{'라는 문자열을 전체 파일에 대한 검색하였습니다. 생..
-
[webhacking.kr] old-01 문제 풀이 / write-up정보보안/CTF write-up 2022. 7. 19. 15:10
오랜만에 webhacking.kr에 들어와보니 전체적으로 리뉴얼 된 것 같네요. 처음에 풀 때는 회원가입이랑 로그인부터 문제였던 것 같았는데, 지금은 그렇지는 않네요 webhacking.kr은 Challenge에서 문제를 풀고 얻은 플래그 값을 Auth 탭에 들어가서 인증을 받으면 되는 방식입니다. 플래그가 없는 경우에는 solve() 함수를 통해서 자동으로 인증이 됩니다. old-01 문제를 풀어보겠습니다. 단순히 level : 1이라는 문자열만 있고, 아래엔 이 페이지의 소스를 볼 수 있는 링크가 있습니다. 아래의 링크를 눌러 소스를 보겠습니다. ---------------------
-
[Python] requests 모듈프로그래밍/Python 2022. 7. 13. 00:57
업무할 때는 파이썬을 사용할 때 계속 Spyder 이용하다가 밖에서도 기본 모듈인지 알고 import requests라고 했더니, 없는 모듈이라고 뜨네요.. 그래서 2년만에 pip를 사용해서 모듈을 설치해봅니다. pip3 install requests 위의 명령어를 사용하여 설치를 하려고 하니, pip를 업데이트 해야한다는 경고문이 뜹니다. python -m pip install --upgrade pip 업데이트 진행 후에 다시 설치를 해주니 성공적으로 설치가 됩니다.
-
[파이썬] 세탁소 사장 동혁 - 백준 2720번프로그래밍/Python 2022. 5. 6. 20:36
이번에도 저번에 풀었던 전자레인지 문제와 비슷한 문제입니다. 문제 미국으로 유학간 동혁이는 세탁소를 운영하고 있다. 동혁이는 최근에 아르바이트로 고등학생 리암을 채용했다. 동혁이는 리암에게 실망했다. 리암은 거스름돈을 주는 것을 자꾸 실수한다. 심지어 $0.5달러를 줘야하는 경우에 거스름돈으로 $5달러를 주는것이다! 어쩔수 없이 뛰어난 코딩 실력을 발휘해 리암을 도와주는 프로그램을 작성하려고 하지만, 디아블로를 하느라 코딩할 시간이 없어서 이 문제를 읽고 있는 여러분이 대신 해주어야 한다. 거스름돈의 액수가 주어지면 리암이 줘야할 쿼터(Quarter, $0.25)의 개수, 다임(Dime, $0.10)의 개수, 니켈(Nickel, $0.05)의 개수, 페니(Penny, $0.01)의 개수를 구하는 프로그램..
-
[파이썬] 전자레인지 - 백준 10162번프로그래밍/Python 2022. 5. 6. 20:16
지금 그리디 알고리즘을 공부하고 있기 때문에 오늘부터 그리디 알고리즘 문제들을 많이 풀어볼 생각이에요. 문제 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 각각 5분, 1분, 10초이다. 냉동음식마다 전자레인지로 요리해야할 시간 T가 초단위로 표시되어 있다. 우리는 A, B, C 3개의 버튼을 적절히 눌러서 그 시간의 합이 정확히 T초가 되도록 해야 한다. 단 버튼 A, B, C를 누른 횟수의 합은 항상 최소가 되어야 한다. 이것을 최소버튼 조작이라고 한다. 만일 요리시간이 100초라고 하면(T=100) B를 1번, C는 4번 누르면 된다. 이와 다르게..
-
[파이썬] 리스트로 평균 구하기프로그래밍/Python 2022. 2. 19. 21:50
자, 오늘은 리스트로 평균 구하는 법에 대해 알아보려합니다. sum 함수와 len 함수만 있으면 간단하게 계산이 가능한데요. 우선은 간단하게 계산하는 법에 대해 알아보고, 더 나아가 sum 함수와 len 함수를 직접 만들어보려고해요. 우선 데이터들이 필요합니다. 제 주변 사람들의 나이를 평균을 내어 보겠습니다. 데이터 삽입 사람 A B C D E F 나이 23 28 23 23 28 24 사람들의 나이를 리스트 안에 넣어야합니다. age = [23, 28, 23, 23, 28, 24] 데이터 추가 중간에 사람 한 명이 더 와서 데이터를 추가해야합니다. age.append(23) # [23, 28, 23, 23, 28, 24, 23] 사람 A B C D E F G 나이 23 28 23 23 28 24 23 ..