DOM调试RSA加密

  • 申明
    • 本文主要自己对爬虫的一个学习,提供的可操作性不得用于任何商业用途和违法违规场景。
    • 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。
    • 如有侵权,请联系我进行删除。

案列网站

在这里插入图片描述
https://www.gm99.com/

打开F12,找到事件监听器

在这里插入图片描述

会有几个事件,一眼过去感觉click就是点击事情,登入事件(如果不是就一个一个看下)
在这里插入图片描述

可以试着几个移除,如何点击登入,看是否会发出提示,如果没有发出提示,就说明上一个移除的就是登入的监听器。

这里目前没有移除掉 在这里插入图片描述

发现移除掉之后就点击登入没有反应,这个时候得出结论,刚刚移除掉的就是登入事件监听事件
在这里插入图片描述
刷新页面点击进去,并且打断点
在这里插入图片描述
结论:发现点击了并没有进入断点

网络请求调试

根据提醒框,找到请求
在这里插入图片描述
找到url
在这里插入图片描述

根据URL去之前dom找到的js进行搜索,搜索到了之后打断点
在这里插入图片描述

测试:发现输入信息进入了断点(验证码在输入的时候需要正确)

传入的参数

在这里插入图片描述
发现t.password是我们输入的密码,如何还是一个s是当前的时间戳,传入了a.encode里面

继续打点进行调试,一眼过去明显的RSA加密,然后还进行URL编码
在这里插入图片描述

测试

在这里插入图片描述
在这里插入图片描述

python实现

RSA加密

from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.backends import default_backend
from base64 import b64encode

def rsa_encrypt(public_key: str, message: str) -> str:
    public_key = serialization.load_pem_public_key(
        public_key.encode(),
        backend=default_backend()
    )
    
    encrypted = public_key.encrypt(
        message.encode(),
        padding.OAEP(
            mgf=padding.MGF1(algorithm=hashes.SHA256()),
            algorithm=hashes.SHA256(),
            label=None
        )
    )
    return b64encode(encrypted).decode('utf-8')

# 秘钥:
public_key = """
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDq04c6My441Gj0UFKgrqUhAUg+kQZeUeWSPlAU9fr4HBPDldAeqzx1UR92KJHuQh/zs1HOamE2dgX9z/2oXcJaqoRIA/FXysx+z2YlJkSk8XQLcQ8EBOkp//MZrixam7lCYpNOjadQBb2Ot0U/Ky+jF2p+Ie8gSZ7/u+Wnr5grywIDAQAB
-----END PUBLIC KEY-----
"""
一个是时间一个是我的密码
message = '1717814299393|12312313'
encrypted_message = rsa_encrypt(public_key, message)
print(encrypted_message)
print(len(encrypted_message))

URL编码

from urllib.parse import quote

def encodeURIComponent(s):
    return quote(s, safe='~()*!.\'')

# Example usage:
test = 'I1PyyYiqcjArtZq3RC9Ww6oxMSMBhVEGWZNVrkFgHXmHlQPHGPOXLad46EX7hwhGD4nVnJbkKv5vZVIGOZj4uR3Dc5CFXcJ38fpa3u4SO6ImLkIAbLzytw8sIKVolcvx4JstgjNCwAiU1vJ+T/7eYYzLpwE0HO0QwE0fcnP+fXg='
encoded_string = encodeURIComponent(test)
print(encoded_string)
print(len(encoded_string))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值