《11招玩转网络安全》之第三招:Web暴力破解-Low级别

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Web的暴力破解通常用于网站的登录窗口,其他的地方当然也可以用。比如某个网站需要验证身份证ID时,可以在字典中批量的写入合法的身份证ID,然后输入页面测试。这种方法手工都能做,只要有足够的耐心。

Docker中启动LocalDVWA容器,准备DVWA环境。在浏览器地址栏输入http://127.0.0.1, 中打开DVWA靶机。自动跳转到了http://127.0.0.1/login.php 登录页面。输入默认的用户名密码admin:password登录。单击页面左侧的DVWA Security,进行安全级别设置,如图3-18所示。

图3-18 DVWA安全级别

DVWA的安全级别有4种,分别为Low、Medium、High和Impossible。先选择最低的安全级别,单击Submit按钮确认选择。

单击页面左侧的BruteForce按钮,进入暴力破解测试页面,单击View Source按钮,如图3-19所示。

图3-19 Low Brute Force源代码

获取的代码如下:

<?php

 if( isset( $_GET[ 'Login' ] ) ) {

    // Getusername

    $user =$_GET[ 'username' ];

 

    // Getpassword

    $pass =$_GET[ 'password' ];

    $pass =md5( $pass );

 

    // Checkthe database

   $query  = "SELECT * FROM`users` WHERE user = '$user' AND password = '$pass';";

    $result= mysqli_query($GLOBALS["___mysqli_ston"],  $query ) or die( '<pre>' .((is_object($GLOBALS["___mysqli_ston"])) ?mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res =mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );

 

    if($result && mysqli_num_rows( $result ) == 1 ) {

        //Get users details

       $row    = mysqli_fetch_assoc($result );

       $avatar = $row["avatar"];

 

        //Login successful

        echo"<p>Welcome to the password protected area {$user}</p>";

        echo"<img src=\"{$avatar}\" />";

    }

    else {

        //Login failed

        echo"<pre><br />Username and/or passwordincorrect.</pre>";

    }

 

   ((is_null($___mysqli_res =mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);

}
?>

从代码中可以看出,服务器没有对输入的用户名和密码做任何的检查,直接就进行了SQL查询。这种情况用SQL注入也非常的方便,但这里测试的是暴力破解。

浏览器启用SwitchyOmega的Burp Suite模式,启动Burp Suite监听本地的8080端口。在页面中任意输入一个用户名和密码,如图3-20所示。

图3-20 DVWA发送数据到Burp Suite

关闭浏览器其他的标签页,避免干扰。启动Burp Suite,打开Proxy标签页的Intercept项,将项目按钮调整成Intercept is on,如图3-21所示。

图3-21 Burp Suite拦截

回到DVWA页面中,单击Login按钮。浏览器向服务器127.0.0.1发送数据,通过127.0.0.1:8080端口,被Burp Suite拦截。Burp Suite显示拦截下来的数据,如图3-22所示。


图3-22 拦截的数据

在Raw的文本框中单击鼠标邮件,在弹出的菜单中选择Send toIntruder选项,Burp Suite将拦截得到的数据发送给了Intruder,进行选择、分析,如图3-23所示。

图3-23 Send Data to Intruder

单击Burp Suite的Intruder标签,选择Positions项目。这里是暴力破解的主战场,可以看到Intruder已经将页面发送数据中所有可爆破的参数都标示出来了,如图2-24所示。


图2-24 Intruder项目

这里所有标示出来的参数都是可以用于暴力破解的。实际上只需要暴力破解username和password这两个参数就可以。单击Clear$按钮。清除所有备选目标,然后选择需要暴力破解的两个参数username和passowrd,单击Add$按钮,将这两个攻击目标的参数标示起来,如图2-25所示。

图3-25 选择暴力破解目标

再来看看Intruder项目的攻击模式Attack type。Intruder的攻击模式有4种。分别为Sniper、Battering ram、pitchfork、Cluster Bomb模式。

Sniper是狙击模式,这种模式适合单一的目标参数破解。以本次破解为例,如果已知了用户名username,那就只需要暴力破解密码password就可以了。这就是单一的目标参数破解。只需要给一个字典,Intruder就用这个字典中的所有密码测试一遍。假设已给出密码字典为[a, b, c, d],破解方式为:

Password

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

 a

 b

 c

 d

Battering ram是撞击模式,这种模式不管有多少个目标参数破解,都只用一个密码字典。以本次破解为例,有两个目标参数需要破解,Intruder将密码字典中的密码同时给这两个目标,假设已给出密码字典为[a, b, c, d],破解方式为:

username | password

a  | a

b  | b

c  | c

d  | d

Pitchfork是交叉模式,这种模式中有多少个目标参数,就需要给多少个密码字典。以本次破解为例,有两个目标参数需要破解。假设给出的2个字典分别包含的是[1, 2]和[a, b, c, d]。Intruder将破解2次,破解方式为:

username | password

1  | a

 2  | b

Cluster bomb是集束炸弹模式,这种模式的中有多少目标参数,就需要多少个密码字典。以本次破解为例,有两个目标参数需要破解。假设给出的2个字典分别包含的是[1, 2]和[a, b, c, d]。破解方式为:

username | password

1  | a

1  | b

1  | c

1  | d

2  | a

2  | b

2  | c

2  | d

本次破解有2个目标参数username和password,需要2个字典。选择Cluster bomb模式,如图3-26所示。

图3-26 Attack Type

单击Payloads标签,为目标设置字典。第一个目标参数是username,用户名一般就是[root, admin, administrator],将这几个用户名输入到第一个目标参数的密码字典中去,如图3-27所示。

图3-27 输入用户名到字典

第2个目标参数是password,将创建的weak_top25.txt文件作为密码字典就可以了,如图3-28所示。

图3-28 载入文件作密码字典

所有设置完毕后,单击Startattack按钮开始破解。最后得到的结果如图3-29所示。


图3-29 Low安全级别的破解

Length是从服务器返回数据的长度。只有一个长度与众不同,那这个用户名和密码必定是正确的。测试一下,回到DVWA的Brute Force项目,输入用户名和密码admin:password,单击Login按钮,返回的结果如图3-30所示。

图3-30 测试结果

验证用户名密码可用。暴力破解成功。

有兴趣的欢迎一起读这本书《11招玩转网络安全——用Python,更安全》

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
计算机网络:思科实验【1-访问WEB服务器】
计算机网络:思科实验【1-访问WEB服务器】
计算机网络:思科实验【1-访问WEB服务器】
|
3月前
|
Kubernetes 网络协议 Python
Python网络编程:从Socket到Web应用
【4月更文挑战第9天】本文探讨Python在网络编程中的应用,包括Socket编程和Web应用开发。Python的`socket`模块支持TCP/IP客户端和服务器,示例展示了一个echo服务器。此外,Python通过Flask、Django等Web框架简化Web应用开发,支持异步Web编程如Tornado和aiohttp。Python也在微服务架构中占有一席之地,适用于构建轻量级、高效的网络服务。
66 6
|
11天前
|
SQL 运维 安全
GitHub爆赞的Web安全防护指南,网络安全零基础入门必备教程!
web安全现在占据了企业信息安全的很大一部分比重,每个企业都有对外发布的很多业务系统,如何保障web业务安全也是一项信息安全的重要内容。 然而Web 安全是一个实践性很强的领域,需要通过大量的练习来建立对漏洞的直观认识,并积累解决问题的经验。 Web安全与防护技术是当前安全界关注的热点,今天给小伙伴们分享的这份手册尝试针对各类漏洞的攻防技术进行体系化整理,从漏洞的原理到整体攻防技术演进过程进行详细讲解,从而形成对漏洞和web安全的体系化的认识。
|
13天前
|
XML SQL 安全
【网络安全】Web Hacking网络黑客手册,GitHub星标3.7K!
在黑客攻击的演变过程中,防火墙只是一个减速带。黑客攻击不断发展,变得越来越复杂,适应能力和创造力都在不断增强,造成的破坏也越来越大。通过网络端口进行的 Web 攻击影响巨大。 今天给小伙伴们分享的这份手册主要讲解了Web黑客攻击方向。描述了 Web 语言和协议、Web 和数据库服务器以及支付系统。介绍了完整的方法论,包括技术和攻击、对策、工具,以及案例研究和 Web 攻击场景,展示了不同攻击的工作原理及其工作原理。
|
15天前
|
SQL 运维 安全
GitHub爆赞的Web安全防护指南,网络安全零基础入门必备教程!
web安全现在占据了企业信息安全的很大一部分比重,每个企业都有对外发布的很多业务系统,如何保障web业务安全也是一项信息安全的重要内容。 然而Web 安全是一个实践性很强的领域,需要通过大量的练习来建立对漏洞的直观认识,并积累解决问题的经验。 Web安全与防护技术是当前安全界关注的热点,今天给小伙伴们分享的这份手册尝试针对各类漏洞的攻防技术进行体系化整理,从漏洞的原理到整体攻防技术演进过程进行详细讲解,从而形成对漏洞和web安全的体系化的认识。
|
2天前
|
运维 监控
"网络工程师必备秘籍:4大招轻松破解M-LAG故障难题,你的网络还能更稳定!"
【8月更文挑战第19天】M-LAG技术通过多链路聚合提升网络可靠性和带宽。面对M-LAG故障,四步定位法助您迅速排障:1) 检查M-LAG成员状态确保链路活动;2) 验证链路聚合配置一致;3) 分析控制和平面与数据平面状态;4) 排除物理层故障如端口状态异常。结合网络监控和定期检查,保障M-LAG稳定运行。
|
3月前
|
安全 网络安全 数据库
01-Web 网络安全纵观与前景分析
01-Web 网络安全纵观与前景分析
|
3月前
|
监控 网络架构 Windows
第六十八章 使用 Web 服务监控 IRIS - 监控网络客户端
第六十八章 使用 Web 服务监控 IRIS - 监控网络客户端
27 0
|
3月前
|
SQL 监控 安全
网络安全产品之认识WEB应用防火墙
随着B/S架构的广泛应用,Web应用的功能越来越丰富,蕴含着越来越有价值的信息,应用程序漏洞被恶意利用的可能性越来越大,因此成为了黑客主要的攻击目标。传统防火墙无法解析HTTP应用层的细节,对规则的过滤过于死板,无法为Web应用提供足够的防护。为了解决上述问题,WAF应运而生。它通过执行一系列针对HTTP、HTTPS的安全策略,专门对Web应用提供保护。
116 1
|
3月前
|
Python
在Python Web开发过程中:网络与并发,解释一下在Web开发中会遇到的长连接与短连接的区别。
Python Web开发中的长连接和短连接影响网络性能。长连接保持开放状态,允许多次数据交换,减少建立/释放开销,适合频繁交互。短连接每次请求新建,简单但高并发时增加开销。长连接利于实时通信,短连接适合HTTP等一次性请求。选择取决于应用需求、资源管理、可靠性和并发处理能力。
28 2