欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]WarGame-narnia7 解题思路

[原创]WarGame-narnia7 解题思路

Narnia7源码如下

/*

    This program is free software; you can redistribute it and/or modify

    it under the terms of the GNU General Public License as published by

    the Free Software Foundation; either version 2 of the License, or

    (at your option) any later version.

    This program is distributed in the hope that it will be useful,

    but WITHOUT ANY WARRANTY; without even the implied warranty of

    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License

    along with this program; if not, write to the Free Software

    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

*/

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <stdlib.h>

#include <unistd.h>

int goodfunction();

int hackedfunction();

int vuln(const char *format){

        char buffer[128];

        int (*ptrf)();

        memset(buffer, 0, sizeof(buffer));

        printf("goodfunction() = %p\n", goodfunction);

        printf("hackedfunction() = %p\n\n", hackedfunction);

        ptrf = goodfunction;

        printf("before : ptrf() = %p (%p)\n", ptrf, &ptrf);

        printf("I guess you want to come to the hackedfunction...\n");

        sleep(2);

        ptrf = goodfunction;

        snprintf(buffer, sizeof buffer, format);

        return ptrf();

}

int main(int argc, char **argv){

        if (argc <= 1){

                fprintf(stderr, "Usage: %s <buffer>\n", argv[0]);

                exit(-1);

        }

        exit(vuln(argv[1]));

}

int goodfunction(){

        printf("Welcome to the goodfunction, but i said the Hackedfunction..\n");

        fflush(stdout);

        return 0;

}

int hackedfunction(){

        printf("Way to go!!!!");

	    fflush(stdout);

        setreuid(geteuid(),geteuid());

        system("/bin/sh");

        return 0;

}

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功