Perl などのCGIプログラムについてお聞きします。


素朴な疑問なのですが、CGIプログラムをサーバー上に置いたとして、

例)http://www.testtest.com/test.cgi

そのCGIプログラムソース(この場合はtest.cgi)をダウンロードする方法はあるのでしょうか?

もし、ダウンロードできるならば、それらを阻止する方法を教えてください。

よろしくお願いします。

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:
  • 終了:2007/09/28 18:10:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答5件)

id:katsube No.1

回答回数133ベストアンサー獲得回数7

ポイント20pt

ダウンロードというか、他人に閲覧されてしまう危険性があるかというお話ですよね?

○Webサーバの設定がおかしい

CGIが動作する設定がなされていない場合は、ソースがそのまま表示されるケースがあります。これが流石に気がつくと思いますが、たとえば事故が発生した際に一時的に閲覧が可能なるということは考えられます。

 ※以前、http://mixi.jpで起こりましたよね。


○セキュリティホールをつかれる

処理の甘いCGIなどを経由して、他のファイルを閲覧される危険性はあります。たとえば以下のように何も制限をかけずにファイルを表示するようなプログラムが置かれていた場合、これを経由して閲覧が可能になります。

 view.cgi?file=/home/hoge/huga.cgi

実際にはもう少し込み入った事例になるかと思いますが。


○共有サーバの設定がゆるい

FTPなどでログインした際に、他のユーザーのディレクトリが覗ける場合、パーミションの設定によっては閲覧、それこそダウンロードが可能になります。そこまでセキュリティレベルの低い業者はあまりいないとは思いますがご注意を。

id:zachouR

ありがとうございます。

つまり、一番目の例はパーミッションをきちんと755にしておけば、CGIが動作するので問題ない(とりあえずは)ということですね。


3番目の問題は、レンサバ業者の問題になってくるのでしょうか?XREAをつかっているので、問題ないかなー(たぶん)と思います。


ちょっと疑問におもったのが2番目です。

view.cgi?file=/home/hoge/huga.cgi

というのは、view.cgiというファイルを閲覧する為に作られたCGIでしょうか?

だとすれば、閲覧するためのCGIを作っていなければOKと考えて良いのでしょうか?

2007/09/21 18:36:32
id:pmakino No.2

回答回数358ベストアンサー獲得回数30

ポイント20pt

そのようなことは通常できません。

(同サーバに設置されている他の CGI スクリプトに、サーバ内の任意のファイルを表することができてしまうような脆弱性があったり、サーバに FTP や SSH 等でログインする ID とパスワードが容易に類推できたり等の脆弱性があればまた話は別ですが)

http://japan.cnet.com/news/sec/story/0,2000056024,20082116,00.ht...

id:zachouR

ありがとうございました!

安心しました!

2007/09/21 18:38:45
id:KUROX No.3

回答回数3542ベストアンサー獲得回数140

ポイント20pt

>そのCGIプログラムソース(この場合はtest.cgi)をダウン

>ロードする方法はあるのでしょうか?

http://www.testtest.com/test.cgiにアクセスして

test.cgiが実行されるのなら、ダウンロードする方法は

基本的にない。

http://tech.bayashi.net/faq/plfile.html

id:zachouR

ありがとうございました。

ちょっとした疑問でしたので、、、。

助かりました。

2007/09/21 18:38:25
id:katsube No.4

回答回数133ベストアンサー獲得回数7

ポイント20pt

他の方が書かれているとおり通常はないんですけどね。通常ではない場合に十分起こりえます。

だとすれば、閲覧するためのCGIを作っていなければOKと考えて良いのでしょうか?

いえ。外部からファイル名またはキーワードを受け取って、そのファイルを開く処理を行うプログラムの場合、閲覧が可能になる場合があります。

 ※表示する、しないに関わらず。

OSコマンドインジェクションと呼ばれるアタックの手法ですので、色々とググッって見られると良いかと思います。以下は参考までに。

http://www.atmarkit.co.jp/fsecurity/rensai/webhole13/webhole02.h...

対策は、入力チェックを厳密に行うくらいでしょうか。

id:zachouR

こんな方法があったんですね、、、。

サイト、参考に致します。

ありがとうございました。

2007/09/21 19:24:03
id:b-wind No.5

回答回数3344ベストアンサー獲得回数440

ポイント20pt

つまり、一番目の例はパーミッションをきちんと755にしておけば、CGIが動作するので問題ない(とりあえずは)ということですね。

No.


mod_mime - Apache HTTP Server

通常は .cgi という拡張子は CGI であるとサーバー側で関連付けられているが、これがない場合はテキストファイルとして扱われる。

この場合実行パーミッションは関係ない。

id:zachouR

ありがとうございます。

つまり、サーバー側でCGIは「動かすプログラムですよ」と設定しているから安全なのですね。

2007/09/21 20:19:05

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません