瑞数6补环境的总结1
大家好呀,我是你们的好兄弟【星云牛马
】,今天给大家带来的是瑞数6的补环境的总结,补环境肯定是需要一些基础补环境知识的,所以建议没有基础的小伙伴可以加入学习群进行学习,有基础的伙伴加入交流起来。
QQ
群:714283180
1.过debugger
要知道,debugger
的形式还是很多的,不能一味照抄代码,要随机应变,
1.1通过hook
Function.prototype.constructor
判断是否有debugger
字样返回空方法
即可
let origin = Function.prototype.constructor
Function.prototype.constructor = function(p){if (p.indexOf('debugger')!==-1){return function(){}}else{return orgin.apply(this,arguments)}
}
1.2通过hook
``eval也是一样,判断是否有
debugger字样返回
""`即可,具体要仔细分析,谨慎处理,防止误伤有用代码。
let oreval = eval
eval = function(code){if (code.indexOf('debugger')!==-1){return ""}return oreval.apply(this,arguments)
}
2.补环境
对于新手而言,网上补环境的源码还是很多的,白嫖一份基础的补环境的源码来,在基础上自己进行加工创造,总比从0开始的好呀。
其实补环境总结起来就是树状补充,我们用常见的dom
的createElement
函数来说:
createElement:function(arg){console.log('createElement 函数被调用了,参数列表:',arguments)if(arg === "a"){let my_a = {}return my_Proxy(my_a,"my_a")}if(arg === 'div'){return my_Proxy({},"my_a")}if(arg === "form"){return {}}},
你得实现链式的代理,补充上去的对象都是有可能继续进行更深层级的属性的检测的,比如上面的补充了元素的创建,那么创建后返回的my_a对象有可能继续被检测,所以需要给my_a也挂上代理看看是否有进一步的检测。
通过这种策略是吧,不断不断的补充,只要你不嫌麻烦,每一个都挂上代理,你就会发现,你补充的环境比谁都多,但有可能还不一定好用,哈哈,真实的例子,因为你补充的很多,层级很深,执行到的检测的代码更多,需要保证都有正确性,不然就会发现补得多但不一定有效。
瑞数这边的补环境总结我建议看这位跃迁
前辈的文章: https://blog.cthousand.cn/2023/09/17/%E5%8D%8A%E8%87%AA%E5%8A%A8%E8%A1%A5%E7%91%9E%E6%95%B04%E7%8E%AF%E5%A2%83%E5%85%A8%E6%B5%81%E7%A8%8B/
他的总结很到位了,基本上你都补了的话,是属于相对比较全的能过瑞数的环境了。
2.1瑞数后缀问题
后缀的话上面这篇文章已经说了,就是检测下a标签的创建后href
和hostname
、protocol
的吸附性,建议研究上面的文章。
另外就是直接不传或者使用明文,有的get请求是没有参数的所以效果上和直接不传后缀一样。
.结果测试
ems:
专利检索:
太平洋:
更多资讯加入我们的交流群:
QQ
群:714283180