『攻防世界』:进阶区 | monkey
这题的解题最终过程很简单,但是其中的原理我不太清楚,特别是刚拿到题的时候。
题目给的附件解压后里面一个程序及几个库文件。(开始我传文件给我liunx的时候没有传完[20多m的文件]就终止导致运行失败显示段缺失)
这题本来不想折腾wp的,但是最终还是决定要记一下:
checksec:
[*] '/home/zowie/monkey/js' Arch: amd64-64-little RELRO: No RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000)
运行情况:
1 zowie@zowie-PC:~/monkey$ ./js 2 js> ls 3 typein:1:1 ReferenceError: ls is not defined 4 Stack: 5 @typein:1:1 6 js> exit() 7 typein:2:1 ReferenceError: exit is not defined 8 Stack: 9 @typein:2:1 10 js>
我以我0.001年的代码学习经验觉得这是层特殊的shell,但是还是毫无头绪,在ida中分析的东西更是看不懂。去网上看看有没有哪位老湿傅的wp能救我于水火。
看完了,圈一个对我来说重要的考点:1、在python+pwn中使用动态链接库:
p = process([process_name], env={'LD_LIBRARY_PATH':'./'})
还有就是进过大佬的调试发现能够执行js函数,这是我的知识盲区,总的来说就是发送'os.system(\'cat flag\')'就可以得到flag了,是不是感觉很熟悉