zoukankan      html  css  js  c++  java
  • [置顶] 怎样进行爆破

    这个很多比赛都遇到暴力破解这个比较蛋疼的问题,比较常见的是POST提交的暴力破解。这个暴力破解主要依靠三部分,工具,字典,网速。最后一条得听天命,不过前两条还是可以认为努力的。

    字典生成

    这种东西需要自己写一个东西生成。为了图方便,我只写了一个N个单词的排列组合
    #include <iostream>
    #include <vector>
    #include <queue>
    #include <map>
    using namespace std;
    struct node {
        string s;
        long sta;
    };
    string wordList[] = {"ILoveyou","812","wdxl","verymuch"};
    int wordNum=4;
    int maxLength=20;
    
    
    queue<node> v;
    map<string,int> m;
    node t,tt;
    int leng;
    bool b;
    
    void pushWord(){
        leng=v.size();
        for (int i=0;i<leng;i++){
            t=v.front();
            v.pop();
            for (int j=0;j<wordNum;j++){
                if (!(t.sta>>j & 1)){
                    tt.s = t.s+wordList[j];
                    tt.sta = t.sta | (1<<j);
                    if (tt.s.length()<=maxLength)
                        v.push(tt);
                }
            }
        }
    }
    
    void outPrint(){
        m.clear();
    
        for (int i=0;!v.empty();i++){
            if (m[v.front().s]==0){
                cout<<v.front().s<<endl;
                m[v.front().s]=1;
            }
            v.pop();
        }
    }
    
    void doWord(int x){
        t.s="";
        t.sta=0;
        v.push(t);
    
        for (int i=0;i<x;i++)
            pushWord();
    
        outPrint();
    
    }
    
    
    int main()
    {
        //freopen("word.txt","w",stdout);
        doWord(2);
        return 0;
    }

    当然这样是不够的,比如有的时候密码会把you换成y0u,日期会有 08-01 08/01 @0801 等多种形式,字符之间会不会有特殊符号,单词开头是否大写,等等等等~
    这样很多的假设,其实是不利于密码字典的生成的~,因为这样生成的字典会过于冗余。在字典生成的时候,我们通常先生成最简单的字典,然后在加上各种规则,
    实现字典各种情况的扩充。比如Burp就实现了这种规则。


    辅助工具


    BURP

    这里推荐一个工具就是burp,他在暴力破解这方面还是比较强的大。
    具体教程网上比较多,就不细讲了,这里主要来讲一下它的暴力破解方面的应用。

    Attack   type

    burp每监听一个包,都可以发送到Intruder这个模块中,他有Sniper        Battering ram      Pitchfork      Cluster  bomb这四种模式。
    sniper是针对单一Payload Position 应用 单一 payload
    Battering ram 是针对多个 Payload Postions 应用 单一 payload
    Pitchfork  是针对多个payload  Postions 应用多个  payloads  以线性模式调用payloads
    Cluster  bomb 是针对多个payload  Postions 应用多个  payloads   会尝试所有payloads的组合


    Payloads


    payloads的设置也有比较多,灵活运用的话就可以生成比较好的字典了~

    其中有几个是基于Simple List的,就是在其基础上加个小功能。

    Custom iterator 和Cluster bomb 类似。
    Character  substitution  这个是一个比较有用的选项,支持把一个字符替换成另外一个字符,比如外国人喜欢 t=7  s=5   o=0 之类的。
    Case modification   一个大小写装换的枚举。

    有几个是暴力破解的时候要用到的

    Numbers      顾名思义就是数字的枚举啦~
    Dates            顾名思义就是日期的枚举啦~
    Brute forcer  顾名思义就是暴力枚举所有字符啦~  



    Payoad  Processing

    这个就是对上面的payload,做一些小修正~功能比较简单,就是字面意思。




    搞定验证码

    这里比较蛋疼,不仔细研究了。有一个工具cintruder貌似可以。



  • 相关阅读:
    使用JQuery结合HIghcharts实现从后台获取JSON实时刷新图表
    Highcharts获取json数据展现pie饼图
    java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
    hibernate 使用sql 查询(setResultTransformer)
    createSQLQuery的addEntity跟setResultTransformer方法
    spring+hibernate中的Result object returned from HibernateCallback isn't a List
    改变MyEclipse创建JSP时默认的pageEncoding编码
    poj 1330 Nearest Common Ancestors 单次LCA/DFS
    poj 1328 Radar Installation 排序贪心
    brainfuck 解释器
  • 原文地址:https://www.cnblogs.com/riskyer/p/3359929.html
Copyright © 2011-2022 走看看