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

2 月 25 日
 rossroma

接前一篇帖子: https://v2ex.com/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 年的退税信息。

9644 次点击
所在节点    分享发现
89 条回复
lengmou
2 月 25 日
@zhuzhibin #20 顶部这输入 goto
busln
2 月 25 日
感谢分享,已成功查到
Philosophy6
2 月 25 日
牛的
ewillie381
2 月 25 日
同找不到 goto, 发现到后边找到的函数直接没有函数名了? 不知道是不是这个问题
yao978318542
2 月 25 日
果然有高手,已经查看到了,多谢
Sanshi4396
2 月 25 日
第四步拦截不到函数调用啊
zhuzhibin
2 月 25 日
@lengmou 不是,就是步骤四后,点击确定,然后继续执行脚本后控制台一堆 consolelog ,根据 goto 没过滤出。。
chenxiansheng
2 月 25 日
哪有这么麻烦,把那个 disable 样式去掉就可以了
aecra
2 月 25 日
成功了,感谢
wenrouxiaozhu
2 月 25 日
@chenxiansheng #28 已经不行了
SnowAngelDream
2 月 25 日
成功了,感谢楼主科研
zhuzhibin
2 月 25 日
可以了 其实直接去掉 disable 然后拦截调用,多点击确定提交,找到对应函数,然后进入断点,拦截重置为 null 就行
minglanyu
2 月 25 日
这是高手
catazshadow
2 月 25 日
人人都是电脑高手
labubu
2 月 25 日
ai 写个油猴脚本
yanguangs
2 月 25 日
草了, 要补 1000 多块
SuspectX
2 月 25 日
要补税 41😅 去年特意考了个软考证,还以为能退点😂
823805669hehe
2 月 25 日
![]( )
![]( )
这个方法更简单
hahahabro
2 月 25 日
@823805669hehe 牛的!
dddragonzz
2 月 25 日
@hahahabro 大佬,改完之后的步骤怎么搞?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1194042

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX