SWUFORCE/워게임

whatsdifferent

S_SDY 2026. 2. 17. 14:48

 

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