반응형
문제설명
Copy it if you can!
플래그의 형식은 WaRP{...}입니다.
코드 분석
import hashlib
import base64
def bytes_to_long(a):
return int.from_bytes(a, byteorder='big')
def long_to_bytes(a):
return a.to_bytes((a.bit_length()+7)//8, byteorder='big')
print(long_to_bytes(548488142063681088110499188198346596132432266189304030893626^bytes_to_long(base64.b64encode(hashlib.sha256(input().rstrip().encode('utf-8')).digest())[13:36])))
- byte_to_long(a): 바이트 → 큰 정수(int.from_bytes, big-endian)
- long_to_bytes(a): 정수 → 바이트(to_bytes, big-endian)
- 입력 문자열을 공백 제거 후 UTF-8 바이트로 변환
- SHA-256 해시 계산
- 13:36 인덱스(총 23바이트)만 잘라냄
- 잘라낸 23바이트 정수로 반환
- 고정된 큰 정수와 XOR 연산
- long_to_bytes(...)
요약하면, 입력 값을 SHA-256 → Base64 → 부분 슬라이스한 값을 정수화한 후, 고정 키와 XOR한 암후화/난독화 결과를 바이트로 출력함
익스플로잇

해당 문자열을 코드에 삽입하면 되는 듯하다.
드래그랑 F12 개발자도구가 막혀있다.
burpsuite을 켜서 응답으로 온 문자열을 복사해주면 될 것 같다.


반응형
'Dreamhack 워게임 > Lv.1' 카테고리의 다른 글
| My Best Friend (0) | 2026.02.19 |
|---|---|
| Hangul - Revenge (0) | 2026.02.19 |
| Pearfect Markdown (0) | 2026.02.15 |
| Simple Note Manager (0) | 2026.02.15 |
| Logical (0) | 2026.02.14 |