どさにっき(アナログ) 〜2010年3月下旬〜

by やまや
<< = >>

2010年3月21日(日) 春分の日

無題

_ 3月だってのになんで台風なみの暴風が。今週末は房総半島のさきっぽを自転車で走ってこようかと思ってたんだけど、この風じゃヘタレなわしは中止せざるをえず。箱根を越えて富士山方面に行く計画を立ててた某氏たちは生きてるだろうか。

_ めげずに近所に飯を食いに行くのに自転車を使ったら、突風にあおられて車道に大きくはみだしてあやうく車にはねられそうになった。


2010年3月26日(金)

無題

_ 電車で座っていた小学生か中学生かぐらいの女の子が、席を譲っていた。教育が行き届いてるのかもしれないけど、譲られたのは立ってるのが辛そうな様子は微塵もないどう見てもまだ40代ぐらいのオバサン。

_ そんな人を年寄り扱いして席を譲っちゃうのは、かえって神経を逆撫でしないかとヒヤヒヤしたけど、オバサンはまったくそんなことは考えなかったようで、譲られた席に嬉々として座っていた。少しはショックを受けたり驚いたりする素振りがあってもよさそうなものだが。

web 以外からの XSS

_ SQLインジェクションのコードが書かれたナンバープレート。まあ、これはネタだと思うけど、web 上で何か悪いことをやらかすためのコードを web 以外の場所に置くというのはありうる話。

_ whois の登録情報(たとえばドメイン所有者の住所とか)に javascript を仕込んで、web 上から whois 情報を検索できるサイト上でそれを実行させることを狙ったドメインというのを 発見したことがある(リンク先のものは失効したようだが、これ以外にもいくつか見つけた)。んで、その js の実行を許してしまう脆弱な whois gateway がいくつもあることも知っている。ということで、whois で XSS 可能です。

_ 製品名に javascript コードが含まれたモノを発売すれば、ネット通販なサイト上でそいつを実行させられるのではないか、と考えたことがある。だいぶ前(少なくとも5年以上前) amazon でとある本のタイトルに含まれる HTML の特殊文字("<" とか)が実体参照に置換されずそのまま出力されているのを発見したときに思いついた。amazon に今もこの穴(?)が残ってるかどうかは知らないけど、業者からの商品情報をロクにチェックせずそのまま web に載せてしまってコード実行を許す通販サイトはありそうな気がする。


2010年3月29日(月)

また中国か

_ i.root-servers.net が中国に乗っとられかけたらしい海外ニュースサイトのまとめ、現時点では唯一(?)の 国内記事

_ キモいけど、traceroute の様子や TTL から推測するに、うちからアクセスする分には日本国内にあるノードが使われてるような感じなのでたぶん問題なさげ。ただ、あんまりお近づきにはなりたくないので、自宅サーバのキャッシュ DNS のルートヒントから中国国内にノードがあるという F, I, J を揃って抜いてみた。香港にあるという A はとりあえずそのままで。

_ 自宅内で使う程度なら信頼性もさほど気にする必要がないから、怪しいのを抜くよりもむしろ国内にあって速く応答が返ってくる数ヶ所だけを残して残り全部消す、というやり方もありかなぁ。仕事じゃありえないけど。


2010年3月30日(火)

特定の URL のみ認証をはずす

_ この話題は定期的に出てくるね。 新技

_ でも、できるからといって、実際にやるのはやめておいた方がいい。なぜなら、 認証をはずしたところに認証情報が漏れるから。4年ぶりに読み返すとところどころ日本語が壊れてるけど、まあ意味は伝わると思う。漏らすのはサーバではなくクライアントなので、サーバが apache だからダメというわけではなく、どれを使ってもみんな同じくダメ。漏らさないブラウザを使えばいい、とかいって w3m をみんなに押しつけるのはアレだし。

_ なお、認証のないところに認証情報をお漏らししちゃうクライアントが悪いというかというとそうではない。RFC2617 曰く、

   A client SHOULD assume that all paths at or deeper than the depth of
   the last symbolic element in the path field of the Request-URI also
   are within the protection space specified by the Basic realm value of
   the current challenge. A client MAY preemptively send the
   corresponding Authorization header with requests for resources in
   that space without receipt of another challenge from the server.
意訳すると「ある URI に認証がかかっていれば、クライアントはそれと同じかより深い階層にも同じ認証がかかってるとみなすべき(SHOULD)で、いちいち 401 のエラーを食らう前に認証情報を投げてしまってよい(MAY)」。サーバ側についての言及はないけど、クライアントは RFC で認められた動作をしてるだけなので、その前提をぶっこわして認証をはずしてしまうサーバが悪いと考えるのが妥当。明示的に禁止されてるわけでない、と気楽に考えるのもアリだが。

_ まあ、ぜったいにやるな、とは言わんけどね。漏らす先を管理しているのも自分であるなら漏れたところでたいした影響ないし。でも、認証の必要がない URL にもかかわらず、ブラウザは認証情報をムダに送り続けるというのは覚えておくべきだし、こういう方法をネタにするのであれば危険性についても併記しておいてほしい。

_ 記憶がおぼろげだけど、squid はたしか認証情報付きでリクエストすると、実際に認証が必要だったかどうかは関係なくキャッシュを無視してオリジンにコンテンツを取りにいくはず。つまり、こういう設定すると squid 意味なしってことだな。

無題

_ i.root-servers.net が怪しかった件。ルートサーバは同じ IP アドレスのホストが anycast で世界中に存在してるわけだが、そのせいでうちが使ってるものが話題になってるものと同じものなのかどうかよくわからん。

_ ので、なんとなくこんなの叩いてみた。

$ for i in {a..m}.root-servers.net; do echo -n $i:; dig @$i chaos txt hostname.bind +short; done
a.root-servers.net:"ans19-nyc3"
b.root-servers.net:"b2"
c.root-servers.net:"lax1b.c.root-servers.org"
d.root-servers.net:"d-root-new.net.umd.edu"
e.root-servers.net:"e1.arc.nasa.gov"
f.root-servers.net:"kix1b.f.root-servers.org"
g.root-servers.net:"g.root-servers-pac2.net"
h.root-servers.net:"H3"
i.root-servers.net:"s1.tok"
j.root-servers.net:"jluepe1-eltpe1"
k.root-servers.net:"k2.tokyo.k.ripe.net"
l.root-servers.net:"d13.lax"
m.root-servers.net:"M-NRT-JPNAP-2"
i の tok というのは tokyo のことかなー、となんとなく想像してみる。k と m も国内にありそうな感じだね、なんとなく。a はなんとなく new york city かなー、とか。

_ 同じことを gtld-servers.net (com と net の NS) にやってみたらぜんぶ無視された。そういえばここって bind じゃなくて verisign の自前開発品を使ってるんだっけ。つーか、それを考えると verisign が運用してるルートサーバが gtld-servers.net と違う挙動なのが謎だ。

_ まあ、こんないいかげんな推測よりも、ping を打って RTT が小さいのが国内、と考えた方が確実か。


<< = >>
やまや