のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

【ネタ】艦これのパケットをWireSharkを使って覗いてみた。

Sponsored Links

皆さんこんにちは
お元気ですか。私は元気です。

さて、今日はパケットを覗いてみました。

題材

今回の題材はこちらです。

f:id:tereka:20140926002306p:plain

アニメ化をも決まっているブラウザーゲーム「艦隊これくしょん」略して「艦これ」です。
「艦隊これくしょん〜艦これ〜」 DMMオンラインゲーム公式ページ

どうしてこれを選んだのかといいますと・・・・

何やらネットでは

Kancolle
艦これの通信内容にポカーンとした話 - Togetterまとめ
【艦これ】艦これのクライアント-サーバ間の通信がザルすぎてやばい? 他Twitterまとめ : あ艦これ ~艦隊これくしょんまとめブログ~

なんか脆弱だ。と言わんばかりの報告が…。
そこで、WireSharkを使って、実際に覗いてみましょう。(WireSharkって何という人はこちらから)

注意事項

私は不正な行動を奨励しているわけではございません。
この手法を使って悪用しないでくださいますようお願い申し上げます。

方法

①まずは、WireSharkを開きます。

f:id:tereka:20141001010147p:plain

②Startのボタンを押す(なんか最初は違うボタンかもしれない)Interfaceとかで設定が必要かもしれません。

f:id:tereka:20141001010327p:plain

③fileterで絞る。fileterにhttp.request.method == POSTを入力する。
f:id:tereka:20141001010505p:plain

艦これの通信は基本的にPOSTしているのでそれを確認すればおkです。
IPは多分125からはじまります。

④適当に補給とかホームとか戻ったりすると項目が増えていきます。例えばこれから入渠の項目にいってみましょう。更に修理をすると以下のような項目が増えています。

f:id:tereka:20141001011703p:plain

⑤修理をする時に発生したパケットを見てみましょう。kcsapi/api_req_nyukyo/startをクリックしてみましょう。

f:id:tereka:20141001012005p:plain

パケットの情報を閲覧することができます。
HTML Form URL Encodedを展開してみましょう。この中にはパラメータが書いてあります。

ここから色々なリクエスト(高速修理フラグのapi_highspeedとか)が書いてありますが、色々とデンジャラスなのはapi_keyの部分です。ぶっちゃけ丸見えです。

これがわかるということは・・・・分かる人にはどういうことかわかりますね。
セキュリティが悪いの諸悪の根源であり、色々と悪用ができます…残念なことに。

レスポンスの取得

ちょっとわかりにくいので別のにします。
まずは、適当に戦闘を初めてみましょう(陣を選択する)
f:id:tereka:20141001014902p:plain

するとパケットとして

/kcsapi/api_req_sortie/battleが流れてくると思います。これを右クリックしてFollow TCP Stream(その通信に関係のあるパケットをフィルタリング)を選択する。
するとStreamの詳細が流れてきて、パケットの内容を見ることができます

f:id:tereka:20141001110826p:plain

これを見るとわかることはぶっちゃけデータ送った地点で戦闘結果決まってるんですね。
しかし、まーちーがーえーたと思って次へを押してもコネクションを切断すれば大破進軍を防ぐことができることができます。

最後に

色々おもしろいことがわかり、正直、悪用もできますが悪用しないように。