なんでこうなるの?
■ このスレッドは過去ログ倉庫に格納されています
0001ボブ
NGNG{
int uid = 0;
if( setuid(uid) == 0 && setgid(uid) ){
execl("/bin/bash"@`"bash"@`NULL);
exit(1);
else
printf("ぐはは\n");
}これをコンパイルしてsecret_bashと言う名前の実行可能ファイルを作りました。
suidを立てて一般ユーザーnaotoで実行すると次のようになりました
[naoto@ naoto]$ ls -l secret_bash
-rwsr-xr-x 1 root root 36751 Jan 13 17:15 secret_bash*
[naoto@ naoto]$ ./secret_bash
[root@ naoto]# whoami
root
今度はソースのuid = 0 を uid = 500 (naotoのUID)に変え、naotoでコンパイルしました。
出来上がったsecret_bashをユーザーhogeで実行してみました。
[hoge@ hoge]$ ls -l secret_bash
-rwsr-xr-x 1 naoto naoto 36767 Jan 13 17:25 secret_bash*
[hoge@ hoge]$ ./secret_bash
[hoge@ hoge]$ whoami
hoge
hogeがnaoto権限でbashを動かすことを期待していたのですが、うまくいきません。
どうしてなんでしょうか?
暇な人教えてください。
■ このスレッドは過去ログ倉庫に格納されています