問題タブ [fortify-source]

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.

0 投票する
2 に答える
9365 参照

ld - libc(GLIBC_2.13)をだまして、(GLIBC_2.15から)持っていないシンボルをロードすることはできますか?

「SteamforLinux」をDebianで動作させようとして、問題が発生しました。libcef(Chromium Embedded Framework)はGLIBC_2.13(Debianテストのeglibcが提供できる)で正常に動作しますが、GLIBC_2.15(eglibcが提供できない)から1つの厄介な小さな追加関数が必要です。

ここでの私の攻撃計画は、LD_PRELOADこれらの機能だけを提供するシムライブラリへの攻撃でした。これはうまくいかないようです。私は本当にインストールを避けたいと思ってGLIBC_2.17います(Debian実験的であるため、Debian sidでさえまだ持っていますGLIBC_2.13)。


これは私が試したことです。

fdelt_chk.c基本的にGNUCライブラリから盗まれます:

私のVersionsスクリプトは次のようになります。

次に、次のようにライブラリを構築します。

ただし、Steamを実行すると(そもそも動作させるために余分なものがたくさんあります)、ローダーはまだシンボルを見つけることを拒否します:

ただし、バージョンシンボルは、作成した.soばかりのIによっても提供されます。

この時点で、ローダー(誰?)をだましてシンボルを選択させるために何ができるかわかりません。私は正しい方向に進んでいますか?

0 投票する
1 に答える
4636 参照

c - バッファオーバーフロー-通常のユーザーのSegFaults

以下は私のコードで、脆弱なプログラム(stack.c)とエクスプロイト(exploit.c)の両方です。このコードは、教授がWindowsユーザーに送信したパッケージ済みのUbuntu 9で機能します(友人に彼のコンピューターでテストしてもらいました)が、iMacで実行しているUbuntu 12では、これを実行しようとするとsegfaultsが発生します通常のユーザーで。

ここにスタックがあります:

と悪用:

これらをUbuntu12内でコンパイルするために、私は以下を使用しました。

繰り返しになりますが、通常のユーザーではなく、rootユーザーで機能します。 例

とにかく、これは深夜に予定されており、私はこの制限で残りの割り当てをやり遂げましたが、誰かが提案を持っている場合は、むしろ適切に完了したいと思います。タオルを投げる前に専門家を呼ぶと思った。このコードが通常のユーザーでは機能しないのに(古いバージョンのubuntuでは機能するはずです)、rootユーザーでは機能する理由を調べています。通常のユーザーでもこれを機能させるには、何を変更する必要がありますか。

0 投票する
2 に答える
15914 参照

c - バッファ オーバーフローの脆弱性 ラボの問題

行き詰まっているラボの割り当てがあります。基本的に、root 権限を持つシェルを生成するには、バッファ オーバーフローを利用する必要があります。2 つの個別の .c ファイルを使用する必要があります。これが最初のものです:stack.c

これが2番目のものです:exploit.c

私は2番目のものしか変更できません。ここに私が行った変更があります:

次に、コマンドラインから次を実行しました

ただし、実際のデータとシェルを含む「不良ファイル」を生成しますが、シェルには基本的なユーザー権限しかありません。事前に、ルートで次を実行しました。

ラボによると、代わりにルートで次を実行する必要があります。

しかし、そうすると、「スタック」を実行すると、「不正な命令」エラーが発生します。誰かがこれで私を助けることができますか?

0 投票する
7 に答える
49348 参照

c - バッファ オーバーフローは gdb で機能しますが、gdb なしでは機能しません

私は CentOS 6.4 32 ビットを使用しており、プログラムでバッファ オーバーフローを引き起こそうとしています。GDB内では機能します。出力は次のとおりです。

ただし、プログラムスタックを単独で実行すると、セグメント障害が発生します。これはなぜでしょうか?

0 投票する
4 に答える
14828 参照

c - GCCスタックバッファオーバーフローを検出する方法

-fstack-protector-stronggcc にはスタック破壊を検出するオプションがあるためです。ただし、常にスタック バッファ オーバーフローを検出できるとは限りません。最初の関数 func では、さらに 10 文字の文字列を入力すると、プログラムが常にクラッシュするわけではありません。私の質問は、スタック バッファ オーバーフローを検出する方法がある場所です。

0 投票する
2 に答える
21923 参照

c - fgets でバッファ オーバーフローを引き起こす

バッファ オーバーフローを実験しており、fgets の特定の入力でスタックのリターン アドレスを上書きしようとしています。

これはコードです:

通常の実行では、プログラムは入力を返すだけです。コードを変更せずに foo() を出力したい。

buf私のアイデアは、 20秒を入力してのバッファをオーバーフローさせることでした'A'。これは機能し、セグメンテーション違反を引き起こします。私の次のアイデアは、のアドレスを見つけて、foo()これ\x4006cdを 20 に追加すること'A'でした。

私の理解では、これはスタックの戻りアドレスを上書きし、にジャンプするはずfooです。しかし、それはセグメンテーション違反を引き起こすだけです。

私は何を間違っていますか?

更新: アセンブラーは main をダンプします

ふー

バー:

0 投票する
1 に答える
283 参照

c - スタックに書き込めません (スタックオーバーフロー)

私はいくつかのセキュリティ関連の実験を行っており、特に ret2ret エクスプロイトを理解しようとしていました。私が実験していたコード:

テスト中、ASLR、N^X、およびスタック カナリアはオフでした。そして、gccで32ビットにコンパイルしました。なぜだかわかりませんが、$eip を上書きしたといういつもの "0x41414141 in ?? ()" を取得できませんでした。そこで、gdb を使用してデバッグし、関数「cop」の ret にブレークポイントを設定することにしました。不思議なことに、300 個を超える「A」を書き込んだ後でも、スタックは次のようになりました。

バッファに対応する 64 文字はここにありますが、残りは書き込まれませんでした..理由はわかりません。何らかのアップデートによるものですか?

編集: バフの GDB ログ [64]

編集 2: バフの GDB ログ [20]

0 投票する
2 に答える
2775 参照

c - Android 4.4、__printf_chk への未定義の参照

一部のライブラリを Android 4.3 から Android 4.4 に移動しています

Android 4.3 でコンパイルするために使用されたプロジェクトは、Android 4.4 ソースを使用してコンパイルすると、以下のエラーが発生するようになりました。

/home/vishallocal/TI/android/kitkat/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/sysroot/usr/include/bits/stdio2.h:105: エラー: 未定義の参照'__printf_chk' /home/vishallocal/TI/android/kitkat/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/sysroot/usr/include/bits/stdio2.h:105: エラー: 「__printf_chk」への未定義の参照 /home/vishallocal/TI/android/kitkat/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/sysroot/usr/include/bits/stdio2.h:105 : エラー: '__printf_chk' /home/vishallocal/TI/android/kitkat/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/sysroot/usr/include/bits/stdio2 への参照が未定義です。 h:105: エラー: '__printf_chk' への参照が未定義です collect2: エラー: ld が 1 つの終了ステータスを返しました

これを解決するための指針はありますか?