某网站登录接口参数分析

通过对请求进行抓包,进行两次请求,负载中发现有以下参数:

通过对比发现password是加密的,captcha、execution两个参数在变化,其中captcha是验证码的英文,观察发现captcha的确是验证码;通过全局关键字搜索关键字execution,发现如下:

<input type="hidden" name="execution" value="c535ae11-9adc-4986-bc8e-cddf14d2c3">

<input type="hidden"> 是一个 HTML 元素,它通常被用于在表单中存储隐藏的数据。这个元素不会在页面上显示出来,但可以用于在提交表单时传递额外的数据。

再对password进行全局搜索,很容易便发现其加密位置,该加密采取了AES加密,加密实现中使用了 CBC 和 PKCS7 模式进行填充,增强其随机性与安全性,最后使用CryptoJS.AES.encrypt进行加密,最后为了保证数据传输的安全与完整,使用了encodeURLComponent进行编码,最后得出加密的密码;但是其解密方法的位置未进行解码,无法对密文进行正确输出。代码如下:

// 此仅属于方法分享,未给出密钥等,无法运行
var key = CryptoJS.enc.Utf8.parse();
var iv = CryptoJS.enc.Utf8.parse();
function encrypt(plaintext) {
    var encrypted = CryptoJS.AES.encrypt(plaintext, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,                       
        padding: CryptoJS.pad.Pkcs7
    });
    var edpwd = encodeURIComponent(encrypted.toString());
    return edpwd;
}// 加密
function decrypt(ciphertext) {
    var decodedCiphertext = decodeURIComponent(ciphertext);
    var decrypted = CryptoJS.AES.decrypt(ciphertext, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    var plaintext = decrypted.toString(CryptoJS.enc.Utf8);
    return plaintext;
}// 解密
function checkForm() {
    var password = "123456";
    var encryptPwd = encrypt(password);
    console.log("加密后的密码:"+encryptPwd);
    var pWD = decrypt(encryptPwd);
    console.log("解密后的密码:"+pWD);
    return true;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值