-1

AFAIK、バッファオーバーフローは、C変数のバッファに隣接するメモリを上書きすることによって実現されます。この上書きは、コマンドを実行するシェルを生成するために使用されます。

しかし、バッファオーバーフローに対して脆弱なプログラムを実行しているユーザーが、シェルを無効にした場合はどうなるでしょうか。

/ etc / passwd:

user1:x:1000:1000:user 1 、、、、:/ home / user1:/ bin / false

sudo -u user1 / usr / bin / programname

4

2 に答える 2

3

「シェルが無効」は、実際にログインしている場合にのみ重要です。すでに実行中のプログラムを利用している場合は、ログインする必要はありません。

于 2012-12-19T17:05:18.650 に答える
0

エクスプロイトは、ユーザー用に構成されたシェルを使用しません。通常、バイナリコード、シェルコードが含まれます。シェルコードは、機能的にはプリミティブシェルと同等であり、選択した実行可能ファイル(実際のシェルプログラムなど)を起動します。悪用されたプログラムは、このコードを実行するためにだまされます。

ネット上で利用可能な多くの異なるシェルコードがあります。たとえば、バイト'\ 0'を含まないため、C文字列として無傷で渡されるか、印刷可能な文字、有効なUnicode文字列などのみが含まれます。

于 2012-12-19T17:24:10.167 に答える