[過去ログ] bbs.cgi 再開発プロジェクト (1001レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
682(1): 未承諾広告※ ◆aiY4htt2.2 03/08/28 23:43 ID:03zJD51Q(2/2) AAS
# /dev/randomを開き、先頭から16バイト読み出したランダムな値。
ここで失敗したときのことを議論しているんじゃなかったかな?石油板
手元の資料ではエラートラップしていないもより。。。
sysopen(RANDOM, "/dev/random", O_READ) || die "cannot open /dev/random $!\n";
sysread(RANDOM, $data, 16); # ここ
close(RANDOM);
683(2): 動け動けウゴウゴ2ちゃんねる 03/08/28 23:50 ID:VuzrSZs9(2/2) AAS
>開けない場合は、ランダムな数字
らしいから開くのに失敗したとしても大した違いはないような気もする
684(1): 未承諾広告※ ◆aiY4htt2.2 03/08/29 00:03 ID:cWj9IOgI(1) AAS
>>683
sysopen(RANDOM, "/dev/random", O_READ) || die "cannot open /dev/random $!\n";
この部分以外にエラートラップが施していないので、
最悪、乱数を拾ってこられずに ID 生成する恐れがあるみたいです。ニヤリ
といっても自分の所持している bbs.cgi の ID を生成している部分が、
以後に改竄(wされていなければという前提ですけれど。。。
685(1): 動け動けウゴウゴ2ちゃんねる 03/08/29 01:03 ID:RLTQJrlY(1) AAS
>>677
俺の記憶が正しければ、IDは、IPアドレスの下数桁しか使っていないはず
だから、ランダム性に関係なく、全桁は求まらないはず
686(1): 動け動けウゴウゴ2ちゃんねる 03/08/29 03:13 ID:VojWUM5C(1) AAS
記憶っていうか>>681に書いてるわけだが
# IPアドレスからMD5を算出する。(16進数形式)
# 返ってきた文字列の"後ろから4バイト"を求める
$ipmd5 = substr(md5_hex($ip),-4);
687: cheshire-cat ◆CATBCJABLA 03/08/29 06:42 ID:/j6Qpjr7(1/3) AAS
>>681
こちらも難しいとは思うんですが。
>>承諾広告※ ◆aiY4htt2.2様
そうですね。
結局は、今利用しているbbs.cgiの2chスクリプトがわからないと判断できません。
>>685-686
うーん。それであっても。
もしその板で活動している人達が、日頃からメールなりメッセなりQでやりとりしていれば。
匿名の投稿をどれが誰なのか特定できるかも、です。
688: 動け動けウゴウゴ2ちゃんねる 03/08/29 10:10 ID:eEmYHqu7(1) AAS
「かも」。 アホか。
セキュ板住人なら実際特定してから話もってこいよ。
ていうかスレ違いじゃんかよ。
689(1): 動け動けウゴウゴ2ちゃんねる 03/08/29 10:39 ID:pLsilB4y(1) AAS
>>681のサイトの管理人ですが、それを書くのに参考にしたのは
bbs.cgi ver 0.31 (02/04/06)
と思われるスクリプトです。
>>682-684
"開けない場合"というのは"/dev/randomを使わない設定にしている場合"
と読み置いてください。。(説明がまずかったです。)
# 該当部分のソース
$RANDOM= 1;
if($RANDOM == 1){
sysopen(RANDOM, "/dev/random", 'O_READ') || DispError("/dev/random が開けない!");
省5
690(1): 未承諾広告※ ◆aiY4htt2.2 03/08/29 18:26 ID:9vO/PFe2(1/3) AAS
>>689
sysread(RANDOM, $data, 16);
ここで 16 バイト読めなかったときのことです。
if (sysread(RANDOM, $data, 16) != 16) { 読み込めなかったときの処理; }
とする方が良さそうですね。
691(1): 未承諾広告※ ◆aiY4htt2.2 03/08/29 18:32 ID:9vO/PFe2(2/3) AAS
話は変わって。。。
bbs.cgi が吐き出すエラー類。
2chブラウザの時(User-Agentが「Monazilla」を含むとき。)には、
特別なレスポンスヘッダ(エンティティ)だけを返すっていうのはいかがでしょう?
html返すよりかは多少は転送量が減りそうな。
凡例:
2ch-response: 200\n # 書き込み成功。
2ch-response: 300\n # 連投規制 ERR593みたいなの。
などなど。
692(1): cheshire-cat ◆CATBCJABLA 03/08/29 19:34 ID:/j6Qpjr7(2/3) AAS
>未承諾広告※ ◆aiY4htt2.2さん
そこで素朴な疑問なんですが。
16バイト揃わなかったからどうする、ではなくって。
例えば「8バイトをrandから作成して、それを2回繰り返して、得られた乱数を掛けて16バイトに」とかではダメなんでしょうか。
もしくは1バイトずつ作成して16回繰り返して組み合わせる、とか。
#スクリプトへの負荷は大きくなりそうですが。
#さほど問題が無い範囲の回数で処理するなら、この手の問題はあっけなく簡単にクリアされそうな感じです。
693: 未承諾広告※ ◆aiY4htt2.2 03/08/29 20:17 ID:9vO/PFe2(3/3) AAS
>>692
2ch と同じ値を出す目的でなければどんな方法でも良いかと。
単に石油板での懸念に対してそういえばこういうこともあり得るなぁと呟いてみただけでして(^-^)
694(2): cheshire-cat ◆CATBCJABLA 03/08/29 21:43 ID:/j6Qpjr7(3/3) AAS
>未承諾広告※ ◆aiY4htt2.2 さん
そですよね。。。。
であれば「16バイトじゃなくって、もっと少ないバイト数の乱数しか作成できないかもしれないケース」は回避できますよね。
現在のbbs.cgiを公開は難しい(と言うか無理)でしょうが。
これらのレスを見た上で、管理サイドの人がそれとなーく改造してくれるのを切に願います。
石油板、後で見てみますねん(らぶ
おまけ。
このような脆弱性?を含む(かもしれない)ケースにおいて、対処する事はですね。
2chの運営において、セキュアな環境であるように積極的に取り組み、心がけているというポジティブなアナウンスになりますし。
省8
695(1): 動け動けウゴウゴ2ちゃんねる 03/08/29 23:30 ID:TE88n6mm(1) AAS
>>691
この要望は昔からあるけど、実装してくれないんだよなぁ。
696: 未承諾広告※ ◆aiY4htt2.2 03/08/30 00:08 ID:Jw7oTfGC(1) AAS
>>695
やはり今までにもありましたか。
でも今はそれどころじゃないようですよね(w
♪おはようございます(w
697: 動け動けウゴウゴ2ちゃんねる 03/08/30 02:24 ID:zG6IZkv4(1) AAS
>>694
カタカナが多くて読みづらいなぁと思った。
698: 動け動けウゴウゴ2ちゃんねる 03/08/30 12:47 ID:97n7Iir5(1) AAS
>>694
だからさ、なにが脆弱で、なにがアンセキュアなの?
699(1): 動け動けウゴウゴ2ちゃんねる 03/08/30 12:59 ID:dNG9eM+6(1) AAS
>>690
/dev/randomって読めなければ読めるまでブロックするのでは
700(1): 03/08/30 22:31 ID:F69prBwu(1) AAS
シロウトなんでよく分かんないけど。
自分のIPから実際に2chにテスト書き込みして、表示されたIDを記録。
自分のIPと板文字列と全てのrandomからIDを生成するプログラムを走らせて。
一致するかどうかをチェックする。
その一致したときに使ったrandomが正解。
randomの値が16バイトなら2^128回も計算する必要が有る。(IPv6の大きさぐらい)
しかしrandomがあまりブレていないと、割り出される可能性が上がる。
こんなかんじ?
701(1): cheshire-cat ◆CATBCJABLA 03/08/30 22:41 ID:qiZ4CHeM(1) AAS
>>699
ちゃんとブロックされるならば、ね。
>>700
おおむねの主旨は、その通りです。
上下前次1-新書関写板覧索設栞歴
あと 300 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.015s