問題タブ [exploit]
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.
windows - コマンドプロンプトに相当するBash'printf'?
Windowsのコマンドプロンプトで、文字列入力を小さなCプログラムにパイプすることを検討しています。bashで使用できます
基本的に、コマンドプロンプトでこれらの16進数をエスケープするための何かが必要です。
printf
コマンドプロンプト/PowerShellに同等または同様のコマンドはありますか?
ありがとう
c - スタックベースのバッファオーバーフロー攻撃で変更された戻りアドレスはどのように概算されますか?
典型的なスタック ベースのバッファ オーバーフロー攻撃のペイロードが次のようなものであることを理解しています。
(リターンアドレス) (リターンアドレス) ... (リターンアドレス) (リターンアドレス) (リターンアドレス) (リターンアドレス) (NOP) (NOP) (NOP) (NOP) ... (NOP) (NOP) (NOP) ) (NOP) (シェルコード)
また、シェルコードの実行が成功するかどうかは、次のいくつかの要因に依存することも理解しています。
- ペイロードの繰り返しリターン アドレス部分は、そのスタック フレームのリターン ポインターを上書きする必要があります。
- そのリターン アドレスは、NOP スライドの一部 (またはシェルコードの先頭) のアドレスでなければなりません。
私が理解していないのは、この手法を使用するマルウェアが常にこれら 2 つのことを正しく行う方法です。有効なペイロードを作成するために、攻撃者はターゲット バッファのおおよそのアドレスと、リターン アドレスからのおおよその距離を知る必要があるように思えます。
これら2つは通常かなり決定論的ですか?たとえば、攻撃者が自分のマシンで動作するまで試行錯誤を繰り返した場合、その同じペイロードが、まったく同じバイナリを使用する他のすべてのマシンで動作するでしょうか?
c - Cコードコードでリターンアドレスを変更する方法は?
以下のCコードを書きました:
printf("\nx is 1\n");という行をスキップする方法を教えてください。. 以前に得た手がかりは、関数funcの戻りアドレスであるret変数を変更することでした。
printf("\nx is 1\n"); となるように、上記のプログラムのリターン アドレスを変更する方法を教えてください。スキップされます。
差出人住所の変更方法がわからないため、この質問を投稿しました。
あなたが私を助けてくれれば、それは素晴らしいことです。
ありがとう
security - カナリアは、libc へのリターンおよびリターン指向のプログラミング攻撃を防ぎますか?
カナリアが使用されている場合、return-into-libc および return-oriented プログラミングのエクスプロイトが可能かどうか/どのように可能かを理解しようとしています。
カナリアは、戻り値とオーバーフローするバッファの間のスタックに配置され、戻り値をライブラリ関数または計算の場所に変更するために上書きする必要があります。Canaries は 1997 年から存在しており (StackGuard)、ROP は 2007 年に初めて導入された手法です (Shacham)。
カナリアはこの種の攻撃を不可能にしますか?
exploit - リターン指向プログラミング コンパイラ
低レベルで自分のコンピューターをよりよく理解しようとしていますが、スタック バッファー オーバーフロー エクスプロイトを作成する以外に、より良い方法はありますか? 私は最近ROPに出会いました。http://cseweb.ucsd.edu/~hovav/talks/blackhat08.htmlという論文を読んだところ、ROB コード用のコンパイラがあると書かれていました。そのような Linux (64 ビット) 用のコンパイラの名前は何ですか?
ありがとう、コンスタンチン
security - ルートとして実行されるバッファ オーバーフロー (またはその他の) エクスプロイトのペイロードとしてのシェルコード?
ここで提供されている*ようなシェルコードを脆弱なプログラムへのペイロードとして使用する場合、シェルはルートとしてどのように実行されますか? 特権がルートに昇格する方法について質問していますか? setuid
シェルコードは、ユーザーを変更するための呼び出しや何かをしていないようです。
* http://www.tenouk.com/Bufferoverflowc/Bufferoverflow5.html
c - このプログラムは何をしているのですか?
それらは何ですか?それはプログラムにどのようmemcpy
に影響していますか?memset
execve
proc
bss2 の更新コード
アップデート
問題は、環境変数がどこにあるかに帰結するようです。
python - Python でのエクスプロイト - 16 進文字列の操作
私はPythonを初めて使用し、スタックオーバーフロー用に作成した単純なエクスプロイト(nopスレッド、シェルコード、およびリターンアドレスのみ)を移植しようとしています。これは悪意のある目的ではなく、大学でのセキュリティ講義用です。
16 進文字列 (デッドビーフ) が与えられた場合、次の最善の方法は何ですか?
- 一連のバイトとして表現する
- 値を加算または減算する
- 順序を逆にする (x86 メモリ レイアウト、つまり efbeadde の場合)
Python でのエクスプロイト作成における一般的なタスクに関するヒントやコツも大歓迎です。
c - バッファ オーバーフロー - 一部の ascii が動作し、他の ascii が動作しない理由
この質問がばかげているか、尋ねられている場合は申し訳ありませんが、見つけることができませんでした。
バッファ オーバー フローを使用しようとしていたプログラムがあります。getchar() を使用してユーザーからの入力を取得する単純なプログラムです。バッファーのサイズは 12 に設定されています。12 個を超える x を入力するか、12 個を超える \x78 を使用すると、プログラムをクラッシュさせることができますが、何百もの A または \x41 を入力しても、セグ フォールトは発生しません。
助けや正しい方向への指摘は大歓迎です。
perl - Perl CGI がハッキングされた? しかし、私はすべてを正しくやっています
Web ディレクトリの 1 つに奇妙な PHP ファイルがあることに気付きました。これらは、スパマーが配置したエクスプロイト ファイルであることが判明しました。
彼らは 2006 年以来、私が私の CGI スクリプトを使用して有名な寄付キャンペーンを行っていた頃からそこにいます。そして、ファイルはスクリプトの書き込み可能なディレクトリに置かれたので、私のスクリプトがなんらかの形で悪用されたのではないかと疑っています。
しかし、私はPerlの「汚染チェック」、厳密などを使用しており、クエリデータをシェルに渡すことは決してありません(シェルを呼び出すことはありません!)またはクエリデータを使用してOPENのファイルパスを生成します...スクリプトで直接指定した OPEN ファイル。クエリ データを書き込みファイルにファイル コンテンツとして渡しますが、私が知る限り、それは危険ではありません。
私はこれらのスクリプトをじっと見つめましたが、何も見えず、すべての標準的な Perl CGI の穴を調べました。もちろん、彼らはどうにかして私のホスティング アカウントのパスワードを入手できた可能性がありますが、これらのスクリプトが私の CGI スクリプトのデータ ディレクトリに配置されているという事実から、私はそのスクリプトを疑います。(また、彼らが私のパスワードを「何らかの方法で」取得するというのは、もっと恐ろしい説明です。) また、その頃、私のログには、「警告、PayPal 以外のアドレスから IPN を受信しました」というメッセージが多数表示され、それらの IP はロシアからのものです。したがって、少なくとも誰かがこれらのスクリプトをハッキングしようとしていたようです。
2 つのスクリプトが関係しているので、下に貼り付けます。予期しないファイルを書き込むために悪用される可能性のあるものを見た人はいますか?
最初のスクリプトは次のとおりです (PayPal IPN を受け取り、寄付を追跡し、どのサイトが最も多くの寄付を行っているかを追跡します):
そして、ここにはいくらかの冗長性があります (申し訳ありませんが...完全ですか?) が、ここに 2 番目のスクリプトがあります (人々が自分のサイトに追加できる Web サイトの HTML ボタンを生成するため):