問題タブ [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.
c++ - バッファ オーバーフローとは何ですか? また、どのように発生させるのですか?
バッファ オーバーフローについて聞いたことがありますが、その原因を知りたいです。
誰かが小さなバッファ オーバーフローの例を見せてもらえますか? 新しい(そして、それらは何に使用されますか?)
c - バッファ オーバーフローを呼び出すにはどうすればよいですか?
バッファオーバーフローを使用して、関数を明示的に呼び出さずに呼び出すように求める宿題を受け取りました。コードは基本的に次のとおりです。
どのように進めればよいかわかりませんが。プログラムカウンタのリターンアドレスをg()のアドレスに直行するように変更しようと思ったのですが、アクセス方法がわかりません。とにかく、ヒントは素晴らしいでしょう。
c - Macos10.6で単純なバッファオーバーフローを実行する
スタックベースのオーバーフローについて学び、スタックを利用するための簡単なコードを書こうとしています。しかし、どういうわけかそれはまったく機能しませんが、私のマシン(mac os leopard)にAbortトラップのみが表示されます
Mac osはオーバーフローの扱いが違うと思いますが、cコードでメモリを上書きすることはできません。例えば、
Linuxマシンでは、このコードは次のスタックを正常に上書きしますが、mac osでは防止されます(トラップの中止)
Macマシンで単純なスタックベースオーバーフローを実行する方法を知っている人はいますか?
c - sprintf関数のバッファオーバーフロー?
何が起こるか?
バッファーには 8 文字分のスペースがあり、空き文字は 3 文字しか残っていませんが、「XXXXXXXX」は 8 文字です。
Windows 7 上の Visual Studio 2008 でテストを行いました。その結果、プログラムは AAAAXXXXXXX を出力し、実行時エラーが発生しました。
c - Snow Leopard でバッファ オーバーフローを作成する
大学のコンピュータ セキュリティのコースの一環として、バッファ オーバーフローと、それをエクスプロイトとして使用する方法について学ぶ予定です。次のコードで単純なバッファ オーバーフローを実行しようとしています。
実行すると、 buffer_one の内容を null ターミネータで上書きできます
しかし、引数として 16 文字を超える文字を送信すると、プログラムは Abort トラップを送信します。これは、Snow Leopard での何らかのバッファ保護だと思います (ASLR かな?)。buffer_two のサイズを 16 未満にすると、アドレスはまだ 16 ビット離れています。
gcc -o overflow overflow.c -fno-stack-protector
スタック保護を削除するために実行しています
Linux ディストリビューションを実行している VM をインストールする以外に、この問題の解決策はありますか?
c++ - __sprintf_chk() を使用して無効にする
このsprintfsprintf
が暗黙的に呼び出す__sprintf_chk()
. これ__sprintf_chk()
は、スタック フレームを調べてバッファ オーバーフローをチェックしているようです。
私の研究目的のために、使用を無効にすることは可能__sprintf_chk()
でしょうか?
c - memcpyバッファオーバーフローを防ぐ方法は?
プログラムには、データを格納するために使用される固定サイズのバイナリバッファがいくつかあり、memcpyはバッファをあるバッファから別のバッファにコピーするために使用されます。ソースバッファがデスティネーションバッファよりも大きい可能性があるため、バッファオーバーフローがあるかどうかをどのように検出できますか?
c++ - Mac OS X Lion で OpenMP を使用するとコンパイルが失敗する (memcpy および SSE 組み込み関数)
私は次の問題に出くわしました。以下のコード スニペットは、私が試した Xcode (4.4、4.5) と Mac OS X でリンクしません。
コードは例として提供されているだけで、実行すると segfault が発生します。ポイントは、コンパイルしないことです。コンパイルは次の行を使用して行われます
フラグ toを使用しない場合、コードは問題なくコンパイルされます。今、私はぐるぐる回って、 、または引数リストに を追加することに関連する最初の問題の解決策を見つけました。2 番目の問題 (sse 固有) を解決できませんでした。-fopenmp
gcc
memcpy
-fno-builtin
-D_FORTIFY_SOURCE=0
gcc
誰でもこれを解決するのを手伝ってもらえますか? 質問:
- 最も重要なこと: "___builtin_ia32_shufpd" エラーを取り除くには?
memcpy
問題の正確な理由は何-D_FORTIFY_SOURCE=0
ですか?フラグは最終的に何をしますか?
c - フォーマット文字列攻撃
悪用される小さな C プログラムがあります。また、実行される攻撃の背後にあるロジックも理解しました。しかし、私が試している限り、それは私にとってはうまくいきません。
書式文字列 "printf(user_input);" を使用して、secret[0] のアドレスと値を出力するだけです。
「\x6e\xaf\xff\xff%x%x%x%x%s」のようなものを与えてみました。しかし、それは機能していません。任意の提案をいただければ幸いです。どうもありがとう。
c - homeowrkとしてのバッファオーバーフロー
まだセキュリティクラスのためにこのバッファオーバーフローのことを学んでいますが、私はこのアプリケーションの脆弱性を悪用しようとしています:
このエクスプロイトアプリケーションの使用:
何らかの理由で、エクスプロイトを実行してbadfileを作成しても、何もプッシュされません。バッファが空であるか、正しく書き込まれていません。私は自分のエラーを見つけることができないようで、たゆまずグーグル検索した後、私は十分な答えを見つけることができませんでした。私が使用したFillBufferCodeの理解から、これはlong_stringを私のバッファーのアドレスで埋め、次にシェルコードをlong_stringの先頭(NOOPスライドのビットの後)に置き、long_stringをバッファーにコピーして戻す必要があります。これやfwriteに問題はありません。提案?