• 漏洞挖掘 | 弱口令漏洞


    弱口令漏洞

    漏洞描述

    应用存在默认口令或口令较简单易被猜到。

    风险等级

    漏洞测试

    使用常见的弱口令字典进行尝试登陆。一般采用BurpSuite进行测试。在这里我们用DVWA进行演示(DVWA不会搭建的请自行百度)。

    首先登陆进入DVWA后,修改安全等级:
    修改DVWA安全等级

    然后在Brute Force模块进行测试弱口令:
    Brute Force模块

    使用 BrupSuite 进行抓包:
    发现账户和密码是使用GET方式提交的,然后我们右键将抓到的包发送到 Intruder 模块进行暴力破解:
    抓包发送到Intruder模块

    进入到Intruder模块后,发现有四种攻击方式可选择:
    四种攻击模式

    现在我们来分别介绍一下四种攻击模式:

    狙击手模式(Sniper)——它使用一组Payload集合,依次替换Payload位置上(一次攻击只能使用一个Payload位置)被§标志的文本(而没有被§标志的文本将不受影响),对服务器端进行请求,通常用于测试请求参数是否存在漏洞。
    攻城锤模式(Battering ram)——它使用单一的Payload集合,依次替换Payload位置上被§标志的文本(而没有被§标志的文本将不受影响),对服务器端进行请求,与狙击手模式的区别在于,如果有多个参数且都为Payload位置标志时,使用的Payload值是相同的,而狙击手模式只能使用一个Payload位置标志。
    草叉模式(Pitchfork )——它可以使用多组Payload集合,在每一个不同的Payload标志位置上(最多20个),遍历所有的Payload。举例来说,如果有两个Payload标志位置,第一个Payload值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起两次攻击,第一次使用的Payload分别为A和C,第二次使用的Payload分别为B和D。
    集束炸弹模式(Cluster bomb)——它可以使用多组Payload集合,在每一个不同的Payload标志位置上(最多20个),依次遍历所有的Payload。它与草叉模式的主要区别在于,执行的Payload数据Payload组的乘积。举例来说,如果有两个Payload标志位置,第一个Payload值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起四次攻击,第一次使用的Payload分别为A和C,第二次使用的Payload分别为A和D,第三次使用的Payload分别为B和C,第四次使用的Payload分别为B和D。

    现在我们使用集束炸弹模式(第四种)进行测试:
    点击 clear 将所有参数置为未选中,然后将 usernamepassword 选中,设置完毕后点击 payloads 开始设置攻击载荷:
    选择特定参数
    设置攻击载荷

    开始攻击,通过查看返回包的Length可判断是否爆破成功,在这里我们发现admin/admin与其他返回长度不同:
    爆破

    然后我们在登录页面使用admin/admin进行尝试登录:
    登陆成功

    成功进行登录。

    漏洞危害

    攻击者利用弱口令,可以获取特定账户或应用的访问控制权限,如果进一步攻击利用可能获取到服务器权限。

    加固建议

    关于如何防止弱口令的一些方法:

    1. 不使用空口令或系统缺省的口令,因为这些口令众所周之,为典型的弱口令。
    2. 口令长度不小于8个字符。
    3. 口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合。
    4. 口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
    5. 口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。
    6. 口令不应该为用数字或符号代替某些字母的单词。
    7. 口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
    8. 至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。

    关于如何防止暴力攻击的一些方法:

    1. 限制验证次数,或者设置较长的密码和各种组合,延长暴力破解的时间。
    2. 尽可能的使密码足够的复杂,密码的长度要大于8位。
    3. 发现同一IP错误登录次数过多时,强制使用人脸识别技术,确定是否为本人操作。
    4. 如果错误次数超过五次或者十次以上,那么就采用验证码登录,或者使用短信验证,每天验证次数不超过20次。
    5. 可以添加延迟(如:sleep(2))来延长暴力破解的时间,这样可以减缓一些单线程攻击,但对多线程攻击则效果不好。

    互联网挖掘弱口令漏洞的方法

    使用 GoogleHacking 语法进行寻找登录页面:

    inurl:login
    intext:后台登录
    ...
    

    通常为节省时间只测试几种常见的弱口令:

    admin/admin
    admin/admin123
    admin/123456
    ...
    

    若挖到弱口令漏洞,可以提交到国家信息安全漏洞共享平台CNVD

    下面是文中使用的靶场官网和工具教程:

    DVWA官网:
    http://www.dvwa.co.uk/

    BurpSuite实战指南:
    https://t0data.gitbooks.io/burpsuite/

    每一个不曾起舞的日子 都是对生命的辜负
  • 相关阅读:
    可方便扩展的JIRA Rest Web API的封装调用
    小诗一首
    jxse2.6在jdk8下,JxtaMulticastSocket存在的问题
    http://blogs.msdn.com/b/pranavwagh/archive/2007/03/03/word-2007-file-seems-to-be-deleted-when-you-open-and-save-it-using-dsoframer.aspx
    how to javafx hide background header of a tableview?
    Styling FX Buttons with CSS
    2d网络游戏的延迟补偿(Lag compensation with networked 2D games)
    Fast-paced Multiplayer
    jspace2d——A free 2d multiplayer space shooter
    JXSE and Equinox Tutorial, Part 2
  • 原文地址:https://www.cnblogs.com/wlfsky/p/10557173.html
Copyright © 2020-2023  润新知