wananovo 发表于 2024-7-26 11:08

某省老版税务登录

# 某省税务登录

1.获取验证码


该请求携带的参数不包含加密信息,只是包含一个时间戳,可以直接请求得到返回值,其中返回的originalImageBase64和WordImageBase64是经过base64加密后的二进制图片,导入base64库,通过decode解密后将图片写入到本地。

2.通过点选图片验证

多次对比第一次请求我们可以发现该请求中token为第一次请求返回得到,ts为时间戳,`pointJson`为加密得到,其他两个参数为固定值,所以我们搜索pointJson找到其加密入口


通过断点我们发现`pointJson`由sm4加密而来,其中的`checkPosArr`经过分析不难发现就是点选验证码的坐标,`secretKey`和`token`就是上次请求返回的值

进入encrypt,放入我们的js环境中,缺什么补什么,使其成功运行,即可复现加密过程。
至此,我们得到了第二次请求所需要的所有参数

注:
在这里图片验证码作为两张图片返回,所以我们需要用到PIL库来将图片进行合并,使得第三方打码平台能够识别验证码返回坐标

3.发送验证码
在本次请求中,不难发现`captchaVerification`进行了加密处理,所以我们需要找到他的加密入口

通过搜索查找、动态断点可以找到`captchaVerification`的加密位置

其中`captchaVerification`等于c,加密方法同上,但参数变为了`backToken` + "---" +`checkVoice`和`secretKey`   其中`backToken`还是第一次返回的token,`secretKey`为第一次返回的`secretKey`,`checkVoice`为点选图片返回的坐标列表,拼接后传入参数即可完成加密得到`captchaVerification`
至此,发送验证码所需的所有参数都已完成

4.完成登录

在本次请求中,所有参数都没加密,且仅有yzm一个参数是不固定的,所以我们只需要将验证码输入即可完成登录

5.结果


6.总结
通过本网站主要学习了点选验证码的逆向破解,其中完整的图片可能有多个小图片组成,所以我们需要实现图片的合并,让第三方打码平台可以正确识别图片。还学习了如何使用第三方打码平台,输入账号密码和图片类型即可得到平台返回的结果,我们可以在更改他的函数来实现返回结果类型的多样性。还有就是补js环境的时候缺啥补啥,可以在想要的目标函数的基础上在多看几行,看看有没有定义好的变量,以免要补的东西过多。

asd7456 发表于 2024-7-26 12:07

js?小白看不懂这是干嘛的欸,JS税务好烦没多久就要重新登陆。

Faraday 发表于 2024-7-26 12:46

这干啥的

Kls673M 发表于 2024-7-26 14:49

等税务好像没什么要pa的呢

pangdong697 发表于 2024-7-26 14:56

是不是报账的公司搞的啊,RPA

sz1001ye 发表于 2024-7-26 18:43

老版本的登录我们这已经禁用了。
页: [1]
查看完整版本: 某省老版税务登录