[PHP-users 5231] Re: [SECURITY]:PHP4 session spoofing exploit
Toshikazu Yoshikawa
php-users@php.gr.jp
Wed, 6 Feb 2002 12:23:26 +0900
吉川@アンカットです。
> >もちろんアクセスされるファイルのパーミッションは、
> >-rw-r--r-- (644)等になってる必要があります。
> >ここで、groupに対するパーミッションが r-- になっていても、
> >ホームディレクトリのgroupに対するパーミッションが --- なので、
> >同じグループに属する人は読むことができません。
>
> 直でねらえば見えるのではありませんか。
>
> そうじゃないと、apacheが表示できるわけがありません。
うーん、あさかわさんがおっしゃってることを私が勘違いしているのでしょうか。
とりあえず、CGIのことは抜きにして*.htmlファイル等の表示について述べます。
まずApacheユーザはUID www GID wwwとします。
また2つのユーザアカウントを以下のように用意します。
UID user1 GID webusers
UID user2 GID webusers
# ls -l /home
drwx-----x 3 user1 webusers 4096 2月 6 11:38 user1/
drwx-----x 3 user2 webusers 4096 2月 6 11:39 user2/
まず、user1のディレクトリ構成です。
# ls -l /home/user1
drwxr-xr-x 2 user1 webusers 4096 2月 6 11:38 htdocs/
# ls -l /home/user1/htdocs
-rw-r--r-- 1 user1 webusers 15 2月 6 11:38 index.html
# cat /home/user1/htdocs/index.html
<H1>user1</H1>
次に、user2のディレクトリ構成です。
# ls -l /home/user2
drwxr-xr-x 2 user2 webusers 4096 2月 6 11:39 htdocs/
# ls -l /home/user2/htdocs
-rw-r--r-- 1 user2 webusers 15 2月 6 11:39 index.html
ここで、Apacheのユーザであるwwwにsuします。
# su - www
$ cat /home/user1/htdocs/index.html
<H1>user1</H1>
$ cat /home/user2/htdocs/index.html
<H1>user2</H1>
と、wwwユーザでどちらのファイルの中身を見ることができます。
次に、user1になってみます。
$ exit
# su - user1
$ cat /home/user2/htdocs/index.html
cat: /home/user2/htdocs/index.html: 許可がありません
その逆のuser2からもuser1のファイルを見ることはできません。
$ exit
# su - user2
$ cat /home/user1/htdocs/index.html
cat: /home/user1/htdocs/index.html: 許可がありません
どちらのユーザのindex.htmlもApacheを動かしているwwwユーザで内容を見ることができます。
しかし、片方のユーザからはもう片方のユーザのファイルを見ることはできません。
ファイル名を直に指定してもです。
極端な例を以下に示します。
# ls -l /home/user2/htdocs
-rw-r--r-- 1 user2 webusers 15 2月 6 11:39 index.html
-rw-rw-rw- 1 user1 webusers 14 2月 6 12:14 test.html
とこのように、user2のhtdos/ディレクトリ配下にオーナがuser1のファイルを用意します。
しかもパーミッションは誰もが読み書きできます。
そして、user1からこのファイルにアクセスしてみます。
# su - user1
$ cat /home/user2/htdocs/test.html
cat: /home/user2/htdocs/test.html: 許可がありません
自分のファイルであるにも関わらず、読むことができないのです。
もちろん書き込みもできません。
$ echo > /home/user2/htdocs/test.html
su: /home/user2/htdocs/test.html: 許可がありません
いかがでしょうか?
ディレクトリのパーミッションがちゃんと引き継がれているのです。
こういうことではないですか?
---
unCut Toshikazu Yoshikawa
mailto:toshi@uncut00.com