以前に上記の方法と同じようなものを検討したことがある。エスケープ漏れが発生するのは、同じ変数の中味が処理の段階によって未エスケープからエスケープ済みに変わったり、未エスケープとエスケープ済みの変数が何の区別もなく混在しているからだという話をどこかで読んだためだ。 「安全なテンプレートシステムはあるのか」ですかね。型が同じなのが良くないのではないかという話であって、変数の名前で区別する話ではありませんが。 ……ところで余談ですが、新しいhatomaru.dllでも「全部DOMでつくり、InnerXml/OuterXmlには書き込まない」というポリシーは健在で、XSSに対する特別な配慮はほとんどしていません。それは良いのですが、実は「全部DOM」方式にも弱点があることが判明しています。 C#でこんなコードを書くと……。 XmlDocument result = new XmlDocument(
RailsでXMLリクエストのパースに使用されているREXMLに、DoS脆弱性が発見されました。XML entity explosion attackと呼ばれる攻撃手法により、ユーザから与えられたXMLを解析するようなアプリケーションをサービス不能(DoS)状態にすることができます。大部分のRailsアプリケーションはこの攻撃に対して脆弱です。 XML entity explosion attackというのは、実体宣言の中で別の実体を参照することを繰り返して実体参照の処理負荷を高める手法のようですね。掲げられているサンプルコードは短いですが、実体参照を展開するとデータは30メガバイトにもなります。展開の処理方法によっては、メモリを食い尽くしてしまうのでしょう。 外部からXMLデータのPOSTを受け付けるようなサイトは注意……と言いたいところですが、XMLデータのPOSTを受け付けないはずの
Posted by Shugo Maeda on 23 Aug 2008 Rubyの標準ライブラリに含まれているREXMLに、DoS脆弱性が発見されました。 XML entity explosion attackと呼ばれる攻撃手法により、ユーザから与えられ たXMLを解析するようなアプリケーションをサービス不能(DoS)状態にすること ができます。 Railsはデフォルトの状態でユーザから与えられたXMLを解析するため、大部分の Railsアプリケーションはこの攻撃に対して脆弱です。 影響 攻撃者は、以下のように再帰的にネストした実体参照を含むXML文書をREXMLに 解析させることにより、サービス不能(DoS)状態を引き起こすことができます。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE member [ <!ENTITY a "&b;
While reading this I thought that it may be a way of including a namespace as XML.. and while I was investigating, I found this.. http://www.w3.org/TR/REC-xml-names/#scoping When I saw that, I immediatelly tried it out.. so, if theres a way of including XML code, you are doomed hehe :P Here is the .xml file PoC to try it out [warzone.elhacker.net] The interesting thing is the code..
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く