从0开始学web之爆破
字数 976 2025-08-15 21:33:24

Web安全爆破技术实战教学

一、密码爆破基础

1. 文件类型识别

  • 文件头分析:通过文件头识别文件真实类型
    • 504B0304 是ZIP压缩包的文件头
    • 可使用工具:
      • WinHex:Windows下的十六进制编辑器
      • Kali Linux中的binwalk工具:binwalk 文件名

2. 字典爆破实战

  • 基本流程

    1. 获取目标字典文件(如1000-top.txt)
    2. 根据目标格式处理字典(如添加用户名前缀)
    3. 进行编码转换(如Base64编码)
    4. 使用处理后的字典进行爆破
  • Python处理脚本示例

import base64

fp = open('pinjie.txt','w')
with open("1000-top.txt", "r") as f:
    for line in f.readlines():
        line = line.strip('\n')
        line = 'admin:'+line  # 添加用户名前缀
        line1 = base64.b64encode(line.encode('utf-8'))  # Base64编码
        fp.write(str(line1,'utf-8')+'\n')
  • Burp Suite爆破技巧
    • 使用Custom iterator功能进行复杂爆破
    • 可组合不同位置的字符集进行爆破

二、子域名爆破技术

1. 常用工具

  • wydomain:GitHub开源工具,https://github.com/ring04h/wydomain
  • subDomainsBrute:lijiejie开发的子域名爆破工具
  • Layer子域名挖掘机:Windows平台下的图形化工具

2. 实战案例

  • 目标:爆破ctfer.com的子域名
  • 发现的有效子域名:flag.ctf.show/index.php

三、脚本爆破高级技巧

1. MD5特征爆破

示例题目分析

<?php
error_reporting(0);
include('flag.php');

if(isset($_GET['token'])){
    $token = md5($_GET['token']);
    if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
        if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
            echo $flag;
        }
    }
}else{
    highlight_file(__FILE__);
}
?>

爆破条件分析

  1. token的MD5值的第2、15、18位字符相同
  2. (第2位数字值 + 第15位数字值 + 第18位数字值) / 第2位数字值 = 第32位数字值

PHP爆破脚本

<?php
error_reporting(0);
$string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$len = strlen($string);

for($i=0;$i<$len;$i++){
    for($j=0;$j<$len;$j++){
        $flag = $string[$i].$string[$j];  // 生成两位字符组合
        $token = md5($flag);
        if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
            if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
                echo $flag."\n";
            }
        }
    }
}
?>

爆破结果:成功得到有效token "ZE3j"

四、伪随机数爆破

(注:原文未完整展示这部分内容,但伪随机数爆破通常涉及以下技术)

1. 常见漏洞

  • 使用弱随机数生成器(如rand()而非cryptographically secure random)
  • 可预测的种子值
  • 有限的随机数范围

2. 爆破方法

  1. 确定随机数生成算法
  2. 收集足够的输出样本
  3. 尝试预测下一个输出值
  4. 使用预测值进行爆破

五、防御措施

  1. 密码爆破防御

    • 使用强密码策略
    • 实施账户锁定机制
    • 添加验证码
  2. 子域名枚举防御

    • 定期扫描和监控
    • 删除不必要的子域名
    • 使用DNS防火墙
  3. 脚本爆破防御

    • 增加复杂度要求
    • 实施速率限制
    • 使用多因素认证
  4. 伪随机数防御

    • 使用加密安全的随机数生成器
    • 确保足够的熵源
    • 避免暴露随机数序列
Web安全爆破技术实战教学 一、密码爆破基础 1. 文件类型识别 文件头分析 :通过文件头识别文件真实类型 504B0304 是ZIP压缩包的文件头 可使用工具: WinHex:Windows下的十六进制编辑器 Kali Linux中的binwalk工具: binwalk 文件名 2. 字典爆破实战 基本流程 : 获取目标字典文件(如1000-top.txt) 根据目标格式处理字典(如添加用户名前缀) 进行编码转换(如Base64编码) 使用处理后的字典进行爆破 Python处理脚本示例 : Burp Suite爆破技巧 : 使用Custom iterator功能进行复杂爆破 可组合不同位置的字符集进行爆破 二、子域名爆破技术 1. 常用工具 wydomain :GitHub开源工具, https://github.com/ring04h/wydomain subDomainsBrute :lijiejie开发的子域名爆破工具 Layer子域名挖掘机 :Windows平台下的图形化工具 2. 实战案例 目标:爆破ctfer.com的子域名 发现的有效子域名: flag.ctf.show/index.php 三、脚本爆破高级技巧 1. MD5特征爆破 示例题目分析 : 爆破条件分析 : token的MD5值的第2、15、18位字符相同 (第2位数字值 + 第15位数字值 + 第18位数字值) / 第2位数字值 = 第32位数字值 PHP爆破脚本 : 爆破结果 :成功得到有效token "ZE3j" 四、伪随机数爆破 (注:原文未完整展示这部分内容,但伪随机数爆破通常涉及以下技术) 1. 常见漏洞 使用弱随机数生成器(如rand()而非cryptographically secure random) 可预测的种子值 有限的随机数范围 2. 爆破方法 确定随机数生成算法 收集足够的输出样本 尝试预测下一个输出值 使用预测值进行爆破 五、防御措施 密码爆破防御 : 使用强密码策略 实施账户锁定机制 添加验证码 子域名枚举防御 : 定期扫描和监控 删除不必要的子域名 使用DNS防火墙 脚本爆破防御 : 增加复杂度要求 实施速率限制 使用多因素认证 伪随机数防御 : 使用加密安全的随机数生成器 确保足够的熵源 避免暴露随机数序列