Python&影刀RPA——网页监听数据解密(响应体AES解密BASE64分析)

        影刀RPA,提供了强大的数据抓取功能,让一些编程小白友友们也能轻松获取到想要的数据,大大的降低门槛,例如从相似元素组获取数据,或者直接抓取表格元素table表格:

看看,多简单,一条指令就完成,真是大赞特赞。。。

        但是,但是,唉。。。这个没有一本万利的时候,有一些网站,他没有把这个数据在界面上展现出来,我们都看不到,怎么用这个元素去抓取他的数据,真是巧妇难为无米之炊啊。。。而这种数据,一般平台会提供一个下载按钮,欸,那我们可以找到这个下载按钮的元素,点击这个元素把数据下载下来就可以了呀,但是经过测试,平台偶尔会弹出一些广告,而且广告又不相同,导致有时候会找不到”下载“的元素,就要我们经常维护。

        欸~,经过查找,在查询数据数据时后台会有数据返回,那就可以用网页监听啊,提取监听到的数据写入Excel表格,也就等同于下载数据了,如图,就在下面那一大坨中找到想要的数据:

找了半天找不到,原来,原来,是平台对返回的数据进行加密了,当场裂开。。。:

        没事哒没事哒,加密了那就进行解密,解不出,那就继续沿用点击下载按钮的方法,多维护就多维护呗,反正都是当吗喽的命。。。而这种解密我们就封装成一个指令集,后面遇到了就可以直接调用,就不需要一个一个写进取数流程里。通过堆栈查找,发现是AES加密,模式是CBC,填充方式是Pkcs7,除了这些信息之外,我们还要找到密钥才能进行解密,而且又是CBC模式,所以要找到初始化向量,拿到这些关键信息后,就可以进行解密了的

(想要详细了解AES原理的,可以找大佬文章和问GPT,额,俺也模糊了,记得怎么用就行)

而密钥和初始化向量都在上方:

这个就比较简单了,因为可以看出这个没有进行混淆和加一些乱八七糟,不四不三的东西,是一个非常官方的ASE_256(密钥长度可以看的出来,16字节是AES_128,24字节是AES_192,32字节是AES_256)加密,那就不用扣JS代码了,python直接就有包给我们调用,不愧是python,真是包罗万象

  首先得下载这个包:

pip insatnll pycryptodome

  然后就可以开始调这个包创建AES解密器进行解密啦:

import base64
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad


def AES_CBC(padding, data_str, key_str, iv):
    mode=AES.MODE_CBC
    #先对数据字符串进行utf-8编码
    key_str = key_str.encode('utf-8')
    #创建解密器
    aes = AES.new(key_str, mode, iv)
    #对数据字符串进行base64编码
    data_str= base64.b64decode(data_str)
    #解密
    data_str= aes.decrypt(data_str)
    #去除pkcs7填充
    data_str= unpad(data_str, AES.block_size, style=padding)
    #解码
    data_str= data_str.decode('utf-8')
    return data_str

                  上面的代码,也可以去百度查后者去博客找又或者去问GPT,一找一大堆 

        如下图,流程都写好了:

接下来就是编辑指令:

发版后可以看到我们工具指令集里就有AES解密这个指令了:

然后去试试能不能解出那段加密字符串,发现可以正常解密:

        除此之外,还有一种响应数据是这种的,但是找他的JS代码找了好久都不知道是什么加密,真的是快要奔溃。。。:

后来找了大佬,大佬就看了几分钟就说,可能只是进行了base64编码了,解码一下试试,实在不行在细看。。。居然、居然,真是这样啊,天地良心啊,果然经验就是宝贵啊,路漫漫其修远兮,吾将上下而求索啊。

而影刀也直接提供了这个base64解码,我们直接用就行,嘿嘿,影刀RPA真贴心哩:

解码之后是一个二进制流,我们用python把二进制流写成excel文件就行了:

目前就遇到过这两种情况啦,遇到AES模式的加密在拓张指令了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林丑丑@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值