2016-10-09 4 views
0

Iはvulnerable.cという名前のファイルに次のコードを持っているに呼び出す:は(システムを悪用)C

-rwxr-SR-X 1:ここ

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 

int main() { 
    gid_t egid = getegid(); 
    setregid(egid, egid); 
    system("echo testing"); 

    return 0; 
} 

脆弱実行の権限でありますtest cool 8192 Sep 28 2016脆弱

私のホームディレクトリに "echotest"という名前の新しいディレクトリを作成し、echo.cファイルを入れてコンパイルしました。 echo.cファイルは単に "Exploited !!"を表示します。 $ HOME/echotestを含むようにPATH環境変数を変更しました。

今、私は脆弱性を実行すると、 "Exploited!"しかし、そうではありません。私はここで何が欠けていますか?

私は「cat」と同様のテストを行いましたが、効果はありましたがエコーはうまくいきませんでした。 ご協力いただければ幸いです。

おかげ

答えて

1

問題はechoは、多くの場合、シェルの組み込みであるということです。あなたはそれが攻撃可能になりたい場合は、これに脆弱なコードを変更することができます

int main() { 
    gid_t egid = getegid(); 
    setregid(egid, egid); 
    system("env echo testing"); 

    return 0; 
} 

をこの詳細については、以下を参照してくださいHow do I prevent bash to use a builtin command?

+0

感謝を!これは役立ちます! – ssd20072

関連する問題