声明:
- 本文章内容仅供学习交流,不用于其他其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,
各位看官好哇,今天给大家带来一篇web自动化逆向的文章,如下图当前我们需要账号密码逆向出来
接下来开始正文,老样子还是到启动器打开JS文件查看我们发起请求的函数
今来之后继续打上断点开始调试,我们本次主要关注的内容是w.a鼠标选中,点击箭头处跳转到该函数内
在这看到w.a函数其实是发起POST请求的函数, 参数e其实就是我们fromdata的参数
到这里我们可以下一步调试将鼠标移入s函数上,跳转到s函数的位置上
打上断点继续调试,这里给大家讲下 var t = window.SITE_CONFIG.EncryptPublicKey || c; 这行代码是什么意思 在JavaScript中 || 是或的意思,这里就是说当window.SITE_CONFIG.EncryptPublicKey 为true时 t=window.SITE_CONFIG.EncryptPublicKey 如果window.SITE_CONFIG.EncryptPublicKey为false, c为true时那么 t = c,这里要确认window.SITE_CONFIG.EncryptPublicKey是否为true时我们只需要把鼠标移到window.SITE_CONFIG.EncryptPublicKey上看是否有值
这里有值就说明 t = window.SITE_CONFIG.EncryptPublicKey,接下来下一步调试到t.encrypt上
这里能看到encrypt的参数e还是明文状态就说明我们到这一步还有开始加密,打上断点继续调试
还是鼠标移入到encrypt跳转到函数
到这里就大概知道使用的是什么加密算法,当前网站使用的是RSA的加密算法,在想我们之前拿到的BEGIN PUBLIC KEY开头的字符串,现在就可以肯定 BEGIN PUBLIC KEY是在做RSA加密时候用到public key于是我打算用Python的Crypto来做RSA加密尝试一下
在使用Crypto之前需要先pip install pycryptodome
安装一下
from Crypto import Random
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_v1_5
import base64
def rsa_encrypt(message):
key = """-----BEGIN PUBLIC KEY-----
网站的 PUBLIC KEY
-----END PUBLIC KEY-----"""
rsakey = RSA.importKey(key)
cipher = PKCS1_v1_5.new(rsakey) # 生成对象
# 通过生成的对象加密message明文,注意,在python3中加密的数据必须是bytes类型的数据,不能是str类型的数据
cipher_text = base64.b64encode(cipher.encrypt(message.encode("utf-8")))
return cipher_text.decode()
写好之后我就尝试用requests.post去发起请求,结果还是不错的直接就成功了,接下来我换上正确的账号试下
登陆成功,到此该网站的账号和密码的加密已经破解了。
各位看官下次见哦
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者删除