API HOOK技术,在PC时代曾盛行,是高端的技术。在JavaScript编程中,也可以应用API Hook技术实现不寻常的效果。
David Flanagan最近写了一个关于全局eval的简单表达式,可以用一行式子表示: var geval = this.execScript || eval; 尽管看起来很简短,但是跨浏览器的兼容性并不好。仔细考虑了下这个话题,我觉得还有一些方法来实现代码的全局执行。而且有些方法--间接eval--并不为人所熟知,而且它们的内涵也不容易让人们所接受,本文主要介绍下该技术。 为了可以更清晰的讲解间接eval,我打算先回顾”全局eval“的方法,并回顾它们是如果起作用的,我也
JavaScript Object Notation(JavaScript对象标记)简称JSON。(数据交换格式) JSON主要作用是:一种标准的数据交换格式。 JSON以JS对象的形式存在!!
aHR0cHM6Ly93d3cubWFuZ2Fiei5jb20vbTE4MDk3MC8=
在严格模式下,eval有自己的词法环境。因此,在eval内部声明的函数和变量在外部不可见:
eval 内的代码在当前词法环境(lexical environment)中执行,因此它能访问外部变量:
参考链接:https://www.cnblogs.com/xiaoweigege/p/14954648.html#evalfunction
Cookie Hook 用于定位 Cookie 中关键参数生成位置,以下代码演示了当 Cookie 中匹配到了 v 关键字, 则插入断点
由于设计原因,前端的js代码是可以在浏览器访问到的,那么因为需要让代码不被分析和复制从而导致更多安全问题,所以我们要对js代码进行混淆。
大部分网站都会对关键参数进行加密,JS 逆向时,我们首要任务是定位参数具体的加密逻辑。
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
4.global对象 1)eval 例 4.1.1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> </head> <BODY> <SCRIPT LANGUAGE="JavaScript"> </SCRIPT> </BODY> </HTML>
对象(Object)是没有原型的,只有构造函数拥有原型,而构造类的实例对象能够通过prototype属性访问原型对象。 prototype表示类的原型,就是构造类拥有的原始成员。构造函数的prototype属性存储着一个引用对象指针,该指针指向一个原型对象。
1)eval 例 4.1.1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> </head> <BODY> <SCRIPT LANGUAGE="JavaScript"> </SCRIPT> </BODY> </HTML> 例 4.1.2 <HTML> <HEAD> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <TITLE>在eclipse中直接open with火狐即可</TITLE> </HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> </SCRIPT> </BODY> </HTML>
如何一对花括号中的语句代码集都属于一个块,在这之中定义的所有变量在代码块外是不可见的,称为块级作用域。作用域控制着变量和参数的可见性与生命周期。
学习了js和jquery,编写了一个计算器app。主要思路是将按键事件对应字符串存储,利用eval()方法进行执行,需要注意的时执行前要将x替换为*,÷替换为/。另外调整了一些CSS样式,模仿iPhone计算器的界面,源代码看嵌入的网页。
Hook 中文译为钩子,Hook 实际上是 Windows 中提供的一种用以替换 DOS 下“中断”的系统机制,Hook 的概念在 Windows 桌面软件开发很常见,特别是各种事件触发的机制,在对特定的系统事件进行 Hook 后,一旦发生已 Hook 事件,对该事件进行 Hook 的程序就会收到系统的通知,这时程序就能在第一时间对该事件做出响应。在程序中将其理解为“劫持”可能会更好理解,我们可以通过 Hook 技术来劫持某个对象,把某个对象的程序拉出来替换成我们自己改写的代码片段,修改参数或替换返回值,从而控制它与其他对象的交互。
以前在博文中提到过,在 webview 中使用 jQuery 等框架,很影响网页加载速度,所以我都是使用纯 Javascript 来写页面脚本。在开发 webview 程序过程中,经常用到了一些东西,总结一下:
| 导语 在过去,浏览器沙箱(sandbox)主要应用在前端安全领域,随着应用架构复杂,微前端方案的出现,js运行环境沙箱在浏览器中的需求越来越多。特别是近几年比较火的微前端领域,js沙箱是其比较核心一个技术点,是整个微前端方案的实现的关键点之一。 微前端对于沙箱的诉求 沙箱在微前端架构中不是必须要做的事情,因为如果规范做的足够好,是能够避免掉一些变量冲突读写,CSS 样式冲突的情况。但是如果你在一个足够大的体系中,仅仅通过规范来保证应用的可靠性面临较大的风险,还是需要技术手段去治理运行时的一些冲突问题
纪念下偷偷登上萌新榜第一的比赛,也实现了比赛前的愿望,0ctf争取不0分,rsctf争取高名次,:>
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站前言 – 床长人工智能教程正在上传…重新上传取消https://www.cbedai.net/gkbskc
调试网站: aHR0cDovL3d3dy5mYW5nZGkuY29tLmNuL25ld19ob3VzZS9uZXdfaG91c2VfZGV0YWlsLmh0bWw/cHJvamVjdF9pZD1iODdjYjNkMDRmODc4Y2E2 瑞数的整体代码(4代为例) 1、直接请求得到的js 有index.html界面上的 script 2、meta content(计算eval的js) 3、scripts[0] 中的 **.dfe1675.js 是 iso-8859-1编码的 4、scripts[1] 是通过自执行得到js 字符串,通过eval进行执行得到cookie的过程 5.1 整体的代码结构是 初始的大数组 5.2 定义一些函数,这些函数将会被eval内部的js进行调用 5.3 控制流代码,进行判断环境检测,并得到eval的字符串 偷偷告诉eval js代码在 ret=**.call(**, **)得到 5、scripts[3] 在eval的js有调用
作用域想必大家都知道,就是变量生效的范围,比如函数就会生成一个作用域,声明的变量只在函数内生效。
本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
英文:mknichel 译文:Jocs https://github.com/Jocs/jocs.github.io/issues/1
任何由ECMAScript提供、与宿主环境无关,并在ECMAScript执行时就存在的对象。我们前面提到的String、Object、Array、Number、Boolean这些都是内置对象。
周末花了一整天的打国赛技能赛的线上赛,去年比赛没能进入线下,当时就是因为感觉选手之间py太严重,今年没想到又遇到了这样的问题,所幸的是,今年运气比较好,做出来的题目比较多,所以py没有太过影响到我们。
VS Code能够正确支持JS/TS跳转到定义、补全提示等功能,但仅限于符合Node Module Resolution以及TypeScript Module Resolution规则的模块引用,如:
“瑞数” 是逆向路上的一座大山,是许多JS逆向者绕不开的一堵围墙,也是跳槽简历上的一个亮点,我们必须得在下次跳槽前攻克它!! 好在现在网上有很多讲解瑞数相关的文章,贴心的一步一步教我们去分析瑞数流程,分析如何去扣瑞数逻辑,企图以此教会我们 (手动狗头)。却鲜有文章详细去讲解如何通过纯补环境的方式过瑞数。今天,它来了!
目标网站:aHR0cHM6Ly93d3cuYXFpc3R1ZHkuY24vaGlzdG9yeWRhdGEvZGF5ZGF0YS5waHA/Y2l0eT0lRTYlOUQlQUQlRTUlQjclOUUmbW9udGg9MjAyMTA5
import-html-entry 是 qiankun 中一个举足轻重的依赖,用于获取子应用的 HTML 和 JS,同时对 HTML 和 JS 进行了各自的处理,以便于子应用在父应用中加载。
同步模式:又称阻塞模式,会阻止浏览器的后续处理,停止后续的解析,只有当当前加载完成,才能进行下一步操作。所以默认同步执行才是安全的。 但这样如果js中有输出document内容、修改dom、重定向等行为,就会造成页面堵塞。所以一般建议把<script>标签放在<body>结尾处,这样尽可能减少页面阻塞。
在一些应用中,我们希望给用户提供插入自定义逻辑的能力,比如 Microsoft 的 Office 中的 VBA,比如一些游戏中的 lua 脚本,FireFox 的「油猴脚本」,能够让用户发在可控的范围和权限内发挥想象做一些好玩、有用的事情,扩展了能力,满足用户的个性化需求。
以上只能回调没有参数的(除法你事先知道回调的函数的参数),如果函数有未知的函数,就不能如此简单的调用了。
在js跨域双向数据传递时可以用iframe加上location.hash来实现,在研究这个的时候深入学习了一下hash的特性。 hash就是uri中#及后面的部分,例如:www.google.com.hk#123的#123。当只有hash部分发生变化时,浏览器的历史记录会产生记录,但不会向服务器发出请求,这时按后退键地址栏的uri会变化但页面内容不变。 而hash变化但不发出请求就是js跨域双向数据传递的基础啦。 下面就讲述一下hash结合ajax的使用,ajax每次取数据时页面更新后浏览器并
首先是外部脚本和行内脚本,对于异步加载的脚本,会导致竞争状态,使得出现未定义的错。
Q:a标签target="_blank"的安全问题及解决办法 答:A标签的target属性规定在何处如何打开链接文档常用的有_self & _blank,如果在一个 A 标签内包含一个 target 属性,浏览器将会载入和显示用这个标签的 href 属性命名的、名称与这个目标吻合的框架或者窗口中的文档,如果这个指定名称或 id 的框架或者窗口不存在,浏览器将打开一个新的窗口,给这个窗口一个指定的标记,然后超链接文档就可以指向这个新的窗口。您可以把target=”_blank”理解为新的浏览器窗口打开此超链接;
网上对eval 的争论也非常激烈,大部分不建议使用,一些人观点是用不好才导致问题。
本文作者:ivweb villainthr 市面上现在流行两种沙箱模式,一种是使用iframe,还有一种是直接在页面上使用new Function + eval进行执行。 殊途同归,主要还是防止一些H
我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第1篇文章,点击查看活动详情
前段时间获取到黑产的一些代码,不得不感叹黑产的代码实在在写的是好得很,思路巧妙,环环相扣。不得不说,技术不好,黑产都做不了了。虽然分析了好多天,但是也只是一知半解。这里抽出一小部分来讲一下。二话不说,先上代码:
前言 本文只针对比较流行的跳转型暗链作为研究对象,其他类型的暗链暂时不做讨论。只对bypass进行讨论,不涉及检测工具的编写。本着不知功焉知防的思想,从绕过XSS过滤的角度对暗链检测提出一些新的idea。 跳转型暗链的一般模式 暗链模式一:见人说人话 如今很多的被植入暗链的网站都有一个奇怪的现象,就是通过地址直接访问不会跳转到非法网站,但是通过搜索引擎搜索关键字才会跳转到非法网站。 这种一般是通过JS的document.refere字段来实现的: HTTP Header referer这玩意主要是告诉人们
其中this.exponent是RSA加密偏移量 ,数值一般在HTML文件里面,全局搜索,其value值就是
JSON.parse与eval和能将一个字符串解析成一个JSON对象,但还是有挺大区别。
看以下两条命令: [zhangsan@XEN /sys]$ a="ls";b="\$a";c="$b";"$c" Hey! No command '$a' found, did you mean
HTML <!DOCTYPE html> <html style="height: 100%;"> <head> <title>model_load</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
领取专属 10元无门槛券
手把手带您无忧上云