あめスクのセキュリティホール対策
1投稿者:三河人  投稿日:02月28日(水)19時51分22秒
関連スレッド
http://ame.x0.com/main/010228144450.html
50投稿者:三河人  投稿日:2004/05/25(火)00:28:46
靴スミさんにメール出して質問したけど、返事が来ない。
51投稿者:三河人  投稿日:2004/05/25(火)20:56:06
返事があった。
怖いから折を見て触れていきます。
52投稿者:三河人  投稿日:2004/07/24(土)01:01:30
あめスクのセキュリティホール対策について。
http://www.mikawaban.com/r.cgi?weblog/040418005349/30
53投稿者:三河人  投稿日:2004/11/28(日)02:59:56
--------------------------------------------------
59投稿者:  投稿日:2004年11月28日(日)00時35分20秒

>39
スレッドが過去ログに行ってますね。
http://ame.dip.jp/log/main/041020090658.html

原因は↓
http://www.geocities.jp/mychan_im/hakai2.html

で、サポート氏は投稿内容に「文字コード"1A"の制御文字」が含まれていたら
その文字を削除することでスレ破壊書き込みを使えなくしたようです。
http://ame.dip.jp/ame/cgi/040805063056.html
--------------------------------------------------
との事でしたが、パッと見た限りではサポスクに変化が無いような…?
それ以前に、何も対策してないのにココやざーIIIがOKなのか疑問です。
54投稿者:三河人  投稿日:2004/12/11(土)23:17:33
あー、漏れはヴァカだった(笑)
飲尿53
の件、やっと対処方法が解った。
見ていたアメスクのソースが違いました。
サポスクは、さくら鯖用と自宅鯖用の2種類が存在していた訳ですね。

さくら鯖のサポートスクリプト
http://ame.x0.com/amezo.cgi

自宅鯖のサポートスクリプト
http://ame.dip.jp/ame/amezo.cgi

んで、自宅鯖のスクリプトを見ると、ちゃんと
$value =~ s/\x1a//g;
の記述があるじゃないすか。納得。
つー事は、転送URLが絡む事による、どちらかとゆーとハード面のバグですね。
それをソフト側(スクリプト側)で対処した、と。
55投稿者:三河人  投稿日:2005/01/10(月)17:39:08
http://amezor.on.arena.ne.jp/support/050108193545.html

ちなみに三河版スクでも発生します。
string命令の順番だと思いますので、処理の順番を入れ替えしても
あっちがダメでこっちがOKみたいになりそうですので
ちょっと難しそう。
56投稿者:名捨て人  投稿日:2005/01/11(火)21:01:27
>55
それについてはこう考えてみたけど合ってますかね
http://amezor.on.arena.ne.jp/cgi-bin/res.cgi?dir=support&res=050108193545&st=10&to=999
57投稿者:三河人  投稿日:2005/01/12(水)01:19:01
>56の名捨て人さん
>それについてはこう考えてみたけど合ってますかね
>http://amezor.on.arena.ne.jp/cgi-bin/res.cgi?dir=support&res=050108193545&st=10&to=999

それの
http://amezor.on.arena.ne.jp/cgi-bin/res.cgi?dir=support&res=050108193545&st=15
にしてみたら上手くいくようです。
全ての組みあわせでは未確認ですが。
58投稿者:三河人  投稿日:2005/01/12(水)01:19:45
あ、お礼を忘れてた(笑)
56さん、どもです。
59投稿者:三河人  投稿日:2005/01/20(木)23:12:59
長屋@より以下の話題を移動。

http://www.mikawaban.com/r.cgi?main/020731014944/245
>あめぞうスクリプトに管理人の名前を偽装するセキュリティーホール(?)
>が発覚し、スクリプトが修正されたもよう。

とゆーレスがありまして、私が軽くソースを見たけど「わがんね」と
書きましたら、親切に教えてくださった方↓がいました。

http://www.mikawaban.com/r.cgi?main/020731014944/252
>これね。投稿者名ずらしの技も封印されてしまいました。
>$value =~ s/\r/<br>/g if $name eq 'comm';
>$value =~ s/[\x00-\x1f]//g;
60投稿者:三河人  投稿日:2005/01/20(木)23:19:27
んで、実際に動作確認してないから「思った」だけで書きますけど

>$value =~ s/\r/<br>/g if $name eq 'comm';
これって投稿者名ずらし防止なのかな?
「comm」って事は、投稿内容だと思うんですが。
「name」だったら、投稿者名だと…。

>$value =~ s/[\x00-\x1f]//g;
これは、ざー2時代から「水谷わひょみ」さんの名前を騙る時の
方法と同じものを防止してるんじゃないかな?
例えば「水」と「谷」の間に点みたいな化け文字が出るやつ。
もしそーだとすると、元々完全な騙りじゃなかったと思うので
別に対策しなくても良かったよーな。投稿内容ずらしも別に
対策しなくても私の意見としては良かったと思いました。
61投稿者:mychan★DRwAy9rp  投稿日:2005/01/20(木)23:40:51
>$value =~ s/\r/<br>/g if $name eq 'comm';
これで「投稿内容」に含まれる改行コードを<br>に変換します。
>$value =~ s/[\x00-\x1f]//g;
この処理で「投稿内容」以外の内容(投稿者名とか)に含まれる改行コード(を含む制御文字)を削除します。

投稿者ずらしも別に対策しなくても…というのは私もそう思うのですが、
http://ame.dip.jp/log/main/021215221735es.html
の148283以降で発生しているような問題が起きると対策せざるを得ないのかもしれません。
62投稿者:mychan  投稿日:2005/01/20(木)23:48:36
間違ってとりっぷつけたまま書き込んでしまいました;

