cxxjackie 发表于 2021-8-31 20:21:18

李恒道 发表于 2021-8-31 17:32
他这个写法感觉好奇特有没有

是指我的描述奇特还是代码奇特?代码的话可能是因为我加了反劫持,所以读起来有点别扭。

李恒道 发表于 2021-9-1 15:45:16

cxxjackie 发表于 2021-8-31 20:21
是指我的描述奇特还是代码奇特?代码的话可能是因为我加了反劫持,所以读起来有点别扭。 ...

写法,反劫持还能这么玩
话说哥哥碰到过这种劫持的页面么
真这么搞也太骚了吧

cxxjackie 发表于 2021-9-1 19:35:34

李恒道 发表于 2021-9-1 15:45
写法,反劫持还能这么玩
话说哥哥碰到过这种劫持的页面么
真这么搞也太骚了吧


一般是对象上的某个方法被改了,比如把toString方法改掉,这会影响我判断类型,有些不是有意的,只是不小心重名了而已。把整个对象都改掉的也有,我就碰到过不止一个把Map给改了的网站,他自己不用Map,然后自定义了一个地图类,就把Map给弄没了。

steven026 发表于 2022-7-12 16:56:24

本帖最后由 steven026 于 2022-7-12 16:57 编辑

![模糊查找.png](data/attachment/forum/202207/12/165547k7pwp7sap4w4z677.png)
```
    const FUZZY_SEARCH_FUNCTION_NAME = '$fuzzySearchKey';
    unsafeWindow=key=>{
      let Keys=new _Array()
      for(let i in globalProps){
            let arr=globalProps.filter(item=>item.toLowerCase().includes(key.toLowerCase()))
            if(arr.length>0){
                Keys.push(...arr)
            }
      }
      let goal=new _Array()
      Keys.forEach((item)=>{goal.push(allKeys.get(item))})
      _console.dir(goal || [])
    }
    _console.log(`${FUZZY_SEARCH_FUNCTION_NAME}函数已注入!`);
```
GGNB,这个脚本在逆向的时候很好用。
另外我加了个模糊查找的功能,感觉这样更方便一点

cxxjackie 发表于 2022-7-12 20:43:06

steven026 发表于 2022-7-12 16:56
![模糊查找.png](data/attachment/forum/202207/12/165547k7pwp7sap4w4z677.png)
```
    const FUZZY_ ...
感觉写的有点问题,globalProps是全局属性,所有属性应该在allKeys里,可以用这种方式遍历属性名:
for (const item of allKeys.keys()) {
    if (item.toLowerCase().includes(key.toLowerCase()) {
      Keys.push(item);
    })
}
然后模糊查找可以给$searchKey加第二个参数,这样就不用额外注入一个函数。
这个脚本太久没更新了,当时写的时候代码也乱糟糟的,以后可能会重构一下。

steven026 发表于 2022-7-12 20:52:22

cxxjackie 发表于 2022-7-12 20:43
感觉写的有点问题,globalProps是全局属性,所有属性应该在allKeys里,可以用这种方式遍历属性名:

然后 ...

大致读了一遍代码果然还是不如原作者逻辑更清晰 {:4_108:}

steven026 发表于 2022-7-18 20:24:54


GG发现一个bug
测试网址https://gltyx.github.io/omsi-loops/,加载完直接运行脚本就会报错

cxxjackie 发表于 2022-7-18 22:12:05

steven026 发表于 2022-7-18 20:24
GG发现一个bug
测试网址https://gltyx.github.io/omsi-loops/,加载完直接运行脚本就会报错 ...

我看了一下,他用了很多Proxy,还把一些对象的正常属性给删掉了,导致那些原本能作用于对象上的方法各种出错,好像还会不小心进死循环。。。暂时修复了这个问题,解决方法就是避开这些特殊对象,可能不是很完美,有时间我再细究一下。

steven026 发表于 2022-7-20 22:26:16

通过枚举window的方法只能获取到挂载在window下的全局变量,
但是无法获取全局下通过const、let的全局变量,百度查下了全局下通过const、let的变量有作用域,虽然也是全局变量但是是挂载在global下的。
目前我只找到通过DevTools输入变量名自动联想到,
想问问哥哥这种const、let声明的全局变量能通过js遍历到吗?

cxxjackie 发表于 2022-7-20 23:06:13

steven026 发表于 2022-7-20 22:26
通过枚举window的方法只能获取到挂载在window下的全局变量,
但是无法获取全局下通过const、let的全局变量 ...

是的,这个问题我也考虑过,但目前没想到什么好办法,const/let的变量应该不是挂载在global上(浏览器中global即window),而是在块级上,全局const/let就相当于一个巨大的块级作用域,js似乎没有提供针对块级作用域的遍历方法。
页: 1 [2] 3 4
查看完整版本: 辅助脚本:查看全局属性