問題タブ [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.
c# - C#によるコードインジェクション
Windowsフックまたは他のメソッドを使用してC#でコードインジェクションを行うことはできますか?私はコードインジェクションについて多くのことを見てきましたが、それらはすべてC /C++で行われます。私はそれらの言語のどちらも知らず、翻訳するのに本当に苦労しています。誰かがこれを行う方法について何かアイデアがありますか?
php - PHP でコード インジェクションを回避する最善の方法
私のウェブサイトは最近、無害なコードのように見えました:
そこには SQL 呼び出しがないので、SQL インジェクションを恐れませんでした。しかし、明らかに、インジェクションの種類は SQL だけではありません。
この Web サイトには、コード インジェクションを回避するための説明といくつかの例があります。
このコードをコード インジェクションからどのように保護しますか?
security - コマンド ライン インジェクション攻撃の防止
現在、多数の外部ツールを実行するアプリケーションを構築しています。多くの場合、ユーザーがシステムに入力した情報をこれらのツールに渡す必要があります。
明らかに、これはセキュリティ上の大きな悪夢が待っています。
残念ながら、IDbCommand オブジェクトがデータベースに対して行うのと同じ種類のインジェクション攻撃に対する保護を提供しながら、コマンド ライン プログラムを実行する .NET Framework のクラスはまだ見つかっていません。
現在、非常に原始的な文字列置換を使用していますが、これはかなり不十分であると思われます。
コマンドライン インジェクション攻撃を防ぐために皆さんは何をしていますか? 非常に厳密で、文字のごく一部のサブセットのみを許可する正規表現を実装する予定ですが、もっと良い方法があるかどうか疑問に思っていました。
いくつかの説明:
- これらのツールの一部には、プログラミングできる API がありません。もしそうなら、私たちはこの問題を抱えていないでしょう.
- ユーザーは実行するツールを選択するのではなく、選択したツールが使用するメタデータを入力します (たとえば、著作権表示などのメタデータをターゲット ファイルに挿入します)。
hook - Windows でユーザー空間からシステムコールをフックする
ライブラリ ( NetHooker )の一部としてネットワーク トラフィックをリダイレクトするように connect() にパッチを適用していますが、これはうまく機能しますが、ws2_32.dll が同じままであることに依存し、syscall が直接使用されている場合は機能しません。だから私が疑問に思っているのは、ドライバーなしでシステムコール自体をキャッチする方法があるかどうかです。これが可能かどうか知っている人はいますか?
c# - C# からリモート アプリ ドメインにスレッドを挿入できますか
別のプロセスで実行されているリモート アプリ ドメインにスレッドを挿入できるかどうか疑問に思っていました。
私の推測では、デバッグ インターフェイス (ICorDebug) を使用してこれを行うことができますが、他の方法があるかどうか疑問に思っていました。
php - xpath属性のクリーニング/サニタイズ
属性値がユーザーによって提供される要素属性の XPath クエリを動的に構築する必要があります。SQL インジェクション攻撃に相当する XPath を防ぐために、この値をクリーニングまたはサニタイズする方法がわかりません。例 (PHP の場合):
特に最後の攻撃は、昔の SQL インジェクション攻撃を思い起こさせます。
さて、一重引用符を含む属性と二重引用符を含む属性があるという事実を知っています。これらは関数への引数として提供されるため、これらの入力をサニタイズする理想的な方法は何でしょうか?
code-injection - コードインジェクションは悪いですか?
SIMBLやAirfoil/Instant Hijackなど、コード インジェクションを使用するかなり強力なツールがいくつかあります。
私が理解している限り、これらのツールは他のプログラムに独自のコードを挿入します。この考えは、完全に安定したソフトウェアを脆弱で「バグのある」ものにする可能性があるため、私には危険に思えます。また、これはセキュリティ上のリスクをもたらすようです。
安定性やセキュリティ上の理由から、これらのツールを避けるべきですか?
macos - バイナリに機能を注入する最良の方法
バイナリ アプリケーション (サード パーティ、クローズド ソース) に機能を挿入する最良の方法は何でしょうか。
ターゲット アプリケーションは OSX 上にあり、gcc 3+ を使用してコンパイルされているようです。バイナリに実装されている関数のリストを確認でき、リモートで呼び出したい特定の関数をデバッグして分離しました。
zoomByFactor(x,y)
具体的には、複雑な HIDevice から特定のデータを受信したときに、この関数を呼び出したいと思います (void と呼びましょう)。
バイナリ ファイル自体を簡単に変更したり、命令を挿入したりできます (つまり、パッチ適用は RAM だけで行う必要はありません)。
これを「うまく」行う方法として何をお勧めしますか?
編集:
私は確かにアプリケーション全体を必要としています。だから私はそれを捨ててライブラリを使うことはできません。(倫理的な説明が必要な人のために: これは、2006 年以来、会社の Web サイトが更新されていないプロプライエタリな CAD ソフトウェアです。データの移行が簡単にできない. この製品はこのままでも十分に私には合っているが、最近入手した新しい HID を使用したい. アプリケーションの内部を調べたので、かなりの自信があります.関連するデータを使用して正しい関数を呼び出して、適切に機能させることができます)。
これが私がこれまでに行ったことです。
このプロセスを通じて、アプリケーションの一部を既に変更しています。
バイナリはほぼ 100 メガバイトの大きさであるため、この種のフープをジャンプしています。
私が考えていることの要点は、メイン アプリケーション ループのどこかで jmp を実行し、スレッドを起動して、メイン関数に戻るということです。
さて、質問は次のとおりです。新しいコードをどこに挿入できますか? シンボル テーブルを変更する必要がありますか? または、dylib を自動的にロードして、通常ロードされている dylib への呼び出しをメイン関数に挿入するだけの「ハッキング」を行うにはどうすればよいですか?
linux - Linux でのユーザー空間からの sycall のフック
Linux ですべてのシステムコールをキャッチする方法はありますか? 私が知っている唯一の解決策は、 LD_PRELOAD à la fakerootを使用することですが、それは動的にリンクされたアプリケーションに対してのみ機能します。さらに、このアプローチでは、すべてのシステムコールを列挙する必要がありますが、これは避けたいことです。
vbscript - ASP / VBScriptでの挿入を防ぐ方法は?
入力処理のためのASP(VBScript)の最良の方法(または少なくとも最も一般的な方法)は何ですか?私の主な関心事は、HTML/JavaScriptインジェクションとSQLインジェクションです。htmlspecialchars
PHPなどに相当するものはありaddslashes
ますか?または、文字列置換関数などを使用して手動で行う必要がありますか?