クロスサイトスクリプティング対策 (114レス)
上下前次1-新
1: 名無しさん@お腹いっぱい。 01/10/27 10:37 ID:AENF9z2S(1/2) AAS
外部リンク[pdf]:securit.etl.go.jp
簡単にいって、フォームの入力をサーバサイドで処理してHTMLと
して出力する時に、文字のエスケープを適切に行わないと、
Cookieを取得するJavaScriptを埋め込み&出力結果を別サイトに
リダイレクトする、というような方法を使ってCookieを第三者に
盗まれる可能性がある、ということです。
上の資料を参考にしながら、
それぞれの処理系における、どのようの文字列エスケープを行うべきか、
といったサーバサイドの対策に関する情報を交換していきたいと思います。
2(1): 名無しさん@お腹いっぱい。 01/10/27 11:07 ID:AENF9z2S(2/2) AAS
とりあえずは、Perlの場合で、BBSやチャットだと、
一番カタイのはタグ禁止ということにして<,>を文字実体参照に変換してしまう
のが手っ取り早いと思います。
3: 名無しさん@お腹いっぱい。 01/10/28 03:25 ID:ZO04qCcD(1) AAS
セキュリティ板に載ってました、クロスサイトスクリプティング脆弱性の
最近の具体例が。
外部リンク[html]:memo.st.ryukoku.ac.jp
のArticle 1756。見ればわかりますがHTMLタグのエスケープ処理を
忘れてるものと思われます。<SCRIPT>タグなんか埋め込まれた日には
色々悪さされそうです。
4(1): 名無しさん@お腹いっぱい。 01/11/02 23:53 ID:bu2IICno(1) AAS
本気で対策したい人たちが読むことを期待して。
少なくともFORMから入力されたパラメタは、全て読み込んだ時点で
実体参照に置換してしまう(汚染チェックも行う)。
s/&/&/g
s/</</g
s/>/>/g
s/"/"/g
URLやHTTPヘッダもそうするべきだけど、そこまでは辛いか?後は比較などで、
元の文字列でなければ困るところだけ、一時的に元に戻すようにする。
s/</</g
s/>/>/g
s/"/"/g
s/&/&/g
(上記は2chがちゃんと処理してなかった場合ちゃんと見えないかも。
面倒なんでその場合はページのソースを見てください)
必要な箇所での戻し忘れがあった場合の不都合は、比較的簡単に目に見えるので
どってこたない。置換を忘れた場合は見つけにくい上にセキュリティ問題になる
ことを考えれば、これくらい徹底した方がいいのでは?
5: 名無しさん@お腹いっぱい。 01/11/03 00:20 ID:zLquoryW(1) AAS
男は黙って tr/\W//d
6: 4 [" on%00mouseover="alert('aa')] 01/11/03 00:48 ID:??? AAS
s/&/&/g
s/</</g
s/>/>/g
s/"/""/g
だ。下のは
s/&/&/g
s/</</g
s/>/>/g
s/""/"/g
ふー…ちゃんと&と"も置換してよ。
7: age [%00%22] 01/11/03 00:52 ID:??? AAS
age
8: age [&age'] 01/11/03 17:57 ID:??? AAS
age
9(1): 名無しさん@お腹いっぱい。 [&{alert('Hello')};] 01/11/03 19:10 ID:??? AAS
&をエスケープしないのはヤバーイよ!
ネスケ4で見てね。
10(2): 9 [&{var a='http://gotonext.cool.ne.jp/gazou/hiroyuki4.jpg'};] 01/11/03 19:17 ID:??? AAS
つづく
11: 10 [&{document.images[0].src=a};] 01/11/03 19:17 ID:??? AAS
こんなことも(;´Д`)
12(2): 10 [&{var a='http://www.nurs.or.jp/~nspixp/neomugicha/'};] 01/11/03 19:24 ID:??? AAS
シパーイシターヨ
13(2): 12 [&{document.images[0].src=a+'newsstation/aaa.jpg'};] 01/11/03 19:25 ID:??? AAS
これでどーよ、ネスケ4
14: 名無しさん@お腹いっぱい。 01/11/04 14:11 ID:??? AAS
神が降臨シテルヨ
15: 神じゃないけど [&{alert('降臨')};] 01/11/05 23:36 ID:??? AAS
ネスケで見てる人はあまりいなかったのかage
16: 名無しさん@お腹いっぱい。 01/11/05 23:40 ID:gvBrmPxu(1) AAS
真の神は、やっぱりMSのPassportでしょ。
外部リンク[html]:www.zdnet.co.jp
17: 名無しさん@お腹いっぱい。 01/11/06 01:05 ID:??? AAS
神はみんなに平等にcookieを読む権利を与えたのだ
18: 名無しさん@お腹いっぱい。 01/11/06 01:28 ID:??? AAS
パンが無ければCookieを食べればいいじゃない。
19: 01/11/06 13:33 ID:hz5ky/YY(1) AAS
くそ・・・ネスケ4で見たら落ちたよ(涙)
20(1): 名無しさん@お腹いっぱい。 01/11/06 15:28 ID:??? AAS
>>13
そーいや、それについての警告を見た事無いな。
何処かに名文ないものかな?
21(1): 名無しさん@お腹いっぱい。 01/11/06 16:19 ID:8Is73jkR(1) AAS
>>20
これとか:
外部リンク:www.securityfocus.com
この著者は先日MicrosoftのPassportの問題を指摘した人物。
Apache Softoware Foundationのメンバーで、1.3.11の同脆弱性を直した人。
22(2): 名無しさん@お腹いっぱい。 01/11/09 00:12 ID:ShSwDwY3(1) AAS
いや明日仕事で、うちの会社で開発したwebサービスの
クロスサイトスクリプティング対策をやんなきゃいけなくって、
できる限りヤバーイのを発見しないといけないんだけどさー、
どうするのがいいかねぇ。
23: 名無しさん@お腹いっぱい。 01/11/09 00:42 ID:??? AAS
>>21
英語か:-(
誰か和訳してくれないものかな。
24: 名無しさん@お腹いっぱい。 01/11/09 21:56 ID:QF/0zNjv(1/2) AAS
>22
まず、実体参照への変換関数(メソッド)を固定の記号に置き換えて返すように変更して実行してみる。
例えば"====================="とか。
そして、フォームの全てのパラメタに"**************************************************"とかの
目立つ文字列を入れてみて、後者がブラウザ上に現れたらアウト。
※hiddenフィールドもチェックしないとね
ただしそれだけだと、URLやHTTPヘッダのチェックが見落としやすいな…。
URL等をブラウザに表示している箇所は、"*********..."が表示されるはずだからそうなっていない
生のURLやUser-Agent等のヘッダの文字列が表示されていたらアウトなわけだけど…。
25: 名無しさん@お腹いっぱい。 01/11/09 21:57 ID:QF/0zNjv(2/2) AAS
後は全エラー画面をチェックしないといけないが、これは画面よリソースをチェックした方が早いだろうなぁ。
26(1): 名無しさん@お腹いっぱい。 [age] 01/11/09 23:25 ID:??? AAS
PHP 使ってますが。
フォームからのものとか、REMOTE_ADDR、REMOTE_HOSTなど
すべて strip_tags() してますが、安全でしょうか?
27(1): 名無しさん@お腹いっぱい。 01/11/10 00:07 ID:9tmYIcvX(1) AAS
たぶん。としかいえんなぁ。変換関数が組み込みのものだと24に書いたみたいなテスト方法は駄目だね。
要はそれを忘れてないかどうかが問題なので。
環境変数等から変数に代入する時点で変換するというポリシーが貫けているなら、
この問題に対してはほぼ安全と思う。
28: 26 01/11/10 00:58 ID:??? AAS
>>27
とりあえずhiddenを含め全部やってるはずなので、一応安心しておきます。
29(1): cookieが表示されない [jab1@lists.em5000.com] 01/11/12 16:46 ID:??? AAS
セキュリティホール memo
外部リンク:www.st.ryukoku.ac.jp の
MS01-055: Cookie Data in IE Can Be Exposed or Altered Through Script Injection (セキュリティアンテナ, 2001.11.09)にあるデモ
外部リンク:www.solutions.fi
でamazon.co.jpを読むと(事前にamazon.co.jpのcookieを取り込んである)
MSIE cookie vulnerability test page
This page displays the cookies found on your browser for site amazon.co.jp:
Cookies:
No cookies found for site...
Click here to make new search for cookies.
−−−−−
アクティブスクリプトに対して「プロンプトを表示」で表示されたら
はい(Y)を選択する。
こんなダイアログ−画像リンク[png]:www.st.ryukoku.ac.jp
−−−−−
アクティブスクリプトを実行しなければ "; document.location=url; と表示される。
−−−−−
デモが表示された後、「戻る」と
警告: ページの有効期限切れ 要求したページは、フォームで送信された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。
情報を再送信し、この Web ページを表示するには、ツール バーの [更新] ボタンをクリックしてください。 となる。
30: 名無しさん@お腹いっぱい。 01/11/12 17:13 ID:??? AAS
>>29
IE5.5とIE6しか再現しないそうだ
31: >30 [jab1@lists.em5000.com] 01/11/12 18:24 ID:??? AAS
IEは5.01SP2です。
外部リンク[asp]:www.microsoft.com
によると、
テストしたバージョン :
マイクロソフトは Internet Explorer 5.5 SP2 および 6 のテストを行い、これらの脆弱性による影響を評価しました。それ以前のバージョンに関してはサポート (英語情報) の対象となっていないため、この脆弱性による影響は不明です。
とのこと。
ということは、5.01でも危険ということだろうか。
32: 名無しさん@お腹いっぱい。 [age] 01/11/26 07:56 ID:??? AAS
age
33: 名無しさん@お腹いっぱい。 01/12/17 07:29 ID:BojNQSph(1) AAS
age
34: テスト 01/12/19 07:01 ID:RLJpoDQa(1) AAS
外部リンク:pc.2ch.net
35: テスト 01/12/19 07:06 ID:??? AAS
外部リンク:pc.2ch.net
36: 名無しさん@お腹いっぱい。 [age] 02/01/12 14:08 ID:??? AAS
age
37: 02/01/26 08:50 ID:SUrQysHb(1) AAS
a
38(1): 名無しさん@お腹いっぱい。 02/01/26 11:51 ID:??? AAS
こんなのmail欄に入れたらどうなるんだろう?
&{document.captureEvents(Event.LOAD);window.onload=new Function('for(var i=0;Boolean(document.links[i]);i++)document.links[i].href=\'\';')};
39: 名無しさん@お腹いっぱい。 02/01/26 13:20 ID:??? AAS
>38
自分でやってみてよ(笑)
上下前次1-新書関写板覧索設栞歴
あと 75 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s