首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    动态执行脚本

    提到动态执行脚本,大家想到的肯定是 eval 或 new Function(),在 nodejs 中有专属的 vm 模块,可以完成相应的 sandbox 作用。...浏览器中动态执行脚本 eval() 函数会将传入的字符串当做 JavaScript 代码进行执行,返回字符串中代码的返回值;如果参数不是字符串将原封不动返回。...= 4; console.log(new Function('return x + y')()); // 直接调用,使用全局作用域,throws ReferenceError } Nodejs 动态执行脚本...vm可以使用v8的Virtual Machine contexts动态地编译和执行代码,而代码的执行上下文是与当前进程隔离的,但是这里的隔离并不是绝对的安全,不完全等同浏览器的沙箱环境。...使用场景 动态执行字符串代码。vue ssr 中是通过 runInNewContext 实现的( Vue SSR 指南)。

    4.3K31

    如何动态执行 JS 脚本

    场景在实际的业务开发中,我们可能需要将一段字符串代码动态执行,我们看一个例子: // 如何将字符串 code 当成 js 代码执行 function exec(code) {}...:先输出 2,再输出 sync特点:同步执行,其作用域为当前执行作用域setTimeoutsetTimeout 的第一个参数,可以是一个函数,也可以是一个代码串,那么我们就可以利用其特点来实现动态 js...:先输出 sync,再输出 1特点:异步执行,其作用域为全局作用域动态 script 标签动态script标签 方法就是我们创建一个 script 标签元素对象,将其插入到当前 Dom 里 const...:先输出 1,再输出 sync特点:同步执行,其作用域为全局作用域new Function所有函数方法的原型对象是 Function ,我们可以通过 new Function() 示例来生成一个方法,再执行就可动态执行...方法 同步/异步作用域eval同步 当前执行作用域setTimeout异步 全局作用域动态 script 标签同步 全局作用域new Function同步 全局作用域

    41210

    从受限的代码执行到任意代码执行

    受限的代码执行 如下,一处刺眼的 eval 代码。 ? 这个利用点在信安之路上一篇文章已经有分析到了,所以不做过多流程上的分析,只关注如何 Bypass,完成 RCE。...问题的关键是要绕过 danger_key 的处理,具体的代码如下 比较棘手的是 $type 值写死传入为 1,所以单双引号都会被实体编码,这导致就算我们传入的函数也难以传入一个字符串作为函数参数。...问题二:那控制了输入,那如何把控制的输入获取到并传入我们想要执行的函数里呢? 我已经可以通过上面受限的代码执行来执行一些函数,于是我的思路是寻找一个函数可以返回头部信息,而这个函数的要求是不需要参数。...但我忽略的一个点,get 被替换成 * 所以会导致执行不成功。 ? 这个好解决手册的下一句就是 此函数是 apache_request_headers() 的别名。...到此,我们可以控制输入,同时绕过了过滤,并且把输入作为参数带入到想要执行的函数里。我选了 array_filter 函数来执行任意代码。 最后的效果就是如下: ?

    1.4K20

    《一切皆是映射:代码的本质》Java 动态读取源代码,并编译 & 加载执行

    动态的执行一段简单代码,采用生成java文件,调用javac编译,反射执行的方式。 使用输入输出流(或者你说的可能是要用反射得到程序结果来解析)解析做出*.Java文件。...下面是demo,使用Main类中的compile方法编译一个Person.java源文件后,再加载字节码进行执行。 1、准备待编译的java源代码。...message: "+msg); } } package inf; public interface Action { public void say(String msg); } 2、编写执行的代码...,该代码用来编译PersonAction.java,编译成功后并加载字节码到JRE中进行执行 package demo; import inf.Action; import java.io...Desktop/test/"; //待编译的类名称,不包含.java String classname = "PersonAction"; //执行代码的路径

    1.7K30

    android 代码执行

    android代码执行 Android API level 16以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用WebView.addJavascriptInterface方法,...该漏洞最早公布于CVE-2012-6636【1】,其描述了WebView中addJavascriptInterface API导致的远程代码执行安全漏洞。...同时,在2014年发现在Android系统中webkit中默认内置的一个searchBoxJavaBridge_ 接口同时存在远程代码执行漏洞,该漏洞公布于CVE-2014-1939[7], 建议开发者通过以下方式移除该...AccessibilityInjector.java中,分别是”accessibility” 和”accessibilityTraversal” ,调用了此组件的应用在开启辅助功能选项中第三方服务的安卓系统中会造成远程代码执行漏洞...该漏洞公布于CVE-2014-7224, 此漏洞原理与searchBoxJavaBridge_接口远程代码执行相似,均为未移除不安全的默认接口,建议开发者通过以下方式移除该JavaScript接口: removeJavascriptInterface

    96320

    Groovy&Java动态编译执行

    Groovy&Java动态编译执行 工作中,遇到部分业务经常动态变化,或者在不发布系统的前提下,对业务规则进行调整。...那么可以将这部分业务逻辑改写成Groovy脚本来执行,那么就可以在业务运行过程中动态更改业务规则,达到快速响应。...Case1: Groovy动态编译执行 闲话少说,直接上代码: static Compilable engine; //获取groovy编译类 static { ScriptEngineManager...Case2: Java动态编译执行 以上执行方式已经在生产环境得到验证,但最近压测发现,不管使用Case1中的哪种方法执行的QPS都没有直接使用Java代码的执行效率高。...那么是否可以将Java代码动态编译。结果当然是suer,在JDK6及以上中已经支持了java代码动态编译(JavaCompiler) Java的动态编译对源提供了多个渠道。

    3.5K20

    Hangfire Redis 实现秒级定时任务、使用 CQRS 实现动态执行代码

    { } /// /// 要被定时任务执行的代码. /// public class MyTestHandler : IRequestHandler...%% 同时建立必要的连接 AA -- 添加定时任务 --> B DD -- 请求 --> E 由于项目中使用的是 MediatR 框架实现 CQRS 模式,因此很容易实现定时任务动态调用代码...recurringJobManager.RemoveIfExists(value.TaskId); return new TaskResponse { }; } } 业务服务实现动态代码...数据和一些定时任务参数,通过 http 发送到 HangfireServer 中; 定义 ExecuteTaskHandler ,当接口被触发时,实现反序列化参数并使用 MediatR 发送 Command,实现动态执行...cancel", new CancelTaskRequest { TaskId = taskId }); } } 第二步 要实现通过 Type 动态执行某个

    82800

    Hangfire Redis 实现秒级定时任务、使用 CQRS 实现动态执行代码

    ExecteTasResult> { } /// /// 要被定时任务执行的代码. /// publicclassMyTestHandler:IRequestHandler...:执行 CommandDemoApi:execute 接口 由于项目中使用的是 MediatR 框架实现 CQRS 模式,因此很容易实现定时任务动态调用代码,只需要按照平时的 CQRS 发送定时任务命令...; _recurringJobManager.RemoveIfExists(value.TaskId); returnnewTaskResponse { }; } } 业务服务实现动态代码...数据和一些定时任务参数,通过 http 发送到 HangfireServer 中; • 定义 ExecuteTaskHandler ,当接口被触发时,实现反序列化参数并使用 MediatR 发送 Command,实现动态执行...http://127.0.0.1:5001/hangfire/cancel",newCancelTaskRequest { TaskId= taskId }); } } 第二步 要实现通过 Type 动态执行某个

    74010

    命令执行与代码执行漏洞原理

    漏洞危害 继承Web服务程序的权限去执行系统命令或读写文件 反弹shell 控制整个网站甚至控制服务器 进一步内网渗透 代码执行与命令执行的区别 命令执行漏洞: 直接调用操作系统命令(相当于在cmd下敲命令...代码执行漏洞: 应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。...很难通过黑盒查找漏洞,大部分都是根据源代码判断代码执行漏洞。 ?...代码执行相关函数: PHP: eval、assert、preg_replace()、+/e模式(PHP版本<5.5.0) 漏洞分类 **1.代码层过滤不严 商业应用的一些核心代码封装在二进制文件中,在...成功执行命令 TP的漏洞还有很多大家可以去试试 修复方案 1.尽量少用执行命令的函数或者直接禁用 2.参数值尽量使用引号包括 3.在使用动态函数之前,确保使用的函数是指定的函数之一 4.在进入执行命令的函数

    3K30

    RCE远程代码执行

    RCE远程代码执行 一、漏洞介绍 概述 RCE(remote command/code execute)RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。...远程系统命令执行 一般出现这种漏洞,是因为应用系统从设计上需要给用户提供指定的远程命令操作的接口 比如我们常见的路由器、防火墙、入侵检测等设备的web管理界面上 一般会给用户提供一个ping操作的web...在这种平台上往往会出现远程系统命令执行的漏洞,不信的话现在就可以找你们运维部的系统测试一下,会有意想不到的"收获"-_- 远程代码执行 同样的道理,因为需求设计,后台有时候也会把用户的输入作为代码的一部分进行执行...,也就造成了远程代码执行漏洞。...不管是使用了代码执行的函数,还是使用了不安全的反序列化等等。 因此,如果需要给前端用户提供操作类的API接口,一定需要对接口输入的内容进行严格的判断,比如实施严格的白名单策略会是一个比较好的方法。

    1.4K10

    Python代码执行模型

    python代码执行过程 在python程序运行时,python首先会编译生成“字节码”,之后将字节码发送到所谓的“虚拟机”上执行。 字节码是一种低级的,与平台无关的表现形式。...字节码可以提高执行速度,比起最初的源代码文件,字节码的运行效率高得多。...python代码的执行过程应该是: 源代码-->字节码-->PVM 值得一提的是,python解释器和其他传统解释器不同,它包含了内部编译步骤。python并不需要反复重新解析源代码。...Jython将Python源代码编译成Java字节码,并将字节码发送到Java虚拟机(JVM)上执行。所以python代码在运行时就像真正的Java程序一样。...即时编译器是指在运行代码的时候进行动态编译,而不是运行前编译好。JIT实际上是PVM的一个扩展,它将字节码中的部分直接编译为机器指令。

    1.3K50

    JavaScript——代码的执行

    动态执行代码(Eval Code) 即使用eval()函数动态执行的JavaScript代码。 不同类型的代码其执行机制也有所不同。...而由eval()函数动态执行的代码运行在调用者的执行上下文之中,不会产生新的执行上下文。 与作用域的关系 执行上下文与作用域很容易被混淆成同一个东西,事实上两者的概念是完全不同的。...以函数为例,函数的执行上下文是完全与函数代码运行相关联的动态存在,相关代码运行结束了,与之相关联的执行上下文也就被释放了,而作用域更多的是一个静态的概念,如闭包作用域就与代码是否正在执行没有关系。...执行上下文与作用域的关联是:执行上下文会为执行中的代码维护一个作用域链,里面包含了代码可以访问的各个名字对象,当代码中出现访问某个标识符(变量名,函数名等),JavaScript引擎会根据这个作用域链顺序进行查找...扫描代码中的变量声明,将该变量对象放入变量对象,这个阶段变量的赋值语句并不执行,所以所有变量的值都是undefined 创建变量对象 初始化作用域链 判断this对象 执行代码 在当前上下文上解释执行代码

    1.6K20
    领券