Top > CGI > 携帯絵文字対応BBS

携帯絵文字対応BBS「SmallPICT」

SmallPICTバージョンアップのお知らせ


今回のバージョンアップにはセキュリティ上の脆弱性に関する修正が含まれます。
旧バージョンをご利用中の方は以下をご覧いただき、アップデートをお願いいたします。

携帯絵文字対応BBS「SmallPICT」におけるクロスサイトスクリプティングの脆弱性
公開日:2012年6月19日 最終更新日:2012年6月19日

概要

SmallPICT には、クロスサイトスクリプティングの脆弱性が存在します。
対策を施した最新版(Ver2.7)へのアップデートを強く推奨いたします。


影響を受けるバージョン

SmallPICT Ver2.6 およびそれ以前
使用しているバージョン番号の確認方法は以下の通りです。

  1. smallpict.cgiをテキストエディタ等で開きます。
  2. 5行目の「SmallPICT.cgi」の右側に書かれている数字がSmallPICTのバージョン番号です。

バージョン表示ウィンドウ(GIF)


想定される影響

ユーザのウェブブラウザ上で、任意のスクリプトが実行される可能性があります。


対策方法

SmallPICT Ver2.7 より前の製品を利用されている方は、Ver2.7 にアップデートして いただきますよう、お願いいたします。


アップデート方法

  1. 下のURLから最新版をダウンロードしてください。
    http://www.wap2.jp/download/spict270-up.zip
  2. 上記圧縮ファイルを解凍し、展開されたファイルのうち、init.cgi,smallpict.cgiを必要に応じて修正します。
  3. ダウンロード・展開したファイルを全てサーバに転送してください。
    詳細は、「ダウンロードと編集」以下の説明文をご覧下さい。

関連情報

JVN#36993373
SmallPICT におけるクロスサイトスクリプティングの脆弱性


謝辞

この問題は、bogus.jpの東内 裕二氏にご報告をいただきました。ありがとうございました。


