javascript的功能劫持分析

javascript的功能劫持分析
Javascript函数的劫持是什么

函数劫持,顾名思义,在函数运行前劫持它,并添加我们想要的函数,当函数实际运行时,它不是原来的函数,而是我们添加的函数,这也是我们常用的钩子函数的原理之一。

乍一看,它看起来像一个重写的函数。函数的重写,也可以理解为一种功能劫持,但这种方式太恶心了。作为一个劫机,绑架后效益应遵守职业道德,全面完整的回来,所以我们必须功能本来是在正确的地方打电话回来。

推而广之,其实劫持这个概念我们经常遇到,比如一个网站运营商被劫持,运营商在浏览网站时会弹出广告

实例分析

现在让我们举一个简单的例子,劫持警报()函数并向它添加一点函数。
警告=警告
window.alert = = > {(T)
如果(确认(你))警告(T)
}

警报(帮我…!!!!)
您可以打开开发工具来尝试这个示例,您会发现只有在确认中单击OK才能弹出帮助我…!!!!

然后封装这部分的内容,成为一个常用的函数:
const =劫持(obj,方法,好玩)= > {
让1 = obj {方法}
obj {方法} =乐趣(原版)
}
首先,我们定义了一个劫持函数,它首先保存原始函数,然后执行自定义函数,在自定义函数中调用原始函数。

然后劫持确认()函数:
劫持(窗口,'confirm ',(1)= > {
返回(文本)= {
(请帮我报警!!!!!)
如果(orig.call(今文字)){
提醒(你看起来不错,我要离开,OD再见!)
{人}
警报(保持在!我来了!!!!)
}
}
})
这个函数的功能很简单,不详细,你会知道直接通过调用确认()。
反劫持
创建一个新页面,打开开发人员的工具控制台并输入警报,您将看到输出。
函数警报(){本地代码}
然后使用本文开头的代码,劫持警报()并在控制台上再次输入警报,您将看到输出。
函数(t)= {
如果(确认(你))警告(T)
}
通过上面的例子,您可以看到一个函数是否被劫持,直接打印出来。对于系统的本机功能,{本地代码}表示它是纯的、无污染的。

函数劫持
除了增加功能的功能,它也可以使用函数劫持追踪恶意用户的信息。一般来说,XSS攻击首先使用警报()和输出信息的其他方法。在这一点上,我们可以先劫持原始警报(),输入代码跟踪信息,最后释放原始功能。当恶意用户正在测试警报()时,它立即跟着我们,而他自己却不知道。

Javascript劫持和Javascript劫持黑客技术
注:图中的序列号是Javascript黑色技术的实现顺序

它是通过正常登录在信任网站上的漏洞,然后切换到恶意网站(此时还没有发布,那么信任网站)在恶意网站将javascript脚本和信任返回的网站cookie重新发送到可信站点,以获取敏感信息网站的信任。

注意事项:uff1a

1、信任网站(步骤2)返回的内容必须是JSON,如果JSON对象是一个数组,那么Javascript错误就会发生,但是我们可以及时返回到类型检测,如果对象,那么我们可以在对象之前和之后添加括号

2、Javascript劫持和劫持技术体现在以上步骤五中,在执行步骤五中是通过Javascript劫持来覆盖对象中的方法,从而记录敏感信息信任网站的功能,从而实现对Javascript的劫持和劫持。

三.受信任的Web站点必须对GET请求作出响应。

总结

关于JS的功能劫持,这并不是什么新鲜事,但在最近的工作中,它遇到了奇怪的知识。因此,研究和记录结果需要一定的时间!
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部