https://dreamhack.io/wargame/challenges/900
먼저 문제 파일이 .c여서 리눅스를 켰습니다^^

c코드를 열어보니, 눈여겨 볼 거는
1. filter
2. 처음에 시스템에서 ls -al해주는 거
3. 사용자에게 입력값을 받음
4. 그 후에 cat ./out
이정도가 있는 것 같습니다.

VM에 들어가보니까 이렇게 나와있습니다.
문제 힌트에서 ff와 fs의 차이점을 힌트로 주고, 달라진 문장 전체를 flag로 입력하라고 했으니까 ff와 fs 파일 내용을 출력하고, 내용을 비교하면 될 것 같습니다.
<문제 풀이 흐름>
1. 주어진 링크에 연결하고, 명령어를 입력할 수 있는 파이썬 코드 작성(파이썬이 가장 편해서..^^)
2. 명령어 입력에 cat ff > out 입력하기. (마지막에 out을 출력하니까)
3. out에 나온 내용을 복사해서 vi ff -> 복사한 내용 저장
4. cat fs > out으로 바꾸고 vi fs -> 복사한 내용 저장
5. diff -d ff fs로 비교
6. 결과로 나온 문장을 flag로 입력
1. 파이썬 코드 작성.
제미나이의 도움을 받아 코드를 작성했습니다 ^^
(클리어 하고 코드 복사한거라 cat fs인데, ff먼저 했습니다^^)
from pwn import *
host = 'host3.dreamhack.games'
port = 17928
try:
r = remote(host, port)
print("[+] send commend")
payload = "cat fs > out"
r.sendline(payload.encode())
print("wait server's response")
response = r.recvall().decode()
print("\n[result]")
print(response)
except Exception as e:
print(f"error : {e}")
finally:
r.close()
2 ~ 4. 출력값 확인 및 저장
이런식으로 떴습니다.

이걸 ff랑 fs로 저장했습니다.
5. 비교

이렇게 나왔고, 아래쪽을 긁어서 DH{} 안에 넣어서 넣었더니 정답 떴습니다.

'SWUFORCE > 워게임' 카테고리의 다른 글
| [web]pathtraversal (0) | 2026.03.24 |
|---|---|
| [추가 공부]diff (0) | 2026.02.17 |
| [추가 공부]빅 엔디안 vs 리틀 엔디안 (0) | 2026.02.10 |
| littlevsbig (0) | 2026.02.10 |
| Hefty Image (0) | 2026.02.09 |