6

私は、会社で公開されているクラウドプラットフォームを管理するチームの一員です。インターネットに面したVMを実行している大規模なユーザーベースがあります。アドレス空間の自動スキャンを実行して、Railsアプリを実行している人がいないか確認したいので、今週発生した重大なセキュリティの脆弱性を回避するために、Railsのバージョンをアップグレードするように通知できます。

一部のApacheデプロイメントには、便利なPassengerヘッダーがあることに気づきました。

X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 2.0.3

ただし、これは信頼できません。応答ヘッダーまたは決定的なGET/POSTを使用して、Webサーバーの背後で実行されているRailsを検出する信頼できる方法があるかどうか疑問に思っています。ありがとう!

4

5 に答える 5

5

すべてのRailsサイトには次のものがあります。

meta content="authenticity_token" name="csrf-param'

少なくともそれは私が一貫して見たものです。

ヘッダーの応答は信頼できません。さまざまなRailsサイトからの3つを次に示します。

Server:Apache/2.2.14 (Ubuntu)
Server:nginx
Server: thin 1.4.1 codename Chromeo

あなたはnginxとThinがRailsコミュニティで人気があることを知っていますが、それはその背後にRailsがあると言うのに十分な決定的ではありません。サイトをスクレイプして上記のメタタグを探すスクリプトを実行する必要があります。スクリプトをPythonで作成する場合、BeautifulSoupは非常に優れています。Rubyを使用する場合は、Mechanizegemが最適です。

于 2013-01-10T19:01:02.383 に答える
0

通常は変更されないままになっているRailsのもう1つのデフォルト設定は、メイン /assets/application-<hex hash>.{css,js}ファイルの名前です。

Railsを検出する信頼できる方法が1つあるとは思いませんがauthenticity_token、デフォルトのアセット名とHTTPヘッダーを組み合わせて使用​​することで、Railsアプリの大部分を識別できるはずです。

Wappalyzerスクリプトは、これら3つの基準を使用し、2つの共起がRailsアプリを示していると見なします。

于 2013-01-10T20:55:20.623 に答える
0

Railsアプリは、許可されている構成に応じて、さまざまなポートで実行できます。これに加えて、アプリが認識できる方法で応答しない可能性があるという事実は、見つけるための「最適ではない」方法のように思われます。

代わりに、ホスティングを所有している場合は、アプリをサポートするドライブとシステムを所有しています。grepRailsに一致する文字列を探して、システム全体を実行してみませんか。

または、いくつかの標準Railsファイルを検索します。を使用するfindlocate、実行している場合。

于 2013-01-10T18:48:52.440 に答える
0

Wappalyzerは良いオプションです、そして(恥知らずなプラグ)あなたはSpotkickを見ましたか?現在プライベートベータ版ですが、これはオープンソースアプリを実行するための分散エンジンであるため、すべてのサイトでWappalyzerを実行して、おそらく実行中のレールを確認できます。

私はbanklook.comに対してこれを行います-セキュリティリスクに関する詳細を掘り下げるために約6800の銀行を運営しています。

詳細や情報が必要な場合はお知らせください。

于 2013-03-02T17:33:12.640 に答える
0

ほとんどのRailsアプリには、送信ボタンがあります。name="commit"

于 2017-01-12T20:33:34.473 に答える