更新履歴

  • 2012.06.19このページ(http://wap2.jp/download/spict/)に脆弱性情報を公開しました。
  • 2012.06.19関連情報へのリンク(JVN#36993373)を追加しました。

連絡先

脆弱性連絡窓口
メール: Kimura <webmaster@wap2.jp>

SmallPICTの説明

動作サンプル

サンプルは以下にあります。サンプルは、v3.0になっています。

SmallPICT(書込み可)

利用規程

ここで配布する絵文字画像は、本来、各キャリアの端末だけで表示可能な絵文字を他の端末で表現するために、見た目を画像にして再現したものです。
オリジナルのdocomo絵文字の著作権は株式会社エヌ・ティ・ティ・ドコモに、SoftBank絵文字の著作権はソフトバンクモバイル株式会社に、au絵文字の著作権はKDDI株式会社に、WILLCOM絵文字の著作権は株式会社ウィルコムに、EMOBILE絵文字の著作権はイー・モバイル株式会社に帰属します。

ダウンロードと編集

圧縮ファイルのダウンロード

以下の圧縮ファイル(device.datは圧縮していません)をダウンロードしてください。

  1. スクリプトファイル(Ver2.7)
    • アップデート用: spict270-up.zip
      Ver2.6以前を既に設置されている方向け
      ログファイル(spictlog.cgi),jcode.pl,fold.pl,デバイス情報ファイル(device.dat),絵文字画像は含まれていません。
    • 新規設置用: spict270.zip
      SmallPICTを初めて設置なさる方向け
      デバイス情報ファイル(device.dat),絵文字画像は含まれていません。
  2. デバイス情報ファイル(device.dat)※右クリックして「対象をファイルに保存」などしてください。
  3. 絵文字画像ファイル
    • docomo絵文字画像: i.zip
    • SoftBank絵文字画像: j.zip
    • au絵文字画像: e.zip
    • WILLCOM絵文字画像: a.zip
    • EMOBILE絵文字画像: m.zip

圧縮ファイルの解凍

ダウンロードが完了したら、解凍します。以下のファイルが展開されます。
device.datは圧縮されていませんので解凍する必要はありません。

印のファイルは、歌代和正氏が作成し、公開なさっているPerlライブラリです。著作権は、歌代和正氏にあります。

  1. spict270.zip より
    印のファイルは、アップデート用の圧縮ファイル(spict270-up.zip)には含まれません。
    • smallpict.cgi
    • init.cgi
    • spictlog.cgi
    • emoji.dat
    • jcode.pl
    • fold.pl
    • [DIR]modules
      └pc.pl, imode.pl, jsky.pl, wap2.pl
    • PICT
      ├iPICT.html, iPICT.gif
      ├jPICT1.html,jPICT1.gif
      ├jPICT2.html,jPICT2.gif
      ├ePICT1.html,ePICT1.gif
      └ePICT2.html,ePICT2.gif
    • [DIR]imgs
      └home.gif, mail.gif, post.gif, PC.gif, EZweb.gif, imode.gif, Jsky.gif, AirH.gif
  2. i.zip,j.zip,e.zip,a.zip,m.zip より
    • [DIR]i
      └F89F〜F9FC.gif, F89F〜F9FC.png
    • [DIR]e
      └1〜518.gif,700〜828.gif, 1〜518.png, 700〜828.png
    • [DIR]
      └4521〜5159.gif, 4521〜5159.png
    • [DIR]a
      └F040〜F150.gif, F040〜F150.png
    • [DIR]m
      └F860〜F871.gif, F860〜F871.png

スクリプトの編集

ファイルがたくさんありますが、最低限必要なスクリプトの編集箇所はそんなに多くありません。

注意事項
テキストエディタを用いてプログラムの修正を行う場合の文字コードは、 必ずShift_JISで記述する(保存する)設定にしてください。

1.smallpict.cgi

smallpict.cgiをテキストエディタ等で開き、以下の部分を必要に応じて修正します。

2.init.cgi

SmallPICT Ver2.7 で、init.cgi(設定ファイル)が Ver1.7 にバージョンアップしました。
Ver2.7より以前のバージョンからアップグレードなさる方は、新しくダウンロードしたinit.cgi で 設定をし直す必要があります。
ただし、init.cgiのバージョンが Ver1.6 の場合は、そのままでも動作するようにしてあります。

init.cgiをテキストエディタ等で開き、▼印が付いている項目を必要に応じて修正します。
▼印の部分以外にもいろいろ設定ができますが、まずは▼印の部分だけを修正して下さい。
動作確認が取れてから、ゆっくり細かい設定を行ってください。

3.spictlog.cgi

spictlog.cgiはログファイルです。最初は空です。
バージョンアップなさる方は、アップロードする必要はありません。

ファイルのアップロード

修正が完了したら、画像以外は「テキスト(アスキー)モード」でアップロード(FTP転送)します。
画像(gif, png)は、「バイナリモード」でアップロード (FTP転送)します。

ファイル名 転送モード パーミッション
smallpict.cgi アスキー 755
init.cgi アスキー 644
spictlog.cgi アスキー 666
device.dat アスキー 644
emoji.dat アスキー 644
jcode.pl アスキー 644
fold.pl アスキー 644
modules/
├pc.pl
├wap2.pl
├imode.pl
└jsky.pl
アスキー 644
lockディレクトリ - 777
PICT/
├iPICT.html
├jPICT1.html
├jPICT2.html
├ePICT1.html
└ePICT2.html
アスキー 644
PICT/
├iPICT.gif
├jPICT1.gif
├jPICT2.gif
├ePICT1.gif
└ePICT2.gif
バイナリ 644
imgsディレクトリと
その内部の画像
(絵文字画像含む)
imgs/
├i/
├j/
├e/
├a/
├m/
├PC.gif
├EZweb.gif
├imode.gif
├Jsky.gif
├AirH.gif
├home.gif
├mail.gif
└post.gif
バイナリ 644

アップロード(FTP転送)が完了したら、PCでsmallpict.cgiにアクセスし、設定内容のチェックをします。
その際、smallpict.cgiに続けて「?mode=check」と入力してください。
このページの下部にある「設置例1」の通りなら、以下のようになります。

http://(アップロードしたドメイン)/spict/smallpict.cgi?mode=check

表示される画面に、ひとつでも NG があったら、設定を見直してください。

SmallPICTの呼出し方

SmallPICTは、同じURLで、PC/携帯電話向け表示を切替えます。
以下は【設置例1】の場合の呼出し方です。

http://(アップロードしたドメイン)/spict/smallpict.cgi

HTMLファイルからリンクさせる場合

<a href="http://(アップロードしたドメイン名)/spict/smallpict.cgi">BBS</a>

設置例

ファイルが多数ありますので、CGIを指定ディレクトリに設置しなければならない時は、ちょっと大変かもしれません。
どんな場合でも、smallpict.cgiとinit.cgiは同じディレクトリに設置して下さい。

1.CGIをどこに設置してもよい場合

public_html
    |
    +-- index.html(ホームページ)
    |
    +-- spict / smallpict.cgi [755](掲示板プログラム)
          |     spictlog.cgi  [666](投稿ログファイル)
          |     init.cgi      [644](設定ファイル)
          |     jcode.pl      [644]
          |     fold.pl       [644]
          |     device.dat    [644](機種データファイル)
          |     emoji.dat     [644](絵文字変換データファイル)
          |
          +-- PICT / iPICT.html  (docomo絵文字簡単入力ウィンドウ)
          |          jPICT1.html (SoftBank絵文字簡単入力ウィンドウ1)
          |          jPICT2.html (SoftBank絵文字簡単入力ウィンドウ2)
          |          ePICT1.html (au絵文字簡単入力ウィンドウ1)
          |          ePICT2.html (au絵文字簡単入力ウィンドウ2)
          |          iPICT.gif,jPICT1.gif,jPICT2.gif,ePICT1.gif,ePICT2.gif
          |
          +-- lock [777] /
          |
          +-- modules / pc.pl    [644](必須)
          |             wap2.pl  [644]
          |             imode.pl [644]
          |             jsky.pl  [644]
          |
          +-- imgs / i / .gif,png
                     j / .gif,png
                     e / .gif,png
                     a / .gif,png
                     m / .gif,png
                     ..その他.gif,png

2.CGIを指定ディレクトリ(cgi-bin)に設置しなければならない場合

public_html
    |
    +-- index.html(ホームページ)
    |
    +-- cgi-bin / spict / smallpict.cgi [755](掲示板プログラム)
    |               |     spictlog.cgi  [666](投稿ログファイル)
    |               |     init.cgi      [644](設定ファイル)
    |               |     jcode.pl      [644]
    |               |     fold.pl       [644]
    |               |     device.dat    [644](機種データファイル)
    |               |     emoji.dat     [644](絵文字変換データファイル)
    |               |
    |               +-- modules / pc.pl    [644](必須)
    |               |             wap2.pl  [644]
    |               |             imode.pl [644]
    |               |             jsky.pl  [644]
    |               |
    |               +-- lock [777] /
    |
    +-- PICT / iPICT.html  (docomo絵文字簡単入力ウィンドウ)
    |          jPICT1.html (SoftBank絵文字簡単入力ウィンドウ1)
    |          jPICT2.html (SoftBank絵文字簡単入力ウィンドウ2)
    |          ePICT1.html (au絵文字簡単入力ウィンドウグ1)
    |          ePICT2.html (au絵文字簡単入力ウィンドウ2)
    |          iPICT.gif,jPICT1.gif,jPICT2.gif,ePICT1.gif,ePICT2.gif
    |
    +-- spictimgs / i / .gif,png
                    j / .gif,png
                    e / .gif,png
                    a / .gif,png
                    m / .gif,png
                   ..その他.gif,png
                    
                    CGIを特殊なURLで呼出す場合は、
                    この下に、@niftyでの設置例がありますのでご参考にどうぞ。

3.@niftyへの設置

ルートディレクトリ
    |
    +-- homepage /
    |      |
    |      +-- index.html(ホームページ)
    |      |
    |      +-- spictimgs / i / .gif,png
    |                      j / .gif,png
    |                      e / .gif,png
    |                      a / .gif,png
    |                      m / .gif,png
    |                      iPICT.gif,jPICT1.gif,jPICT2.gif,ePICT1.gif,ePICT2.gif
    |                      ..その他.gif,png
    |
    +-- cgi-bin / spict / smallpict.cgi [755](掲示板プログラム)
                    |     spictlog.cgi  [666](投稿ログファイル)
                    |     init.cgi      [644](設定ファイル)
                    |     jcode.pl      [644]
                    |     fold.pl       [644]
                    |     device.dat    [644](機種データファイル)
                    |     emoji.dat     [644](絵文字変換データファイル)
                    |
                    +-- modules / pc.pl    [644](必須)
                    |             wap2.pl  [644]
                    |             imode.pl [644]
                    |             jsky.pl  [644]
                    |
                    +-- lock [777] /
                    |
                    +-- PICT / iPICT.html  (docomo絵文字入力簡単入力ウィンドウ)
                               jPICT1.html (SoftBank絵文字簡単入力ウィンドウ1)
                               jPICT2.html (SoftBank絵文字簡単入力ウィンドウ2)
                               ePICT1.html(au絵文字簡単入力ウィンドウ1)
                               ePICT2.html(au絵文字簡単入力ウィンドウ2)

    iPICT.gif,jPICT1.gif,jPICT2.gif,ePICT1.gif,ePICT2.gifを他の画像と同じ場所に設置して下さい。

@niftyは、CGIを特殊なURLで呼び出さなければなりません。
また、htmlファイルや画像を設置する場所と、CGIファイルを設置する場所が分かれています。

スクリプトの修正箇所(@niftyの場合)

@niftyで、上記「@nifty設置例」と同様に設置した場合、最低限必要なスクリプトの修正箇所です。
以下のようなURLと仮定します(太赤字の部分は、ユーザー毎に違います)。

  1. smallpict.cgi --> 1行目のPerlのパスを、#!/usr/local/bin/perl にします。
  2. init.cgi
    • $scriptURL = 'http://hpcgi3.nifty.com/xxxx/spict/smallpict.cgi';
    • $emojiDir = '../../homepage/spictimgs/';
    • $emojiImgURL = 'http://homepage3.nifty.com/xxxx/spictimgs/';
    • $clickPICT_from_CGI = 1;
    • $imgsDir = 'http://homepage3.nifty.com/xxxx/spictimgs/';

Go to Top

最終更新日:2016年10月13日
© Kimura [My First HDML] All Rights Reserved.