Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

条件反射でwgetしてしまうと危ないかもしれない話

More than 3 years have passed since last update.

条件反射的にwgetしてしまうと危ないかもしれないというお話。
ネット上からファイルを落としたいとき、つい条件反射的にwgetしてしまう自分のような人種の方へ。

ついつい気軽に使ってしまうwget

「じゃあ、○○からファイルをDLして展開しておいてね。」
と指示された時、とりあえずそのファイルをwgetするというのは自分だけではないはず。
しかしそのwget、残念なことに脆弱性(CVE-2016-4971)が見つかったとの事。
JVNDB-2016-003391 GNU Wget における任意のファイルに書き込まれる脆弱性

なにがどうなるのか

今回の脆弱性で指摘されているのは、wgetを使用してファイルをダウンロードしようとした際、
攻撃者のサーバが、あらかじめFTPサーバ上に配置された悪意あるファイルに対するHTTP 302リダイレクトを返す事によって利用者の端末に任意のファイルを配置されてしまうという現象です。
とりあえず、実際に試してみました。

期待する結果

002.jpg

よろしくない結果(FTPサーバ上のリソースへリダイレクトした場合)

001.jpg

リクエストはどちらもサーバ上のsample.txtを取得しているのですが、
今回はサーバからのレスポンスを改ざんし、それぞれHTTPとFTPでwrong.txtを取得するようリダイレクトさせています。

ftpサーバ上のファイルへリダイレクトした場合、ファイル名が維持されず、wrong.txtとして保存されてしまっていますね。

じゃあ、どうするか

  1. 修正を適用する
    幸いなことに、既に修正が公開されています。
    うっかりやらかしてしまう前に、適用しておきましょう。

  2. とりあえずオプションを付けてリダイレクトを回避する
    実行時に
    $ wget --max-redirect=0 <取得対象>
    とすれば、ひとまずリダイレクトされてしまう事は防げますね。

  3. wgetコマンドを使わない
    別のコマンドを使用して問題を回避するのも良いですね。
    特に、curlコマンドは連番保存とか素敵なオプションが揃ってますし。

kouta_hara
サーバサイドエンジニア。 出版・建設・医療領域の業務システム開発から、スマートフォンアプリ業界へ転身。 暑さ寒さにすこぶる弱い(要常温保存)。
cocone_inc
アバターアプリ『ポケコロ』や『猫のニャッホ』をはじめとした、1,600万人の女性に愛されるサービス開発
https://www.cocone.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away