攻撃してね
Wednesday, April 26, 2006
コンピュータチックの話だが、、、
会社の後輩が、俺のサイトをハックしてくれるらしい。
ざまあみろ!てめえには負けねぇぞ!
とか、言って、いろいろ条件付けた。
身元がわかるよな攻撃は通報するぞ!
とか、そんなもんだが、結局、彼は、美しい破り方しか出来ないように、追い込んであげた。
俺が悪いねん、、、
てなのはまあ、いいが、ちゃんと攻撃してねH君!コメントスパンしか出きないだろうけどね
って、なんだかんだ言っても絶対俺より頭いい奴だから、なんとか、やるだろ(笑)
いやあ、人にプレッシャ与えるって楽しいねえ
会社の後輩が、俺のサイトをハックしてくれるらしい。
ざまあみろ!てめえには負けねぇぞ!
とか、言って、いろいろ条件付けた。
身元がわかるよな攻撃は通報するぞ!
とか、そんなもんだが、結局、彼は、美しい破り方しか出来ないように、追い込んであげた。
俺が悪いねん、、、
てなのはまあ、いいが、ちゃんと攻撃してねH君!コメントスパンしか出きないだろうけどね
って、なんだかんだ言っても絶対俺より頭いい奴だから、なんとか、やるだろ(笑)
いやあ、人にプレッシャ与えるって楽しいねえ
コメント#78
ただの一人ごとですが
もしかして、 /home は /usr/home のシンボリックでしょうか。
|とおりすがり|
Thu,Apr-27 13:09|
コメント#79
管理人様メールより引用
>で、多分freebsdのデフォルトなので、シンボリックリンク
>だったと思いますが、なんでわかるの?
なんでわかったかといいますと、FWを突破して
サーバの脆弱性をついて一般ユーザ権限でコマンドを実行した
、、、というのはうそです。すぐわかると思いますが秘密です。
昨日、確認し忘れましたが、この一週間プログラムやサーバの設定を
変更するのは なし にして頂きたいんですが、だめでしょうか?
|とおりすがりのScript Kiddie|
Thu,Apr-27 15:21|
コメント#80
了解。で、いつまで?
多分、連休中に、開発の続きやるので。
|管理人|
Thu,Apr-27 15:36|
コメント#81
設定変更なしは、今月いっぱいでお願い致します。
サイト攻略は、 5/3 の 23:59:59 までがんばってみます。
|とおりすがりのScript Kiddie|
Thu,Apr-27 15:59|
コメント#82
> もしかして、 /home は /usr/home のシンボリックでしょうか。
了解しました。バグかな。
ちなみに、みたのは、common.phpの833行目のエラーかな、、、
|管理人|
Thu,Apr-27 21:24|
コメント#83
さにたいずてすと<test">
|<test">|
|Thu,Apr-27 22:36|
コメント#84
テスト投稿
|とおりすがりのScript Kiddie|
Sun,Apr-30 00:15|
コメント#85
テスト投稿
|とおりすがりのScript Kiddie|
Sun,Apr-30 00:19|
コメント#86
テスト投稿
|とおりすがりのScript Kiddie|
Sun,Apr-30 00:23|
コメント#87
||
Sun,Apr-30 00:57|
コメント#88
> テスト投稿2
文字コードの加工はしていないので、SJISのデータはそのまま表示されてしまいます。
はじいたほうがいいですかね、、、
でも、パソコンがまともであれば、多分大丈夫なんだと思いますし、パソコンがまともでなくとも、
ShiftJISの2バイト目には、<や、>はないので、大丈夫だと思ってます。
なお、ブラウザのuser-agentを携帯端末に偽装すると、携帯用のページがみれますし、投稿すると、変換が行われます。(SJISからUTF-8への変換)。mbの変換関数を使ってますので、そこに脆弱性があれば、、、でもこれも多分大丈夫。
http://www.nttdocomo.co.jp/service/imode/make/content/html/tool.html
とかで、みれます。ネットワークまではチェックしてませんので。
|管理人|
Sun,Apr-30 08:38|
コメント#89
それでは、いたずら結果の中間報告をします。
なにをもって負けか決めていませんでしたので、今から書く内容を「負けた・ちょっと負けかも・どちらともいえない・そんなのどうでもいいんじゃん・はー?なに言ってんのコイツ」といった感じで採点していただければと思います。
|とおりすがりのScript Kiddie|
Mon,May- 1 00:35|
コメント#90
■まーどうでもいいかもレベル
・HTTPのレスポンスヘッダーに使用ソフトの細かいバージョンを記載している。
HTTPレスポンスの一部---------------
・・・・
Server: Apache/2.0.55 (Unix) DAV/2 PHP/4.4.2 mod_ssl/2.0.55 OpenSSL/0.9.8a
・・・・
---------------------------
-> 古いバージョンに脆弱性があったりするとそこを突かれる可能性があるため、わざわざ表示することはないと思います。
・blog.gakitama.comの多分すべてのページで</BODY>タグがないような気が、、、
・フォルダの中身一覧が表示できちゃう(わざと?)
- blog.gakitama.com/pic_t/ <- サムネイルのt?
- blog.gakitama.com/pic_o/ <- オリジナルのo?
- blog.gakitama.com/pic_p/ <- ポップアップのp?
- blog.gakitama.com/files
ベストピクチャー↓ http://blog.gakitama.com/files/watarasegawa_yuusuichi_hiru2_mekakushi.JPG
・テストblog発見
http://blog-test2.gakitama.com
放置していると悪い人が以下のURLから、がんばって入ろうとしちゃうかもしれませんよ。
http://blog-test2.gakitama.com/pivot/index.php?menu=&func=login
・blog.gakitama.comのログインを何もトップページにのせなくても、、、
-> セキュリティを考慮するなら、みえないところに別途ログインページを用意するべきかと。
|とおりすがりのScript Kiddie|
Mon,May- 1 00:36|
コメント#91
■ちょっとだけ致命的だと思うレベル
・入力チェック不足(まあ、実害は特にないと思いますが)
- http://blog.gakitama.com/?p=-1
- コメントをPOSTしたときの、name が entry のhiddenタグで、value を "-1" とか "999"とかいれて、いたずらできる。
- PHPSESSIDに"<"や">"とか入れたりしていたずらできる。
・blogにアクセスすると PHPSESSID というCOOKIEを発行しているのには、理由があるのでしょうか。見たところ特に理由がないような気がしますが(まだ開発途中だから?)
たとえばTOPページに1000回リクエストを投げたら、1000個のファイルが、多分/tmp以下にできちゃうことになるかと思います。
このままだとあっという間にファイル数の上限に達して新しいセッションを作れなくなってしまい、例えばログインとかができなくなってしまうかと思います。
■致命的だと思いますが・・・レベル
・XSSの脆弱性が一件
-> さすがにここにかくのはまずいかと思いますので詳細は省略。
管理人様のことですから既に気づかれていことかと思います。
|とおりすがりのScript Kiddie|
Mon,May- 1 00:37|
コメント#92
きつそうなところから、、、
1.> XSSの脆弱性が一件
気づいてませんよ、、まだ。
ひょっとして、#83のhrefのところかな、、、違う?
|<test">| <test">| ってところ。
プログラムからは、
|<a href="<test">"><test"></a>|
のように出力してるんですが、ブラウザのソース表示で見ると、””でかこまれたところを、
加工してくれてる、、、、ってやつ。
ここじゃなかったとしたら、完敗かな、、、
2.p=-1 おおーいっぱい
完全に言い訳ですが、これ、チェックしてます。ただ、公開直前に仕様変更したので、
それのバグです。(ページ0からだったのをすべてページ1にしてページ0をなくした。)
つまり、すべて、ページ0を見せて失敗してます。
(静的ページは、すべて、キャッシュしてるので、でないと、キャッシュがいっぱい、、、)
まあ、負けですか、、、
3.PHPSESSIDに<とか>とか、なにか入れるといたずらできる、というのは、攻め方がわから
ないので、おせーてください。
ちゅうか、クッキーばれたら、どうせ終わり、、、ばれなきゃ大丈夫、、、
てなだけ、と思ってますが、、、
4.name が entry のhiddenタグで、value を "-1" とか
これは、前に書いたやつですよね、、
とりあえず、もうすぐ直します。
リリースの手間がかかるので、急ぎでない場合は次のリリースまで、待ってください(笑)
あとは、特に気にしちゃいないんですが、一応、、
5.セッションファイルが1000個できる、の件は、別に気にしてはいません。
まずいのかな、、、
理由は、ログインしてる時に、同じURLにアクセスして、同じキャッシュを使いたいから、、、
てなことなんですが、、、
6.バージョン開示は、気にしてません。むしろ、出力してないほうが、俺が、今バージョン
いくつだったか忘れるので、バージョンアップされたのにきづかない、、、ほうがまずい。
7.body タグの終わり、確かにないですねえ、、、
8.ディレクトリの一覧が見えるのは、、、気づいてませんでした。
開発環境の、.htaccessをそのまま持っていったので、、、
最後に、今トラックバックを作っており、明後日ぐらいに、リプレースできると思うので、それまでは、
相変わらず、このままです。
トラックバックできたら、また、攻撃してね(笑)
<script>alert("俺が負けた。コメント");</script>
|管理人<script>alert("俺がまけた。お名前");</script>|
|Mon,May- 1 06:30|
コメント#93
> ・XSSの脆弱性が一件
わかったーー
といいつつ、直してません。笑ってね。hello world のところは、違うメッセージに直しておきました(笑)
|管理人|
Tue,May- 2 19:02|
コメント#94
あらら、わかっちゃいましたか。
それはまた残念です。
|とおりすがりのScript Kiddie|
Tue,May- 2 19:22|
コメント#95
直す前に攻撃用のスクリプトをコメントのURLのところに仕込んでもよろしいでしょうか?
|とおりすがりのScript Kiddie|
Tue,May- 2 19:43|
コメント#96
いいよ、いいよ。
じゃんじゃん、やっちゃって。
|管理人|
Tue,May- 2 19:43|
コメント#97
自作自演乙
|とおりすがりのScript Kiddie|
Tue,May- 2 19:44|
コメント#98
飯を作ってる最中に、見てもらえたようなので、とりあえず、応急処置しました。
translate_entry_for_display( $entry_rec );
#ってのを、ある場所に追加しました。
#って、ソース開放してないから、、、なんのこっちゃですが、、、
といいつつ、他にもあるかも、、、あったら、教えてください。
#ちなみに、指定された先月末まで、もっと物凄い穴が開いてたんですけど、
#その穴まで、バレてたら、ソースも、見えたはずなんですけど、、、大丈夫ですよね(笑)
|たなか|
Tue,May- 2 20:17|
コメント#99
>#ちなみに、指定された先月末まで、もっと物凄い穴が開いてたんですけど、
>#その穴まで、バレてたら、ソースも、見えたはずなんですけど、、、大丈夫ですよね(笑)
も、もちろん気づいて、、、いませんでしたよ。いやー残念でした。
ところでこのblogでログインしているかの判定は
- セッションをログイン状態にする(セッション変数にlogin_flagみたいなものがあって
それがtrueならログイン状態、falseならログインしていない)
- ログインしていることを示すクッキーを新規に発行する
の、どちらでしょうか。答えられなけれければ結構ですが、、、
|とおりすがりのScript Kiddie|
Tue,May- 2 21:03|
コメント#100
デフォルトのセッション使ってるだけなので、前者ですよ。
なので、俺のブラウザに対して、クッキーセットできれば、攻略できるけど、、、
他の攻略法は、俺には、思いつかないなあ、、、
|管理人|
Tue,May- 2 21:14|
コメント#101
>デフォルトのセッション使ってるだけなので、前者ですよ。
>なので、俺のブラウザに対して、クッキーセットできれば、攻略できるけど、、、
うーん、わかっていてあえてそういう作りにしたのでしたら特にこれ以上いうことはないです。
しかしログインに成功したらセッション用のクッキーを発行するという仕様にしたら
>たとえばTOPページに1000回リクエストを投げたら、1000個のファイルが、多分/tmp以下に
>できちゃうことになるかと思います。
と、クッキーを仕込んでおけばログインできてしまうというプチ脆弱性が同時に防げると思うのですが。
話は変わりますが管理人さんが発見したXSSの脆弱性と私が知っているやつは別のような気がします。試しにサンプルコードを貼り付けてもよいですか?やっぱりだめですか。
|とおりすがりのScript Kiddie|
Tue,May- 2 22:49|
コメント#102
1> ログインに成功したらセッション用のクッキーを発行するという仕様
2>- ログインしていることを示すクッキーを新規に発行する
ちょっと、ニュアンスが違いますよね。ログインしてるかもしれないクッキーということで
いいんでしょうか。
ソースを開示して使ってもらうことが、前提で、あまり、面倒なことを、ユーザーにさせたくない、
というのがあって、2だけで実現するのは、ちと、苦しいかな、、、、というのがあります。秘密鍵をユーザーに操作させればいいんだけど、まじめにやるには、ユーザーが面倒だと思ってますが、それともなにかいい方法あります?
「ログインに成功したら、ログインしてるかもしれないことを示すクッキーを新規に発行し、
ログインしてるかもしれないことを示すクッキーが来たら、ログインかどうかチェックする。」
で、ここまで、必要なのかなあ、と思ってますが、やりましょうかねえ、、、
#私がやると、PHPのセッション管理の仕様を意識したようなことしか出来ないん
#で、躊躇してるんですけど、、、なんか、スマートな方法あります?
ちなみに、
>たとえばTOPページに1000回リクエストを投げたら、1000個のファイルが、
これは、気にしちゃいないです。
クッキーを使えないブラウザか、悪意のあるユーザーが、クッキーを無視して
1000回リクエストを投げるか、
1000人も、人が見てくれたら、、、
ということですよね。PHPのデフォルトで、20分ほどで、ガーベッジコレクションが走るし、、、
#ちなみに、今、smaryのキャッシュファイルの数数えたら、2700ありました。
#smartyのキャッシュは、無期限にしてます。
で、もっと危なそうな本題。
>管理人さんが発見したXSSの脆弱性と私が知っているやつは別のような気がします。
>試しにサンプルコードを貼り付けてもよいですか?
貼り付けてください。わからんちんなので。
ちなみに、別のような気がする、のではなく、私の発見したXSS脆弱性のほうも見つけてますよね。
ログを解析すれば、わかることなので、白状しなさい(笑)
|管理人|
Tue,May- 2 23:19|
コメント#103
なんどもテストはしてみたんですけど、さーて、うまくいくかなー。
|とおりすがりのScript Kiddie|
Tue,May- 2 23:44|
コメント#104
現時点では、だ・い・せ・い・こ・う
やたー、ぱちぱち。せっかくなのでこのままプログラムは修正しないという方向でお願いいたします、、、というのは冗談です。
ちなみにIE限定ですがベーシック認証のパスワードも引っこ抜く予定だったんですけど、、、残念ながら失敗ですかね。
なんにせよApacheの設定でTRACEメソッドは無効にした方がよいかと思います。
参考: http://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf
http://www.securiteam.com/securityreviews/5YP0L1FHFC.html
|とおりすがりのScript Kiddie|
Wed,May- 3 00:21|
コメント#105
ほんとだー負けです。<br />
ちょっとまってね。対処するので、、、、
|たなか|
Wed,May- 3 00:44|
コメント#106
>ちなみにIE限定ですがベーシック認証のパスワードも引っこ抜く予定だったんですけど、、、残念ながら失敗ですかね。
補足といいますか訂正すると blog.xxxxxx.com 以下にベーシック認証が必要なページがあったとしてログインしてからスクリプトを踏むと多分ユーザIDとパスワードが引っこ抜けるはず。
#本当は餓鬼魂トップのメンバー制ページのパスワードが引っこ抜けると思っていたんですけど、いろいろ勘違いしていました。。。
#まだまだ修行不足でした。出直します。
>>たとえばTOPページに1000回リクエストを投げたら、1000個のファイルが、
>これは、気にしちゃいないです。
> クッキーを使えないブラウザか、悪意のあるユーザーが、クッキーを無視して
> 1000回リクエストを投げるか、
> 1000人も、人が見てくれたら、、、
>ということですよね。PHPのデフォルトで、20分ほどで、ガーベッジコレクションが走るし、、、
いま簡単なWebのベンチマークソフトを実行しちゃいました。多分、/tmp以下がすごいことになっているかもしれません。スミマセン・・・
それでベンチマークの結果ですが、だいたい一秒間に10リクエスト処理できるみたいです。
とうことは、20分間でがんばると
10×60×20=12000個のファイルを作ることができることになります。
まあ、それほどマシンパワーがなくあまりいたずらされる心配がない、というのでしたらそれほど問題ではないかと思いますが、このblogシステムを一般に公開して、ゆくゆくはMovableTypeにとってかわるくらいヒットしたら、この仕様(ファイルがバシバシ作られちゃう)だとちょっと厳しいかと思います。
|とおりすがりのScript Kiddie|
Wed,May- 3 01:03|
コメント#107
> blog.gakitama.com 以下にベーシック認証が必要なページが
> あったとしてログインしてからスクリプトを踏むと多分ユーザIDとパス
> ワードが引っこ抜けるはず。
抜けなかったよ?
スクリプトをよく読んでないが、PCに表示してるだけで、そっちのサイトにポストしたり
してないよね。
ちなみに、http://blog.gakitama.com/test/a.htm
ユーザー名パスワードともに、testです。
|管理人|
Wed,May- 3 02:59|
コメント#108
ちなみに、TRACEの件は、対応すると言ったんですけど、対応してません。
movable typeでやってみたら、同じだったので、アプリとしては対応しない、ということで、問題ないと思ってますが、違います?
(別のは、まだ残ってるんだが、これは)
あと、
> 10×60×20=12000個のファイルを作ることができる
の件は、そんな問題なのかなあ?
そんなこと想定するようなシステムは、PHPとかPerlとかで作っちゃいけないような気が
するが、、、
あと、ログイン成功したらクッキーを発行する、ってのは駄目ですよね。どうするのかな?
ログイン成功しても、失敗しても、クッキーを発行する、ってやらないと、辞書アタックしやす
くなっちゃうし、
だとすると、どうせ、ログインのところ攻撃されたら、同じことだと思うんですけど、、、
辞書アタックできないように、waitかまして、レスポンスを遅らせると、apacheのスレッドが占有されて、ぜんぜん駄目だし、、、
ま、とりあえず、考えてみます。
|管理人|
Wed,May- 3 03:29|
コメント#109
コメント106にやばいことが書いてあったので、伏字にしました。
ちなみに、ログイン成功したらクッキーを発行する、だけだと駄目だけど、
ログインに10回連続しっぱいしたら、しばらくログインできない、と組み合わせると、OKか、、、
|管理人|
Wed,May- 3 03:53|
コメント#110
おお、、、負けた、、、
直しました。ぜんぜん違うところ、見てた。なんて俺は、頭が遅いんだ!
#よくあるんですよね、俺の場合、頭が悪いというか、、、
#例えば、麻雀やってて、4局前の、人に振り込んだ手がフラッシュバックのように
#頭に現れて、「あの時、チョンボしただろ!」って、、、もう遅いって、、、、
今回も、酒飲みながら、テレビ見てたら、はっと、気がつきました。(笑)
ちなみに、前にも書いたとおり、まだ脆弱性は残っています。
うまく攻めてね、、、って、もう知ってるかな。(俺には攻め方まではわからんが、、、)
|管理人|
Wed,May- 3 04:41|
コメント#111
マスターコメントが続くが、、、
攻め方も解りました。
一発で決めてね。トラックバックが出来てリリースしたときに、一緒に直っちゃうから、、、
って、こっちのほうが数倍簡単かも。もう、知ってるかな?
|管理人|
Wed,May- 3 04:53|
コメント#112
てすととうこうその20くらい
|とおりすがりのScript Kiddie|
Wed,May- 3 23:37|
コメント#113
てすととうこうその22くらい
|とおりすがりのScript Kiddie|
Wed,May- 3 23:43|
コメント#114
てすととうこうその23くらい
|とおりすがりのScript Kiddie|
Wed,May- 3 23:44|
コメント#115
まあ、URLのサニタイズはあきらめて、チェックするようにしたんだが、
#これも負け?
で、大サービスで、URLチェックの正規表現、、、
"@^(http|https|ftp)://[a-z0-9\.\-\@:\x80-\xFD]*?/.*@i"
です。手抜きだけど、、、
日本語.jp もやらせてあげたいし、漢字のファイルを平気で、置いてる人も、救ってあげたい
し、パスワードを埋め込んでる人も助けてあげたいし、、、
とか言ってるから、穴ができるんだけど、、、
|管理人|
Wed,May- 3 23:49|
コメント#116
>あと、ログイン成功したらクッキーを発行する、ってのは駄目ですよね。どうするのかな?
ログイン成功したらクッキーを発行するでいいのではないでしょうか。スミマセン。だめな理由がよくわからないです。
それはそうと、
このサイトを攻略する方法を他にもいろいろと思いつきますが、残念ながらいたずらをしていい期限が過ぎてしまったのでここには書かないことにします、、、というのは冗談で私の技量ではもう見つけることができないかと思います。
よいお勉強になりました。管理人様に感謝です。
|とおりすがりのScript Kiddie|
Thu,May- 4 00:03|
コメント#117
あ、そうか、今、4日になったんだよね。
ども、デバッグしてくれて、ありがとうです。
#ちなみに、もうちょっと攻めて欲しいなあ、せっかくトラックバック作ったのに。
でとりあえずの総括ですが、
1.?do=xxxx とかやって、ログインが必要な操作をすると、ちゃんとその旨表示されるが、
サニタイズされない。
2. 完了画面で、サニタイズしてない。
3. URLのところのschemeに、javascriptとか、vbscriptとか指定できてしまう。
てなところですね。まだあるかも、、、
なお、今の状態だと、「ログイン成功したらクッキーを発行する」でもいんですけど、
コメントスパン対策とかで、使いたくなってる、、、というのが、10%ぐらい、あります。
携帯の場合は、use_trans_sidとか使って、、、
もうちょっと言うと、「tmpがあふれる心配は、おれの気持ちの中では、1%ぐらいしかない。」
1% << 10% でコメントSPAM対策の勝ち!
てな感じなんですが、、、
では
|管理人|
Thu,May- 4 00:16|
コメント#118
>携帯の場合は、use_trans_sidとか使って、、、
これってURLにセッション用クッキーを埋め込むというものでしたっけ?
外部に画像をリンクしている場合、リファラーからセッション用クッキーがばれちゃうという心配はないでしょうか。そんなことないですかね。
>もうちょっと言うと、「tmpがあふれる心配は、おれの気持ちの中では、1%ぐらいしかない。」
>1% << 10% でコメントSPAM対策の勝ち!
>てな感じなんですが、、、
SPAM対策のためでしたらセッション用クッキーではなく通常のクッキーを発行するというのはだめでしょうか。自分としては、
10%tmpがあふれる心配 = 10%コメントSPAM対策 <<<<<<< 80% セッションハイジャックの危険性
となりますかね。やはりログインしたら新規にログインしたことを示すクッキーを発行した方が、ちょっと安心かと思います。
ちょっとだけblogの仕様についての質問
・たしか記事を投稿するとき下書きモードなるものがあったような気がしますが、一度アップした記事を下書きモードに戻すことは可能なのでしょうか。
・管理機能でコメントを削除した場合、他のコメントのコメント番号はずれたりはしないですよね。
なにがいいたいかといいますと、スパムコメントが大量にきてそれを削除した場合、コメント番号が
歯抜け状態になるからあまりかっこよくないかなー。
|とおりすがりのScript Kiddie|
Fri,May- 5 00:12|
コメント#119
どもです。
今まだ、作ってる最中なんですが、、、、(凝りだしたら、連休中に完成しないかも(笑))
あと、「ソースを複雑にしない安全性」ってのもあるんですよね、、、
で、
> 外部に画像をリンクしている場合、リファラーからセッション用クッキーがばれちゃう
おお、、さすが。偉い!
ただ、POSTする際だけに限定すると、hidden項目に変換してくれたような気がします。
#実は、気がついてなかったけどね(笑)、、、
ちなみに、全員にセッションあげるのは、拒否反応があるようなので、
ソースを以下のように、修正しました。
function gb_session_start(){
session_name( "GAKIBLOSESSID");
// セッションを全員に割り当てたくない場合は、次行のコメントをはずす。(もう一箇所修正必要)
// if ( $_REQUEST["GAKIBLOSESSID"] )
session_start();
}
デフォルトでは、全員にクッキーあげますけど、、、
ちなみに、こんなのもありますけど、、、
// if login_success
// ログインした時に、セッションIDを再生成したい場合は次行のコメントをはずす。
// session_regenerate_id(true);
これで、クッキー踏まされる対策としては、十分なような気がしてますが、、、
あと、こんなのもあります。
// if login_fail
// ログインした時に、IDを再生成したい場合、かつ、
// ログインしようとした場合に、クッキーをだしてもいい場合、かつ
// ログインに成功した場合と、失敗した場合で、レスポンスを変えたくない場合は、
// 次行のコメントをはずす。(攻撃を受けた場合にtmp以下がいっぱいになりますけど、、、)
// session_regenerate_id(true);
余談ですが、phpで、session_regenerate_idってやると、どうやっても、/tmp以下のファイルが増えるんですよね。仕様なのかな。つまり、session_regenerate_idするたびに、tmp以下にファイルが増えていき、前のは消してくれないんですよね、、、
で仕様についてですが、
1.下書きモードに戻すことは可能です。古いエントリを下書きモードに戻すと、それ以降の
キャッシュが、いっぱい、削除されます。下書きモードにもどしたり、削除したりすると、
そのエントリーIDは、歯抜けになります。
2.要検閲コメント、となった場合には、まだ公開されていなくてIDが振られていませんので、
歯抜けにはなりません。要検閲になった場合は、公開するには管理者の操作が必要です。
要検閲になるための条件は、リダイレクトに反応しない、リダイレクトされてきたクライアントと
元のクライアントのIPアドレスのチェック、ドメインのチェック等がデフォルトで、
あとは設定によって、リダイレクトしてきたときに、セッションのチェックとか、
JavascriptでのMD5とかの計算が必要な仕組み、等を考えています。
まあ、歯抜けになるぐらいは、ぜんぜんいいんですけど、エントリの場合、一度、サーチエンジン
に登録されたものが変更されたり、RSS使ってる人とかに迷惑がかかるようなのは、駄目かなと、、、
てなところで、、、
ちなみに、逆質問ですが、コメントスパンの手口としては、私のところに来るのは、
画面遷移はしてくる。ところが、毎回IPアドレスが違う。
ところが、Location: update_comment.php には反応しない。
のがほとんどです。
これって、どういう手口なんなんでしょうね。XSSに脆弱なサイトを踏み台にしてるのか、
ゾンビなのか、、、
|たなか|
Fri,May- 5 01:15|
コメント#120
#連休なのに、プログラミングモード全開だよー
で、とりあえず、仰せのとおりにしてしまいました。
ーログインしたときのみセッションのクッキーを割り当てる。
ーコメントスパン防止用に、別のクッキーを使う。
はーへー、、、今日はもうやめるぞー
てな感じで、、、、
|管理人|
Fri,May- 5 20:44|
コメント#121
>ちなみに、逆質問ですが、コメントスパンの手口としては、私のところに来るのは、
> 画面遷移はしてくる。ところが、毎回IPアドレスが違う。
> ところが、Location: update_comment.php には反応しない。
>のがほとんどです。
>
>これって、どういう手口なんなんでしょうね。XSSに脆弱なサイトを踏み台にしてるのか、
>ゾンビなのか、、
ログを見ないとなんともいえませんが、自分がスパムコメントのスクリプトを組むとしたら
1. トップページとそこからリンクできるページで、FORMでPOSTしている部分を探す
2. 見つかったら、FORMの内容にあうようにいい感じにスパムコメントをPOSTする
というふうにするかな。POSTするときのIPアドレスが違うのは、あてずっぽですけど、POSTするページを探すサーバと実際にPOSTするサーバが違うから?
まあ、すくなくともXSSとかは関係ないと思いますが。
>まあ、歯抜けになるぐらいは、ぜんぜんいいんですけど、エントリの場合、一度、サーチエンジン
>に登録されたものが変更されたり、RSS使ってる人とかに迷惑がかかるようなのは、駄目かなと、、、
サーチエンジンとかを気にしてあーいう質問をしてみたのですが、なかなか難しいですよね。
|とおりすがりのScript Kiddie|
Sat,May- 6 23:21|
コメント#122
#今日は、ドキュメントモード
> POSTするときのIPアドレスが違うのは、あてずっぽですけど、POSTするページを探すサーバと実際にPOSTするサーバが違うから?
ポストするときどころか、ぜーんぶ違うんですよね。でも、それなりに画面遷移してるみたい。
しかも、一度に5-6個のコメントを書き込んできて、それらのIPアドレスが全部違うので、3回画面遷移したとして、15ー18のアクセスのIPアドレスが、ぜーんぶ違う、、、という、、、
おそらく目的は、「同一IPアドレスからの書き込み拒否」を実装してる、ブログとか掲示板が多いからというのもあるんでしょうけど、、、
手口としては、
1.使えるproxyをいっぱいもってる
2.XSSでポストさせる
3.ゾンビPCを使ってポストさせたりしてる
で、リダイレクトに反応しないとこみると、1の可能性は薄いかな、、、と思ったりしてるんですけど、、、
|管理人|
Sat,May- 6 23:31|
コメント#123
このblogを攻略(自由に記事を投稿したり削除・修正するなど)できたら、このスレッドの頭に書いてある
>って、なんだかんだ言っても絶対俺より頭いい奴だから、なんとか、やるだろ(笑)
の、「絶対俺より頭いい奴だから」の部分を修正しようと思ったのですが、結局無理だったのでここで訂正させていただきます。
頭・よ・く・な・い・で・す・よーーーー
以上
うーん、これだとわかってもらえないかもしれないので、どのくらい頭が悪いかというと
1÷3×3=1
が、なぜ「1」になるのか不思議に思っちゃうくらい頭が悪いです。なぜこれを不思議に思うかというと
1÷3=0.33333........
0.33333........ ×3=0.99999........
じゃないですか。うーん、なんで「1」になるんだよー。不思議ーーーー( ゜д゜)
|とおりすがりのScript Kiddie|
|Sat,May- 6 23:34|
コメント#124
ははは。
酔っ払いの書き込みを、真に受けちゃいけません(笑)
> 1÷3=0.33333........
> 0.33333........ ×3=0.99999........
ええっと、まじめに解説すると、
0.99999.....と、最後まで、書き続けることができないから。
ですね。ひつじを数え切る前に寝てしまうのと同じです。
って、まじめに解説してどうする(笑)
話は戻って、酔っ払いの書き込み、申し訳ありませんでした。
ぜんぜん反省してないけど、言葉だけ(笑)
|管理人|
Sun,May- 7 00:44|
コメント#125
>ええっと、まじめに解説すると、
> 0.99999.....と、最後まで、書き続けることができないから。
>ですね。ひつじを数え切る前に寝てしまうのと同じです。
なるほど。そういうことだったのですか。
ところで、質問内容:「栗捨てる」をカタカナにすると?? って、管理人様のセンスには脱帽です。
|とおりすがりのScript Kiddie|
Sun,May- 7 01:16|
コメントする
トラックバック
この記事へのトラックバックURL:
これまでに受信したトラックバックはありません。