5

教育上の理由から、Cコードを利用する必要があります

プログラムは最初にegidを設定し、次にsystem("/usr/bin/...");コマンドの脆弱​​性を設定します。

そこで、ホームディレクトリで「usr」を実行可能にし、ホームへのパスを設定しましたPATH=$HOME:$PATH

そして、bashのIFS変数を/に変更したいと思います。export IFS='/'

残念ながら、Cプログラムを呼び出すと、エクスプロイトが機能しません。

誰かが私に何が悪いのか教えてもらえますか?

4

2 に答える 2

4

プログラムのへの呼び出しの一部としてIFSを追加しますsystem()。システムは。を使用してコードを実行します/usr/bin/sh -c。したがって、シェルプロンプトで行うのと同じように行うことができます。

system("export IFS='/'; /usr/bin/cmd");

子プロセスが終了すると、IFSセットは親で使用できなくなることに注意してください。

于 2012-10-13T14:25:22.020 に答える
3

私は現在同じ問題に直面しているので、私たちは同じ大学で勉強していると思います。簡単すぎるので、解決策全体を提供したくありません=)

IFS変数は無視されませんが、思ったとおりには機能しません。C-Programmを呼び出すと、シェルに追加の出力があります。これは、lesspipeを参照します。このリンク とこのドイツ語のリンクの情報を使用すると、課題を解決することができます1;)

于 2012-10-14T18:55:36.647 に答える