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

[活动结束][有奖答题]网页点击大挑战!2.0

[复制链接]
回帖奖励 184 油猫币 回复本帖可获得 8 油猫币奖励! 每人限 1 次
  • TA的每日心情
    开心
    昨天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

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

    发表于 2022-10-21 22:04:08 | 显示全部楼层 | 阅读模式

    活动结束

    有兴趣的哥哥依旧可以尝试解题

    • @cxxjackie 奖励2
    • @steven026 奖励1

    上次主要是没想到优雅的解法,于是就没有发布挑战难度这么高的题目,本次可能需要借助扩展的权限去解决,扩展的context页会比页面更快运行,脚本的注入就是在context页完成,但context页无法操作window对象,只能操作document对象。
    对于地址1我也只想到了使用扩展到方法去解,期待大佬们的各种骚操作

    地址1:http://test-case.ggnb.top/is_trusted/is_trusted.html
    地址2:http://test-case.ggnb.top/is_trusted/is_trusted_2.html

    该网页使用了isTrusted验证,如果使用了合适的方法,解出地址2应该就可以解出地址1了

    要求:使用脚本/扩展点击按钮,弹出“真的被点击了”,本次题目目的在于解出isTrusted,还请勿走歪门邪道,歪门邪道不享受奖励

    奖励1:解出地址1的会员,奖励100油猫币,4贡献,以及辣条一箱(限前3人,思路需不同)
    奖励2:解出地址2的会员,奖励50油猫币,2贡献,以及辣条一小箱(限前3人,思路需不同)

    警告:该网页不同于往期的油猴脚本开发教程,难度较大,如果基础不太好不推荐挑战

    一段代码

    只是用于验证执行顺序,图文无关

    // ==UserScript==
    // @name         过掉isTrusted检测
    // @namespace    https://bbs.tampermonkey.net.cn/
    // @version      0.1.0
    // @description  try to take over the world!
    // @match        http://test-case.ggnb.top/is_trusted/is_trusted.html
    // @match        http://test-case.ggnb.top/is_trusted/is_trusted_2.html
    // @author       You
    // @run-at       document-start
    // ==/UserScript==
    
    console.log('userscript');
    

    网页点击大挑战1.0
    https://bbs.tampermonkey.net.cn/thread-1331-1-1.html

    已有1人评分好评 油猫币 理由
    朱焱伟 + 1 + 7 1024,好人一生平安

    查看全部评分 总评分:好评 +1  油猫币 +7 

    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

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

    发表于 2022-10-21 23:48:56 | 显示全部楼层

    回帖奖励 +8 油猫币

    第二个的解法跟上次是一样的吧,劫持addEventListener伪造一个事件进去:
    1. // ==UserScript==
    2. // [url=home.php?mod=space&uid=23356]@name[/url]         过掉isTrusted检测
    3. // @namespace    https://bbs.tampermonkey.net.cn/
    4. // @version      0.1.0
    5. // @description  try to take over the world!
    6. // [url=home.php?mod=space&uid=52134]@match[/url]        http://test-case.ggnb.top/is_trusted/is_trusted.html
    7. // @match        http://test-case.ggnb.top/is_trusted/is_trusted_2.html
    8. // @author       You
    9. // @run-at       document-start
    10. // ==/UserScript==

    11. console.log('userscript');
    12. (function() {
    13.     'use strict';
    14.     function trustEvent(event) {
    15.         return new Proxy(event, {
    16.             get: function(target, property) {
    17.                 if (property === 'isTrusted') {
    18.                     return true;
    19.                 } else {
    20.                     return Reflect.get(target, property);
    21.                 }
    22.             }
    23.         });
    24.     }
    25.     if (location.href.includes('is_trusted_2.html')) {
    26.         const ael = EventTarget.prototype.addEventListener;
    27.         EventTarget.prototype.addEventListener = function() {
    28.             if (this === document && arguments[0] === 'click') {
    29.                 const fn = arguments[1];
    30.                 arguments[1] = function(e) {
    31.                     fn.call(this, trustEvent(e));
    32.                 }
    33.             }
    34.             return ael.apply(this, arguments);
    35.         };
    36.         window.addEventListener('load', e => {
    37.             document.querySelector('#btn').click();
    38.         });
    39.     }
    40. })();
    复制代码

    第一个暂时没想到不依赖扩展的解法,不过资源错误会让脚本更快注入倒是很有意思,我想到油猴有一个GM.webRequest的API,也许可以加以利用人为制造错误。可惜你这个页面不加载别的资源,我猜测正确的解法也是从扩展context注入一个不存在的资源。
    脚本猫目前好像没有实现webRequest,我觉得可以把这个注入资源的特性一起加进去,不止是重定向,这样可以成为一种另类的过isTrusted的手段。
    已有1人评分好评 贡献 理由
    王一之 + 1 + 2 ggnb!预定辣条一小箱!

    查看全部评分 总评分:好评 +1  贡献 +2 

    回复

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

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

    积分
    6760

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

    发表于 2022-10-22 00:12:14 | 显示全部楼层

    回帖奖励 +8 油猫币

    // ==UserScript==
    // @name         New Userscript
    // @namespace    https://bbs.tampermonkey.net.cn/
    // @version      0.1.0
    // @description  try to take over the world!
    // @grant        GM_xmlhttpRequest
    // @match        http://test-case.ggnb.top/*
    // @author       You
    // @noframes
    // ==/UserScript==
    let url = window.location.href
    GM_xmlhttpRequest({
        url: url,
        method: "GET",
        onload: function (xhr) {
            document.querySelector('body').style.margin = 0
            let html = xhr.responseText
            document.querySelector('html').innerHTML = ""
            let frm = document.createElement('iframe')
            document.querySelector('body').append(frm)
            frm.style.width = '100vw'
            frm.style.height = '100vh'
            frm.style.border = 'none'
            frm.src = 'about:blank'
            setTimeout(() => {
                frm.contentWindow.document.querySelector('html').innerHTML = html
                let script_list = frm.contentWindow.document.querySelectorAll('script')
                script_list.forEach((script) => {
                    let src_element = frm.contentWindow.document.createElement('script')
                    if (script.src === '') {
                        src_element.innerHTML = script.innerHTML.replaceAll('e.isTrusted','e.type')
                    } else {
                        src_element.src = script.src
                    }
                    script.parentElement.insertBefore(src_element, script)
                    script.remove()
                })
                setTimeout(()=>frm.contentWindow.document.querySelector('button').click(),1000)
            }, 1000)
    
        }
    });
    
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 05:13
  • 签到天数: 811 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1555

    积分

    荣誉开发者

    积分
    1555

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2022-10-22 00:15:39 | 显示全部楼层

    回帖奖励 +8 油猫币

    本帖最后由 steven026 于 2022-10-22 00:20 编辑

    // ==UserScript==
    // @name         过掉isTrusted检测
    // @namespace    https://bbs.tampermonkey.net.cn/
    // @version      0.1.0
    // @description  try to take over the world!
    // @match        http://test-case.ggnb.top/is_trusted/is_trusted_2.html
    // @author       DreamNya
    // @grant        none
    // @run-at       document-start
    // ==/UserScript==
    window.MouseEvent = window.Object;
    const realAdd = document.addEventListener;
    document.addEventListener = function (type, fuc) {
        if (type == 'click') {
            const realFuc = fuc
            fuc = function (e) {
                realFuc.call(this, { isTrusted: true, target: e.target })
            }
        }
        realAdd.call(this, type, fuc)
    }
    window.onload = () => {
        document.querySelector('#btn').click()
    }

    不知道这样算吗?

    回复

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

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

    积分
    6760

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

    发表于 2022-10-22 00:24:52 | 显示全部楼层
    // ==UserScript==
    // @name         New Userscript
    // @namespace    https://bbs.tampermonkey.net.cn/
    // @version      0.1.0
    // @description  try to take over the world!
    // @match        http://test-case.ggnb.top/*
    // @author       You
    // @run-at       document-start
    // ==/UserScript==
    let dom = document.querySelector('script')
    dom.innerHTML=dom.innerHTML.replace('isTrusted',"type")
    window.onload=()=>document.querySelector('button').click()
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

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

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

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

    积分
    6760

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

    发表于 2022-10-22 01:03:21 | 显示全部楼层
    cxxjackie 发表于 2022-10-21 23:48
    第二个的解法跟上次是一样的吧,劫持addEventListener伪造一个事件进去:

    第一个暂时没想到不依赖扩展的解 ...

    可以利用创建一个空iframe标签然后写innerHtml使script失效,再修改代码重新启动来实现
    但是太邪道了....
    感觉没实际应用场景= =
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

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

    发表于 2022-10-22 09:10:26 | 显示全部楼层
    cxxjackie 发表于 2022-10-21 23:48
    第二个的解法跟上次是一样的吧,劫持addEventListener伪造一个事件进去:

    第一个暂时没想到不依赖扩展的解 ...

    对,第二个解法和上次一样,都是在脚本可以比页面代码更快运行的情况

    第一个也是因为扩展比页面更快执行才有解,哥哥还可以从扩展只能操作document这个方向去解,解出这个也就等于解出了第一个(我也暂时只想到这块)

    从扩展context注入一个不存在的资源,这个我没尝试,但也可能是一种解法,我想到的是另外一种
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

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

    发表于 2022-10-22 09:12:31 | 显示全部楼层
    李恒道 发表于 2022-10-22 00:12
    [md]```javascript
    // ==UserScript==
    // @name         New Userscript

    歪门邪道!不过也不为一种思路
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

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

    发表于 2022-10-22 09:17:35 | 显示全部楼层
    steven026 发表于 2022-10-22 00:15
    [md]```js
    // ==UserScript==
    // @name         过掉isTrusted检测

    算的,突然感觉第二个难度是不是有点低了,而且还和上次重复
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

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

    发表于 2022-10-22 09:22:09 | 显示全部楼层
    李恒道 发表于 2022-10-22 00:24
    [md]```
    // ==UserScript==
    // @name         New Userscript

    哥哥快要接近真相了!
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

    发表回复

    本版积分规则

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