上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: cxxjackie - 

[逆向分析实战]三句话,让腾讯文档为我放下戒备

[复制链接]
  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2021-10-7 15:23:27 | 显示全部楼层

    [quote][size=2][color=#999999]cxxjackie 发表于 2021-10-7 15:16[/color][/size]
    console.log(document)就可以触发,我debugger跟了一下油猴的代码,他在读取document的时候会执行一些自 ...[/quote]
    我刚才就是用这种方式测试的
    并没有复现
    邪门....

    图片.png

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复
    订阅

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2021-10-7 15:46:35 | 显示全部楼层
    李恒道 发表于 2021-10-7 15:23
    [md]
    我刚才就是用这种方式测试的
    并没有复现

    @grant  unsafeWindow
    大概弄清这个问题了,腾讯文档这个页面本身会对addEventListener进行劫持,用了一种事件委托的机制,将所有事件都委托给public-common这个文件中的一个函数来处理,而油猴在沙盒环境中会在读取document时特殊处理,也劫持addEventListener并将unsafeWindow替换为window,这无意中破坏了原有的事件委托,结果把真实的事件给暴露出来了。。。这还真是,有趣的特性。这篇文章有点不太好改了,姑且将错就错吧哈哈。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2021-10-7 16:10:40 | 显示全部楼层
    cxxjackie 发表于 2021-10-7 15:46
    @grant  unsafeWindow
    大概弄清这个问题了,腾讯文档这个页面本身会对addEventListener进行劫持,用了一 ...

    加了沙盒模式之后复现成功了
    劫持addEventListener并将unsafeWindow替换为window
    这句话是什么意思
    我理解的是
    油猴在读取document的时候还原了页面的addEventListener函数是么?
    好神奇啊...
    我还是第一次碰到这种情况
    哥哥也一手FBI Warning
    哈哈哈哈哈哈

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2021-10-7 16:21:42 | 显示全部楼层
    cxxjackie 发表于 2021-10-7 15:46
    @grant  unsafeWindow
    大概弄清这个问题了,腾讯文档这个页面本身会对addEventListener进行劫持,用了一 ...

    不知道tm是怎么处理的,ScriptCat的沙盒会记录最开始的addEventListener(也就是还没被腾讯文档劫持时候的addEventListener),然后如果你在沙盒中使用addEventListener,就是最原始的addEventListener。
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2021-10-7 16:27:09 | 显示全部楼层
    李恒道 发表于 2021-10-7 16:10
    加了沙盒模式之后复现成功了
    劫持addEventListener并将unsafeWindow替换为window
    这句话是什么意思

    就是他保存了window(油猴自己的)和unsafeWindow(页面原有的)的引用,然后将事件中本应指向unsafeWindow的改为指向window,起到一个保护效果,这个逻辑在页面加载后执行没有问题,但是document-start过早执行就造成了这种奇怪现象。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2021-10-7 16:35:43 | 显示全部楼层
    王一之 发表于 2021-10-7 16:21
    不知道tm是怎么处理的,ScriptCat的沙盒会记录最开始的addEventListener(也就是还没被腾讯文档劫持时候 ...

    脚本猫试了一下,没有复现,tm这些稀奇古怪的操作真是神奇。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2021-10-7 16:39:32 | 显示全部楼层
    cxxjackie 发表于 2021-10-7 16:27
    就是他保存了window(油猴自己的)和unsafeWindow(页面原有的)的引用,然后将事件中本应指向unsafeWind ...

    还是不太理解这种操作。
    想不通为什么要这样做
    等以后有机会再看看吧...
    感觉像是一个有用的bug?
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2021-10-7 16:46:40 | 显示全部楼层
    李恒道 发表于 2021-10-7 16:39
    还是不太理解这种操作。
    想不通为什么要这样做
    等以后有机会再看看吧...

    我也不太理解,他的代码混淆严重我读的很费劲。这也不能算有用吧,只是在特定情况下打开了潘多拉的魔盒,但是在其他情况下也可能造成错误,还是尽量不要在document-start、document-body这些阶段读取document比较好。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5959

    回帖

    6758

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6758

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2021-10-7 16:54:11 | 显示全部楼层
    cxxjackie 发表于 2021-10-7 16:46
    我也不太理解,他的代码混淆严重我读的很费劲。这也不能算有用吧,只是在特定情况下打开了潘多拉的魔盒, ...

    哥哥要不反馈tampermonkey作者玩玩
    太硬了
    两节课不到干出来个tampermonkey隐藏特性
    哈哈哈
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2021-10-7 17:00:41 | 显示全部楼层
    李恒道 发表于 2021-10-7 16:54
    哥哥要不反馈tampermonkey作者玩玩
    太硬了
    两节课不到干出来个tampermonkey隐藏特性

    我没有github账号啊,刚好搜到这个issue:
    https://github.com/Tampermonkey/tampermonkey/issues/290
    我甚至怀疑他是为了解决问题制造出了更多问题哈哈哈。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表