V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rossroma
V2EX  ›  分享发现

绕过退税查询前端校验方法

  •  
  •   rossroma · 7 小时 58 分钟前 · 2649 次点击

    接前一篇帖子: https://sunp.eu.org/t/1193867#reply171

    等我查的时候,发现加了校验,查不了 25 年的退税了。不过有细心的 V 友发现,是纯前端的校验,并没有发起后端请求,那么就有方法绕过前端校验。

    步骤如下,略微有些麻烦,建议使用无痕模式,普通模式下我遇到过 Chrome 卡死的问题。


    步骤一:禁用 debugger 反调试

    打开控制台,发现一直弹 debugger,点击继续执行,最后会一直落到下面的代码上。

    右键点击 debugger 这一行代码,选择「将匿名脚本添加至忽略列表」,后面就不会再弹了。

    步骤一截图


    步骤二:查找按钮绑定的事件

    网站的代码添加了反调试保护,无法直接看到按钮绑定的事件,所有的事件都被统一包装了一层,需要通过如下方法查到对应的源码。

    在控制台输入如下代码,然后执行:

    const button = document.querySelector(".J_NextStep")
    getEventListeners(button)
    

    然后会看到如下信息,点击箭头位置,穿透到代码片段。

    步骤二截图


    步骤三:找到 arguments 行并设置断点

    这段代码应该是动态的,每次点击进来函数名都不一样。找到有 arguments 这一行,进行断点。

    步骤三截图


    步骤四:Hook Function.prototype.apply 拦截调用

    点击提交按钮,当代码运行到上面的断点一行时,在控制台输入如下代码:

    const oldApply = Function.prototype.apply;
    
    Function.prototype.apply = function(ctx, args) {
        console.log("调用函数:", this);
        console.log("参数:", args);
        debugger;
        return oldApply.call(this, ctx, args);
    };
    

    然后点击断点控制处的继续执行脚本,此时控制台会输出非常多的信息,使用 goto 关键词过滤一下,找到如下信息:

    步骤四截图


    步骤五:穿透至 gotoPage 函数

    点击这里的代码穿透至具体的逻辑代码,并在当前页面找到 gotoPage 函数声明的位置,这里才是真正逻辑判断的地方。

    步骤五截图


    步骤六:修改日期校验数据,绕过校验

    在该函数内添加断点,当代码执行到该断点时,将 this 变量保存到全局,然后在控制台执行下面代码,将校验逻辑跳过即可:

    this.data.minDate = null
    this.data.maxDate = null
    

    以上步骤完成后,即可绕过前端日期校验,查询 25 年的退税信息。

    53 条回复    2026-02-26 00:00:17 +08:00
    stinkytofux
        1
    stinkytofux  
       7 小时 56 分钟前
    真的挺闲的, 这有啥好查的. 还想方设法提前查. 每年我都是拖到最后才搞, 烦得很.
    BanShe
        2
    BanShe  
       7 小时 54 分钟前
    给 op 的探索精神加鸡腿
    honggexuan
        3
    honggexuan  
       7 小时 44 分钟前
    点赞,已成功进入
    canvascat
        4
    canvascat  
       7 小时 41 分钟前
    真厉害,怎么想到的😍
    tangzui
        5
    tangzui  
       7 小时 40 分钟前
    老哥,图片看不了啊
    jiny28
        6
    jiny28  
       7 小时 38 分钟前
    ok,已经成功进入
    panbofeng
        7
    panbofeng  
       7 小时 38 分钟前
    gotopage 咋跳转到具体代码的呀,我这边点了后只能跳转到调用 gotopage 的地方
    cpstar
        8
    cpstar  
       7 小时 38 分钟前
    这事么,当年靠 F12 得了 X 程的巴厘岛优惠,也拿过小米初代工程机,现在还在搞一些前端控制的“作弊”比如强制学习之类的系统。

    没啥新鲜的,程序员么,逆向程序员的思路很简单,特别是在 B/S 架构下的前后端分离。但要想搞定后端,那就,嘿嘿了。
    chekun
        9
    chekun  
       7 小时 37 分钟前
    费劲看这个干啥呀
    kfpenn
        10
    kfpenn  
       7 小时 34 分钟前
    反应这么快啊,立马就加校验了
    panbofeng
        11
    panbofeng  
       7 小时 29 分钟前
    搞定了,感谢楼主
    lengmou
        12
    lengmou  
       7 小时 29 分钟前
    找到 goto 的时候,弹窗已经出现了,还怎么下一步啊
    panbofeng
        13
    panbofeng  
       7 小时 26 分钟前
    @lengmou 现在函数里面加个断点,然后把弹窗点掉重新来,等他停在你的端点,再输入步骤六的代码。
    aizya
        14
    aizya  
       7 小时 23 分钟前
    可以的,又学到一招。👍
    xiapipi
        15
    xiapipi  
       7 小时 23 分钟前
    可以,进去了。
    dobelee
        16
    dobelee  
       7 小时 23 分钟前
    @lengmou 第一行加断点,执行,block 住时清掉时间就好
    lengmou
        17
    lengmou  
       7 小时 22 分钟前
    @panbofeng #13 OK ,成功了,感谢,以及感谢 OP
    V1Eerie
        18
    V1Eerie  
       7 小时 21 分钟前
    @panbofeng #7 在那个 js 文件里找函数声明的地方就行
    wenrouxiaozhu
        19
    wenrouxiaozhu  
       7 小时 19 分钟前
    @stinkytofux #1 早点退了去理财,hh...其实选"扣缴义务人申报"就不用退了
    zhuzhibin
        20
    zhuzhibin  
       7 小时 13 分钟前
    哈哈 我好菜 我刚试了下断点后 控制台没找到 goto
    lengmou
        21
    lengmou  
       7 小时 8 分钟前
    @zhuzhibin #20 顶部这输入 goto
    busln
        22
    busln  
       7 小时 5 分钟前
    感谢分享,已成功查到
    Philosophy6
        23
    Philosophy6  
       7 小时 2 分钟前
    牛的
    ewillie381
        24
    ewillie381  
    PRO
       7 小时 2 分钟前
    同找不到 goto, 发现到后边找到的函数直接没有函数名了? 不知道是不是这个问题
    yao978318542
        25
    yao978318542  
       7 小时 1 分钟前
    果然有高手,已经查看到了,多谢
    Sanshi4396
        26
    Sanshi4396  
       7 小时 1 分钟前
    第四步拦截不到函数调用啊
    zhuzhibin
        27
    zhuzhibin  
       6 小时 57 分钟前
    @lengmou 不是,就是步骤四后,点击确定,然后继续执行脚本后控制台一堆 consolelog ,根据 goto 没过滤出。。
    chenxiansheng
        28
    chenxiansheng  
       6 小时 49 分钟前
    哪有这么麻烦,把那个 disable 样式去掉就可以了
    aecra
        29
    aecra  
       6 小时 40 分钟前
    成功了,感谢
    wenrouxiaozhu
        30
    wenrouxiaozhu  
       6 小时 38 分钟前
    @chenxiansheng #28 已经不行了
    SnowAngelDream
        31
    SnowAngelDream  
       6 小时 38 分钟前
    成功了,感谢楼主科研
    zhuzhibin
        32
    zhuzhibin  
       6 小时 36 分钟前
    可以了 其实直接去掉 disable 然后拦截调用,多点击确定提交,找到对应函数,然后进入断点,拦截重置为 null 就行
    minglanyu
        33
    minglanyu  
       6 小时 36 分钟前
    这是高手
    catazshadow
        34
    catazshadow  
       5 小时 51 分钟前 via Android
    人人都是电脑高手
    labubu
        35
    labubu  
       5 小时 49 分钟前
    ai 写个油猴脚本
    yanguangs
        36
    yanguangs  
       5 小时 42 分钟前
    草了, 要补 1000 多块
    SuspectX
        37
    SuspectX  
       5 小时 28 分钟前 via Android
    要补税 41😅 去年特意考了个软考证,还以为能退点😂
    823805669hehe
        38
    823805669hehe  
       5 小时 18 分钟前   ❤️ 3
    ![]( )
    ![]( )
    这个方法更简单
    hahahabro
        39
    hahahabro  
       4 小时 55 分钟前
    @823805669hehe 牛的!
    dddragonzz
        40
    dddragonzz  
       4 小时 54 分钟前
    @hahahabro 大佬,改完之后的步骤怎么搞?
    tuutoo
        41
    tuutoo  
       4 小时 52 分钟前
    论坛里高手如云
    hahahabro
        42
    hahahabro  
       4 小时 43 分钟前
    @dddragonzz override content 之前会提醒选一个文件夹保存,选好后再改,改完 ctrl+s 保存,然后刷新页面。
    hahahabro
        43
    hahahabro  
       4 小时 42 分钟前
    @dddragonzz 然后 2025 的那个 disabled 标签还是要手动去掉。
    Leeeeex
        44
    Leeeeex  
    PRO
       4 小时 35 分钟前
    @823805669hehe


    用你这个方法查起来快多了
    bjfane
        45
    bjfane  
    PRO
       4 小时 33 分钟前
    @823805669hehe 牛 虽然下半年失业,看到能退 4000 多,安慰了一下
    uxgnok
        46
    uxgnok  
       4 小时 27 分钟前
    可行。
    dddragonzz
        47
    dddragonzz  
       4 小时 27 分钟前
    @hahahabro 大佬牛!看到了,但是要补两千多,难受哈哈哈
    FrankAdler
        48
    FrankAdler  
       4 小时 21 分钟前
    @hahahabro nice
    sobev
        49
    sobev  
       3 小时 28 分钟前
    牛批
    zooo
        50
    zooo  
       3 小时 24 分钟前
    卧槽我年初换工作,我要补 7000+,我醉了
    lyzy
        51
    lyzy  
       2 小时 57 分钟前
    @823805669hehe #38 牛皮 查到是退税
    hellodigua
        52
    hellodigua  
       2 小时 16 分钟前
    太有工匠精神了🤣
    fzazhao
        53
    fzazhao  
       1 小时 10 分钟前 via Android
    为楼主的钻研精神点赞👍
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1209 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:10 · PVG 01:10 · LAX 09:10 · JFK 12:10
    ♥ Do have faith in what you're doing.