>あめぞうスクリプトに管理人の名前を偽装するセキュリティーホール(?)
http://ame.dip.jp/log/tentele/041012224705d.html
712投稿者:サポート  投稿日:2005年01月10日(月)21時52分09秒

IEで見るとちゃんと「サポート」と表示されます。
63投稿者:三河人  投稿日:2005/01/21(金)01:10:55
>mychanさん
説明レス、どもです。
ありゃ、ほんとだ。私のブラウザで見ても文字列検索しても「サポート」だ!
それに、
>148283以降で発生しているような問題が起きると対策せざるを得ないのかも
>しれません。
こーなるのなら確かに対策しないと行けないのも納得します。

うーむ、この問題点は(試してないけど)三河版スクに限らず
サポスク全般で現象が発生するようですね。
私も対策しますか…。
64投稿者:三河人  投稿日:2005/01/21(金)01:41:49
飲尿63の追記。
三河版スクは、投稿者名ずらしだけは対応済みでした。
が、管理人騙りやタグ化けは発生するでしょうね。
($value =~ s/[\x00-\x1f]//g;に相当する対策をしてないから)

改めてサポートさんの対応方法を見ると、良く考えてるなあと
関心させられました。
$value =~ s/\r/<br>/g if $name eq 'comm';
$value =~ s/[\x00-\x1f]//g;
この処理順番にも意味があるんですね。凄いなあ。
65投稿者:三河人  投稿日:2005/02/10(木)01:36:31
http://www.mikawaban.com/r.cgi?.kuzu/010818170857/283

多分なんですけど、これってサポスク全般に通用するんじゃないのかな?
16進か漢字化けを利用したもの(?)と思います。
ココはIDとのダブル判断で、偽者かどうかの判断が出来るように見えますが
実際には不完全です。(ID偽装は、ある意味可能ですから)

つー訳で、わからん(笑)
66投稿者:mychan  投稿日:2005/02/13(日)21:57:44
>65
すみません、それの犯人は私です。
http://pureweb.jp/~big_08/cgi-bin/next/syo/020620002102.html
ここの14以降で論じられている方法(0x9Fを書き込んでスレッドを停止する)を
応用しています。ちなみにオリジナルのサポスクはとてもよく考えられていて
この方法は使えません。
67投稿者:三河人  投稿日:2005/02/13(日)22:59:41
>66のmychanさん
>ちなみにオリジナルのサポスクはとてもよく考えられていて
>この方法は使えません。

改めてココとオリジナルのサポスクをにらめっこしましたが、
どこが足りないのか全然解りませんでした。
$value =~ s/[\x00-\x1f]//g;
サポスクと同じく、これ↑で対処してるかと思ったのですが。
68投稿者:じゃろです 投稿日:じゃろです
じゃろです
69投稿者:mychan  投稿日:2005/02/27(日)19:01:43
>66
すみません、ずいぶん長いこと放置してしまいました;

ここのスクリプトでは投稿者名に「三河人」が含まれていたら「偽三河人」に置換しますが、
もし「"0x87"+"三河人"」で書き込むと「"0x87"+"偽三河人"」になります。
これを文字コードに直すと「87 8B 55 8E 4F 89 CD 90 6C」になり、
最初の2バイト(87 8B)が""、3バイト目(55)が"U"と解釈されて
「偽三河人」となります。

オリジナルのサポスクで同じことをすると
「"0x87"+"サポート"」→「"0x87"+"#サポート"」
文字コード:「87 81 94 83 54 83 7C 81 5B 83 67」
最初の2バイト(87 81)が""、3バイト目が94なので全角文字の第一バイトと解釈されて
(シフトJISでは0x81〜0x9F,0xE0〜0xFC は全角文字の第一バイトとして解釈される。
http://euc.jp/i18n/charcode.ja.html等を参照)
3バイト目と4バイト目(94 83)で"買"、5バイト目(54)が"T"で、結局
「#サポート」となり、この方法は使えません。

…うまく説明できないんですが、こんな感じでわかっていただけるでしょうか?
70投稿者:三河人  投稿日:2005/03/01(火)01:37:33
>mychanさん
レスどもです。
疲れていて頭が回らないのですが、なんとなく解ったよーな気がします。
また日を改めて見なおしたいと思います。
71投稿者:三河人  投稿日:2006/03/30(木)02:19:40
カブロガニで教えてもらった事。とりあえず転記。
-----------------------------
> 一応、聞きたい事を書きます
> ・データフォルダのパーミッション…755
> ・↑の下にあるデータファイルのパーミッション…644
> この状態で、外部から起動されたアプリケーションで
> データファイルの改ざんは可能でしょうか?
> また、可能であった場合、パーミッションを落とす事で回避が可能でしょうか?

どういう状況なのかよくわからないのであれですが
755だと鯖によってはあれなので705に変えると良いと
聞いたことがあります
-----------------------------
72投稿者:三河人  投稿日:2006/03/30(木)02:39:33
話が前後するけど、1年経って見直してやっと飲尿69の意味が解った(笑)

$name =~ s/$_/偽$admin/g;
これが問題なんですねぇ。
簡単に回避させようとするなら
$name =~ s/$_/#$admin/g;
と、する事になりますか(結局、オリジナルのサポスクと同じ)。

後は、あんまり良くない(内容が変わってしまう)けど、
if($name =~ /$_/){
$name = "偽$admin";
}
こうするのも1つの手ではありますね。
73投稿者:三河人  投稿日:2007/06/23(土)09:46:09
セキュリティホールではありませんが、今のサポスクでは
5秒以上経過していないと、index.htmlを作り直さないように
わざとしているのを、今知りました。

index.htmlの生成には結構CGI負荷がかかりますので、503エラー防止の
為だと思います。
投稿者 メール

新着レス 前の50個 レス全部を見る 掲示板に戻る 上へ