CTF | wargame

Sharif 2016 / forensic 200 Bsniff (패킷 분석, 비트코인)

nopdata 2017. 3. 30. 00:02
Keyword : 패킷 분석. 비트코인.

패킷 분석 문제이다. 패킷량은 많은데 보내는 url은 blockchain.info에 보내는데 형태는 blockchain.info/q/addressbalance/주소?confirmations=6 형태이다.
패킷을 보았을 때 이 패킷 외에는  ssh로 통신하는 패킷이 있었으나, ssh는 키가 없어 암호화 해제가 불가능하기 때문에 blockchain.info에 보내는 주소에 답이 있지 않을까 싶어서 알아보았다.

먼저 주소를 모두 추출하여 보면 아래와 같이 나온다.

위 처럼 나오는데 주소를 아무거나 잡아서 blockchain.info에 조회를 하면 아래와 같이 나온다.

비트코인 주소에 해당하는 비트코인 거래 정보가 추출이 되는데 위에서 보면 이상하게 중간에 '?'가 끼어 있는 주소들이 있다.

1?wF9bkpiG6YULrDsC5Z7C1kG3vcR4pP5를 조회해 보았더니 위와 같이 나왔다.
그래서 처음에 저 지도에 어떠한 정보가 있는지 생각을 해 보았으나 딱히 나올 것이 없었다.
그래서 1?wF9bkpiG6YULrDsC5Z7C1kG3vcR4pP5에서 '?'에 대한 조사를 하다가 1?wF9bkpiG6YULrDsC5Z7C1kG3vcR4pP5가 존재하는 것을 알아냈다.
두 주소의 차이는 '?'에 들어가는 문자가 S로 정해져 있다는 것. ( 여기까지는 추측했는데 마무리를 못했다... 해서 write up 참고...)

즉, '?'에 flag가 숨어있는 것이다. 먼저 주소 목록을 추출하고 그 중 '?'가 포함된 주소만을 가져온 다음 해당 '?'에 해당하는 값을 알아내야 했다.
패킷 내에 '?'의 내용이 존재하는 주소도 있었지만, 그렇지 않은 주소도 존재 하였으므로, 조회를 하면 다음과 같은 답을 얻을 수 있다.
'?'의 순서대로 조합을 하면 된다.

Answer :  SharifCTF{8fe811d57932dbee1b12de3ea7e1cb66}