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

来玩一个confirm的小题目

[复制链接]
  • TA的每日心情
    慵懒
    2023-3-28 14:26
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    9

    主题

    30

    回帖

    42

    积分

    初级工程师

    积分
    42
    发表于 2023-3-21 15:07:22 | 显示全部楼层 | 阅读模式
    悬赏10油猫币已解决

    仔细研究了confirm,发现了一些有趣的防伪机制
    各路大神看看有没有办法在劫持confrim的情况下,通关以下题目

    https://blog.xhome.pro/

    弹出 You are jailbroke

    实际情况中,有可能confrim弹窗是由websocket推送,消息是动态,而且你没法定位到confirm代码,这种情况加入以上防伪机制,应该怎么突破

    最佳答案

    查看完整内容

    核心就是阻塞300ms,可以for循环(或者劫持confirm和Date.now?)
  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    294

    主题

    3906

    回帖

    3826

    积分

    管理员

    积分
    3826

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

    发表于 2023-3-21 15:07:23 | 显示全部楼层
    核心就是阻塞300ms,可以for循环(或者劫持confirm和Date.now?)
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    637

    主题

    5196

    回帖

    6078

    积分

    管理员

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

    积分
    6078

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

    发表于 2023-3-21 16:06:44 | 显示全部楼层
    来个想法
    但是懒得写demo了
    可以写个同步xhr和服务器地址
    告诉服务器地址最低多少时间反给我来做死延迟
    ----------------

    想了一下
    这样还是没法判断什么内容该同意什么内容不该同意

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-3-28 14:26
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    9

    主题

    30

    回帖

    42

    积分

    初级工程师

    积分
    42
    发表于 2023-3-21 16:47:02 | 显示全部楼层
    李恒道 发表于 2023-3-21 16:06
    来个想法
    但是懒得写demo了
    可以写个同步xhr和服务器地址

    如果劫持方法 window.confirm = () => {}  则会默认返回 undefined,会被confirm当做 false来处理了。
    你说得同步是什么做到的?node宿主环境还可以用同步方法,浏览器端咋用xhr做到同步的?  
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-3-28 14:26
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    9

    主题

    30

    回帖

    42

    积分

    初级工程师

    积分
    42
    发表于 2023-3-21 17:04:24 | 显示全部楼层
    王一之 发表于 2023-3-21 16:39
    核心就是阻塞300ms,可以for循环(或者劫持confirm和Date.now?)

    对,核心就是怎么能实现阻塞主线程300ms,settimeout这些都是异步的,如果是其他语言可以轻易使用sleep这些来阻塞,可js是全异步,采用死循环来不停的判断当前时间戳,while() 是可以做到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    637

    主题

    5196

    回帖

    6078

    积分

    管理员

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

    积分
    6078

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

    发表于 2023-3-21 17:11:17 | 显示全部楼层
    cabin 发表于 2023-3-21 16:47
    如果劫持方法 window.confirm = () => {}  则会默认返回 undefined,会被confirm当做 false来处理了。
    你 ...

    XMLHttpRequest 规范提到 同步 XMLHttpRequest 已经计划从 Web 平台删除,开发者禁止将 new XMLHttpRequest().open(method, url [, async = true [, username = null [, password = null]]]) 方法中 async 参数赋值为 false 使用。
    好像gg了...
    方法被删了= =

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

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

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-3-28 14:26
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    9

    主题

    30

    回帖

    42

    积分

    初级工程师

    积分
    42
    发表于 2023-3-21 17:14:19 | 显示全部楼层
    1. // ==UserScript==
    2. // [url=home.php?mod=space&uid=23356]@name[/url]         New Userscript
    3. // @namespace    http://tampermonkey.net/
    4. // @version      0.1
    5. // @description  try to take over the world!
    6. // @author       You
    7. // [url=home.php?mod=space&uid=52134]@match[/url]        https://blog.xhome.pro/
    8. // @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
    9. // @run-at       document-start
    10. // @grant        none
    11. // ==/UserScript==

    12. (function() {
    13.     'use strict';
    14.      let hookConfirm = window.confirm
    15.      window.confirm = (msg) => {
    16.          if(msg == 'can you take over it') {
    17.              let t1 = Date.now()
    18.              let t2 = Date.now()
    19.              while(t2 - t1 <= 300) {
    20.                 t2 = Date.now()
    21.              }
    22.              return true
    23.          } else {
    24.              return hookConfirm.apply(this, arguments);
    25.          }
    26.      }
    27.     // Your code here...
    28. })();
    复制代码


    大致是这么通关的,论坛大佬是真牛皮啊
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-3-28 14:26
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    9

    主题

    30

    回帖

    42

    积分

    初级工程师

    积分
    42
    发表于 2023-3-21 17:15:33 | 显示全部楼层
    王一之 发表于 2023-3-21 15:07
    核心就是阻塞300ms,可以for循环(或者劫持confirm和Date.now?)

    论坛大佬是真牛皮啊
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-3-28 14:26
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    9

    主题

    30

    回帖

    42

    积分

    初级工程师

    积分
    42
    发表于 2023-3-21 17:17:25 | 显示全部楼层
    李恒道 发表于 2023-3-21 17:11
    XMLHttpRequest 规范提到 同步 XMLHttpRequest 已经计划从 Web 平台删除,开发者禁止将 new XMLHttpRequ ...

    王一之大佬已经搞定,代码贴出来了
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-13 10:14
  • 签到天数: 211 天

    [LV.7]常住居民III

    294

    主题

    3906

    回帖

    3826

    积分

    管理员

    积分
    3826

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

    发表于 2023-3-21 17:24:41 | 显示全部楼层
    cabin 发表于 2023-3-21 17:14
    大致是这么通关的,论坛大佬是真牛皮啊

    不知道有没有其他更优雅的方法
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

    发表回复

    本版积分规则

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