web-dev-qa-db-ja.com

Stack Overflowの回答からの脆弱なJavaScriptスニペットを考えると、作成者がコピーして貼り付けたWebサイトを安く見つけるにはどうすればよいですか?

多くの場合、JavaScriptの質問に対するStack Overflowの回答には、XSSの脆弱性(または他の種類の脆弱性)が含まれています。たとえば、HTMLエンティティのデコードに関する質問へのこの 420の賛成投票と25万回のビューでの回答 は、信頼できない入力で使用すると、XSSの脆弱性を引き起こす可能性があります。

回答の人気を考えると、この脆弱なコードスニペットを使用しているWebサイトが数十、おそらく数百または数千あると想定できます。これらを見つけることは、これらのアプリケーションの所有者に脆弱性について通知したいブラックハット(これらのサイトの1つはハッキングに値する可能性がある)とホワイトハットの両方にとって興味深いものです。

ただし、そのようなWebサイトを見つけることは、ささいな問題ではありません。 GoogleはJavaScriptをインデックスに登録しないので、Googleでスニペットを探して脆弱なサイトを見つけることはできません。 GitHubを検索中 は、コピーおよび貼り付けされているスニペットのインスタンスをいくつか検出しますが、ほとんどのWebサイトのソースはGitHubで公開されていません。もちろん、インターネット全体をクモにしてWeb上のすべてのJavaScriptを検索することは理論的な可能性ですが、私(またはほとんどの人)が実行できるリソースを備えているわけではありません。

したがって、実用的なメカニズムは、通常の人が場所を検索しなければならないコードスニペットがコピーされて貼り付けられましたか?

9
Mark Amery

簡単で強力な与えられたコードを大量にスキャンする方法はありません。

私が考えることができる可能性のほとんどは書かれていますが、それらを完全な答えに戻すように努めます。また、私の答えは、Stack Overflowのスニペットだけでなく、すべてのスニペットに適用されます。

  • コンテキストの検索:これは、おそらくソースコードを検索する最も効率的な方法です。 CMS(Wordpress、Joomla、e107)の脆弱性を探していますか?それらのほとんどは、Googleで実行できるProudly powered by ...などの特定のコンテキストを持っています。これは、リンクした質問には当てはまらないようですが、コードが実行されるコンテキストを推測して、従来の検索エンジンでそれらを見つけるのに役立つこともあります。

  • ソースコードの検索エンジンを使用します:従来の検索エンジンほど優れていないにもかかわらず、最も人気のあるWebサイトでいくつかの結果を得ることができます。それらはたくさんあります: nerdydataglobalogiqpublicwwwsearchcode ...

  • コード共有プラットフォームを使用する:質問に含まれているように、ソースコード共有プラットフォームを使用して、脆弱なコードを見つけ、Webサイトにトレースできます。 Github は効果的ですが、 Pastebin を試すこともできます。

  • クロールWebサイト:これはおそらく最悪の遅いオプションですが、確実に機能します。

あなた自身のセキュリティについてもっと興味があるなら、あなたもできます:

  • プラグインを使用します:プラグインは、アクセスしたページのソースコードを調べ、検索したコードのいずれかと一致するものがあるかどうかを確認しますために。

もちろん、ボットネットやソフトウェアを配布するなど、他にも強力な方法がありますが、時間や違法な問題を必要とするため、問題の範囲外です。

1
Xavier59