我试图运行jint下面的代码:Jint + JSfuck - “指数数组的边界之外”
Jint.Engine engine = new Jint.Engine();
var result = engine.SetValue("data", data).Execute("(/\\n(.+)/.exec(eval(data.replace(/\\s+/, \"\").slice(0, -2)))[1]);").GetCompletionValue();
其中,转义时,正在执行以下的javascript:
(/\n(.+)/.exec(eval(data.replace(/\s+/, "").slice(0, -2)))[1]);
的data
变量相当于一个字符串JSfuck,与此类似:https://pastebin.com/vmGAebW5
的问题是,我总是一个人指数是一个超出界限rray'异常,即使JavaScript在浏览器中运行也能正常工作。任何想法是什么导致这个问题?
去混淆版本是否工作? – Ryan
我强烈建议你改变你的字符串声明,使其具有@ infront,特别是对于这种大小的转义字符。它使你的字符串不可读...例如:'.Execute(@“your-escaped-string-here”);' – Svek
@Ryan我无法访问去混淆版本,但我认为它必须如下工具可以反混淆它:https://enkhee-osiris.github.io/Decoder-JSFuck/ – user2950509