0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

仙台CTF2017 [LogX] 国内IPアドレス 300

Posted at

問題

image.png

解いてみた

apacheログはおなじみのファイル。

image.png

APNICのファイルはこんなフォーマット。

image.png

いやーIPの比較って意外にめんどいなと思って逃げ出したくなりました。
どうにかしてExcelだけで解きたい。

とりあえずJP かつ ipv4しか必要ないので、ほかのものを削除します。

image.png

範囲は最小でどのくらいか見てみると256でした。

image.png

IPアドレスの比較って大変だよなーと思ってたらふと「16進数で考えれば」レンジも足せばいいだけだし、比較も簡単になるんじゃないか。
という結論に至りました。

たとえばこんな感じです。

image.png

全部16進数に変換する(A)
↓
レンジを足す(B)
↓
国を調べたいIPアドレスがAとBの間にあればJP

ということでできそう。

とりあえずExcelの横の方に書いておきます。

image.png

つぎはレンジを16進数に変換です。
ん?Excelで10進数を16進数に変換できるのか?

調べてみると

=DEC2HEX(変換したいセル)

でできるらしい。

image.png

すごい。
あとはこれを足せばいい。

ん?Excelで16進数の足し算できるのか?

=DEC2HEX(HEX2DEC(D2)+HEX2DEC(E2))

というような感じで16進数を10進数に変換して足し算をして、結果を再度16進数に変換する。
という方法でできそう。

image.png

あってるっぽいです。
これでIPアドレスがE列からF列の間であればJPだということになります。

さて、次はアクセスログからIPアドレスを抽出します。

仙台CTF2017 [Log01] 大量アクセス 100

これと同じやり方で集計します。
同じIPアドレスを省くと1254件ありました。

image.png

これを16進数に変換します。

image.png

そして比較します。

少しマクロを組んで大小比較できるようにします。

image.png

単純に大小比較しているだけです、日本のIPには1をつけておいて、あとで数を数えるプログラムです。

image.png

これが正解でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?