워게임
-
Flying Chars목차문제풀이 과정결과문제문자가 날아다닌다는데, 웹 사이트를 확인해볼 경우웹사이트에 단어가 미친듯이 움직이는것을 확인할 수 있습니다.그래서 움직이지 않게 하거나,이미지를 하나하나 확인해보면 될것 같다는 생각을 했습니다.풀이과정웹사이트의 이미지 파일을 확인해볼 경우 단어들을 확인할 수 있습니다.이제 순서만 확인하면 되는데, 순서를 확인하는것은 어려운일이 아니다.이 웹사이트의 코드를 확인해볼 경우 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.pn..
[DreamHack] Flying CharsFlying Chars목차문제풀이 과정결과문제문자가 날아다닌다는데, 웹 사이트를 확인해볼 경우웹사이트에 단어가 미친듯이 움직이는것을 확인할 수 있습니다.그래서 움직이지 않게 하거나,이미지를 하나하나 확인해보면 될것 같다는 생각을 했습니다.풀이과정웹사이트의 이미지 파일을 확인해볼 경우 단어들을 확인할 수 있습니다.이제 순서만 확인하면 되는데, 순서를 확인하는것은 어려운일이 아니다.이 웹사이트의 코드를 확인해볼 경우 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.pn..
2024.07.31 -
XSS Filtering BypassXSS Filtering ByPass문제 설명문제 풀이문제 요약문제 설명- 3개의 페이지와 각 페이지의 기능vuln(xss)page단순하게 이미지를 출력하는 페이지로 보입니다. 또한 GET방식을 사용하는것을 보아, param저 변수가 취약한 파라미터가 될 수 있을것이라고 생각됩니다. memomemo를 출력하는 페이지로 보입니다.이것 또한GET방식을 사용하는것을 보아 시도해보는것도 좋을거 같습니다. flag입력한값에 제출하면 저 url대로 동작하는것이라고 생각합니다. POST 방식을 사용합니다. app.py 코드의 주요 함수 확인 def check_xss(param, cookie={"name": "name", "value": "value"}): url = f"htt..
XSS Filtering BypassXSS Filtering BypassXSS Filtering ByPass문제 설명문제 풀이문제 요약문제 설명- 3개의 페이지와 각 페이지의 기능vuln(xss)page단순하게 이미지를 출력하는 페이지로 보입니다. 또한 GET방식을 사용하는것을 보아, param저 변수가 취약한 파라미터가 될 수 있을것이라고 생각됩니다. memomemo를 출력하는 페이지로 보입니다.이것 또한GET방식을 사용하는것을 보아 시도해보는것도 좋을거 같습니다. flag입력한값에 제출하면 저 url대로 동작하는것이라고 생각합니다. POST 방식을 사용합니다. app.py 코드의 주요 함수 확인 def check_xss(param, cookie={"name": "name", "value": "value"}): url = f"htt..
2024.05.31 -
보호되어 있는 글입니다.
[pwnable] shell_basic 문제풀이보호되어 있는 글입니다.
2024.05.26 -
Armory 문제(및 설명) Shamir의 스키마를 개선하여 결정론적으로 파생된 공유를 사용했습니다. 비트코인 개인 키 및 기타 비밀 데이터 저장에 좋습니다. 당신은 첫 번째 공유만 가지고 있고 플래그를 해제하기 위해 3개가 필요하기 때문에 어떤 가능성도 없습니다. 풀이 더보기 #!/usr/bin/env python3 import hashlib FLAG = b"crypto{???????????????????????}" PRIME = 77793805322526801978326005188088213205424384389488111175220421173086192558047 def _eval_at(poly, x, prime): accum = 0 for coeff in reversed(poly): accum *..
[CryptoHack] MISC(Armory)Armory 문제(및 설명) Shamir의 스키마를 개선하여 결정론적으로 파생된 공유를 사용했습니다. 비트코인 개인 키 및 기타 비밀 데이터 저장에 좋습니다. 당신은 첫 번째 공유만 가지고 있고 플래그를 해제하기 위해 3개가 필요하기 때문에 어떤 가능성도 없습니다. 풀이 더보기 #!/usr/bin/env python3 import hashlib FLAG = b"crypto{???????????????????????}" PRIME = 77793805322526801978326005188088213205424384389488111175220421173086192558047 def _eval_at(poly, x, prime): accum = 0 for coeff in reversed(poly): accum *..
2024.03.31 -
ROT128 목차 문제 설명 해결 과정 Exploit 코드 문제 요약 문제 설명 -ROT128의 문제 설명 암호화된 encfile을 복호화 하여 flag.png를 취득하는 문제입니다. 해결과정 #!/usr/bin/env python3 hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)] # 0부터 256까지 16진수로된 리스트 생성 with open('flag.png', 'rb') as f: # flag.png 파일을 읽어옴 plain_s = f.read() plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s] #읽은 데이터를 16진수로된 리스트 생성 enc_list = list(range(l..
[dreamhack] ROT128 문제풀이ROT128 목차 문제 설명 해결 과정 Exploit 코드 문제 요약 문제 설명 -ROT128의 문제 설명 암호화된 encfile을 복호화 하여 flag.png를 취득하는 문제입니다. 해결과정 #!/usr/bin/env python3 hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)] # 0부터 256까지 16진수로된 리스트 생성 with open('flag.png', 'rb') as f: # flag.png 파일을 읽어옴 plain_s = f.read() plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s] #읽은 데이터를 16진수로된 리스트 생성 enc_list = list(range(l..
2024.01.31 -
Bit by Bit 문제(및 설명) 당신이 ElGamal에 대해 들었는데, 이것은 몇 가지 멋진 특성을 가지고 있다고 들었습니다. 저는 모든 비트를 다른 비밀로 암호화했으므로 당신은 제 플래그값을 복구할 수 못합니다. 풀이 더보기 from Crypto.Random import random from Crypto.Util.number import getPrime, bytes_to_long FLAG = b'crypto{??????????????????????????????????????????}' def get_padding(): seed = 256 e = random.randint(2, q) padding = pow(seed, e, q) return padding def public_key(): x = ra..
[CryptoHack] MISC(Bit by Bit)Bit by Bit 문제(및 설명) 당신이 ElGamal에 대해 들었는데, 이것은 몇 가지 멋진 특성을 가지고 있다고 들었습니다. 저는 모든 비트를 다른 비밀로 암호화했으므로 당신은 제 플래그값을 복구할 수 못합니다. 풀이 더보기 from Crypto.Random import random from Crypto.Util.number import getPrime, bytes_to_long FLAG = b'crypto{??????????????????????????????????????????}' def get_padding(): seed = 256 e = random.randint(2, q) padding = pow(seed, e, q) return padding def public_key(): x = ra..
2024.01.31