现在很多网站都上了各种前端反爬手段,无论手段如何,最重要的是要把包含反爬手段的前端javascript代码加密隐藏起来,然后在运行时实时解密动态执行。
动态执行js代码无非两种方法,即eval和Function。那么,不管网站加密代码写的多牛,我们只要将这两个方法hook住,即可获取到解密后的可执行js代码。
注意,有些网站会检测eval和Function这两个方法是否原生,因此需要一些小花招来忽悠过去
export const createScript = (result,type,pos) =>{
var positions = pos? document.getElementsByTagName('head')[0] :document.getElementsByTagName('body')[0]
var script = document.createElement('script')
script.type = 'text/javascript'
if (type === 'url') {
script.src = result
} else {
script.innerHTML = result
}
positions.appendChild(script)
}
let scriptCode = `
function fns(){
alert("原生js动态注入脚本内容")
}
fns()
createScript(scriptCode)
JavaScript注入就是在浏览器地址栏中输入一段js代码,用来改变页面js变量、页面标签的内容。使用Javascript注入,用户不需要关闭或保存网页就可以改变其内容,这是在浏览器的地址栏上完成的。命令的语法如下:
javascript:alert(#command#)