MyMiniCity踏んでください!!

ただいま絶賛MyMiniCity参加中です.是非リンクを踏んでください!!(笑
June 5th, 2006

この記事も死んでるなぁ

(Read: 19961)
Add to Hatena Bookmark

参照: Ajax 動的なテーブル書き換え2 (+PHP) - [JavaScript]All About
この記事参考にするとファイル抜かれますよー
この人PHPで普段プログラム組んでるのかな?


【サーバー側のスクリプト】test1.php

<?php

//POSTを取得
$filename = $_POST['fn'] ;

//ファイルデータを読み込む
$data = file_get_contents('./'.$filename.'.txt');

//URIエンコード
$data = rawurlencode($data);

//出力charsetをut-8に
mb_http_output ( 'UTF-8' );

//ヘッダ
header ("Content-Type: text/html; charset=utf-8");

//出力
echo($data);

?>


これ"../../../../../../../../../../etc/passwd%00"とかPOSTされると/etc/passwd抜かれます.

注意したいのは、UTF-8で書き出すことと、クライアントからPOSTで渡しているファイル名を何でも通してしまうようにはしないことです。

とか書いてるんですけどね.残念.

次に,「mb_http_output ( 'UTF-8' );」とかしてますが,internal_encodingがデフォルトのISO-8859-1だったら転けますね.さようなら.

#んーこういうところ全然気にせずに原稿書けると楽でいいなぁ〜〜〜

ちなみに個人的に@ITでのファイルのダウンロードはそこそこ気を使って書いたつもりで,データ用ディレクトリ(DATA_DIR)の親はPHPでrealpath()をはじめ,新しいバグでもない限り読めないと思います.
といいつつこれでも心配で何日もあれこれ考えて過ごしたのを覚えています.
とか書いてたらこれも念のためにNULL文字とか削除してもいいなぁ〜〜〜
実は役に立ったか(苦笑


▼ この記事へのコメント ▼
本当に素直な疑問なので裏を読まないで下さい。
なお、当方FreeBSDしか知りません。

/etc/passwd を抜かれて困ることって実際にあるのでしょうか?

抜かれちゃ困る(例えばスクリプトの設定事項をインクルードさせている).incファイルとかも見据えてのことだとは思うのですが、結構色々なサイトで書かれる/etc/passwd のことについて見ても、いまひとつピンと来ません。

/etc/passwd から読み取れるのは
・ユーザー名・UID・GID・フルネーム(これはadduser次第)・shellだけだと思うのです。。。。

望むべくして提供するデータ以外は一切見られたくないという前提は認識していますので、そういう意味では/etc/passwdも当然見られたくはないのですが…

ああ、またこれで自分の認識の浅さを自分で暴露するような気も。。。。

私はLinuxをちょっと知ってる程度なので具体的に何がどうまずいか説明出来ませんが、私の知り合いにはユーザ名とPASSを同じ設定してる方もいますね。


やばいというのはどれ位やばいのか?
というのはいちがいに言えない部分もありますが〜

yosisさんおっしゃるようにユーザー名とパスワードが同じ
(あるいは近い,「ID:taro」「Password:tarotaro」など)という場合もあります.

また,/etc/passwdが抜けるということはその他の「多くのファイルをアクセスできる可能性がある」とも言えます.
例えばBasic認証をやっているURLがある場合,該当ディレクトリに.htpasswdという形で認証ファイルがある場合があります
(暗号化されていますがツールを使えばそれなりの時間で突き止められるでしょう.

UNIXアカウントパスワードとデータベースパスワードは共通という場合もあるかもしれません.
その場合,ファイルにデータベース情報がかかれていればおそらく生のファイルなので,試すことができますね.
場合によってはそのコンテンツ管理者のパスワードなりを入手すれば,他のサーバーにその人のアカウントが存在していることを知っていれば同様にログインできてしまうかもしれません.

その他こういう穴はサーバー毎にいろいろ推測してアタックをすることができる*きっかけ*を*簡単に*作ることができると言えるでしょう.
Windowsでこの状態になるかどうかは調べていませんが,Windowsでも見られて困るファイルは出てくるかもしれないですね.


passwdファイルに限った話ではなく、

> アタックをすることができる*きっかけ*を*簡単に*作ることができる

ここが一番マズイかと。


> > アタックをすることができる*きっかけ*を*簡単に*作ることができる
>
> ここが一番マズイかと。

そういうことです;-)


> > アタックをすることができる*きっかけ*を*簡単に*作ることができる
>
> ここが一番マズイかと。
それについては完全に承知しております(^^ゞ

単に /etc/passwd にどの程度の危険性があるのかなと思っただけでして。
ユーザー名がわかる=パスワード推測の手助けになる
という感じですよね。

んー
書き方が悪かったのかな
/etc/passwdが読めると言うことは,ほとんどのファイルが読めるということも同じくらい危険だと書いているつもりなのですが.


> /etc/passwdが読めると言うことは,ほとんどのファイルが読めるということも同じくらい危険だと書いているつもりなのですが.

大丈夫です。完全に理解していますのでご安心下さい(^^ゞ
さすがにそこまで危険人物ではありません。もしそうだったら今すぐPHP封印です(笑)

私の興味は単に /etc/passwd についてなのです。
数多くのサイトが啓蒙のためにこのファイルを例にとっていることについて、何故このファイルなのか、という点のみ疑問だったわけです。

こちらこそ書き方がわかりづらかったようでお詫び申し上げます。。。

他のファイルも読めてしまうということですから、例えばSSL秘密鍵のパスフレーズが書かれたファイルを置いている場合(Apache起動用など)などは秘密鍵とパスフレーズが盗まれる可能性がありますね。

繰り返しになりますが,単に/etc/passwdが盗まれて,内容について何がこまるか? というところについての興味なら繰り返しになりますが基本的にyosisさんが書かれていらっしゃるような傾向の問題になります.
また,ウェブサーバーとしては中々現役としては存在しないと思いますが,shadowができる場合は/etc/passwdにパスワードが書かれていました.
10年前後前にはまだそういうシステムは現行機だったと思います.

/etc/passwdが読めること自体に何が問題があるかというと,これも既に書いているので再度はナシで.

で,なぜ/etc/passwdなのか?というと決定的な理由は無いと思いますが,おそらくUNIX系ではほぼ間違いなく存在するファイルだから試しやすいということが一番の理由になると思います(ついでにどうせだからアカウント名盗みたいねなど2次的目的もあるでしょうけど).
そういう意味では/etc/groupでも別にいいわけです.

ということでいかがでしょう?

なんか私のつまらない興味のためにコメントレスがえらい続いてしまって、みなさんどうもすみません<(_ _)>

> shadowができる場合は/etc/passwdにパスワードが書かれていました.
10年前後前にはまだそういうシステムは現行機だったと思います.

> で,なぜ/etc/passwdなのか?というと決定的な理由は無いと思いますが,おそらくUNIX系ではほぼ間違いなく存在するファイルだから試しやすいということが一番の理由になると思います(ついでにどうせだからアカウント名盗みたいねなど2次的目的もあるでしょうけど).
そういう意味では/etc/groupでも別にいいわけです.

なんとなく自分が思っていたことと合致いたしました。
やはり昔のシステム環境における危険性を引きづったまま、/etc/passwd が例にとるための代表ファイルとなっているだけなのかもしれませんね。
ありがとうございます。

まさかそんなことは無いとは思っていましたが、
もしかしてLinuxディストリビューションのOSは /etc/passwd にパスワードがかかれているのかな、とか心の片隅に想像もしちゃったりしたので、これですっきりしました。

何度も書きますが“想定外のファイルを読み取られる脆弱性”という論点については初めから理解していますので、この点については勘違いしないで下さいませ。

ELFさんの解答に感謝申し上げます。

トピックの参照元

▼最近のトピック

▼ 人気のトピック


< 過去の記事 [ 6All Categories ] 新しい記事 >
Powered by gsblog (customize)

[ POST ] [ AddLink ] [ CtlPanel ]

Subscribe blog

Bookmark blog

About me

about me

応援しています

我が息子が産まれたアクア・バースハウス(東京都世田谷区にある助産院)を応援しています.

翻訳のお仕事

腕に自信がある方,修行をしたい方はこちらをどうぞ.

2006 calendar

6月
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
| Day | Month | Year |

Powered by RRDTOOL.

Archives

Categories

Links


Mail to admin

人気ブログランキングへ RSS feed meter for http://blog.poyo.jp/ Search Engine Optimization
blogpeople.netに登録!! スカウター : よくきたblog

My Google news

My Google News

Related site

ころんころん♪ べびぽよ フォト蔵Wiki
string(40) "/categ-1/year-2006/month-6/id-1149496032"