攻防世界——monkey


这是一种很新的monkey……

本来不打算写这题的博客的,也不知道要这么写 但还是想记录一下,毕竟是新题型,不知道常不常见……
checksec一下:

发现没什么异常,估计是栈溢出。
但是拖进IDA查看时,人麻了,IDA解析了半天给出了长长的函数块,main函数里更别说了……
又是在做一种很新的题目,分析不了怎么办……只能求助带佬了

javascript解释器

带佬说这是个javascript解释器(js解释器),这题就相当于一个终端,可以直接输入命令,获取回应,如果直接输入system(“/bin/sh”)就会直接执行获取shell。
这里带入网上的解释:
JavaScript解释器又名js引擎。

JavaScript是解释型语言,这就是说它无需编译,直接由JavaScript引擎直接执行。

既然说到了解释型语言,那么我们就来分别以下解释型语言和编译型语言的差别:

编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件(即exe文件),运行时不需要重新编译,直接用编译后的文件(exe文件)就行了。
优点:执行效率高
缺点:跨平台性差
解释型语言:程序不需要编译,程序在运行的过程中才用解释器编译成机器语言,边编译边执行(没有exe文件)。
优点:跨平台性好
缺点:执行效率低
其中程序无需编译,不是说真的不需要编译了,直接执行脚本字符串。而是说不需要在运行之前先编译程序成为exe文件,而是在运行的过程中边运行边执行。

os.system(“/bin/sh”)


直接输入system(“/bin/sh”)会发现不会有任何回应,看带佬们用了os.system,这里我就不说了去网上查查吧(我也不清楚,本人太菜了)
所以连最终连exp都不用写直接操作就行:

结束


文章作者: 矢坕
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 矢坕 !
  目录