安全测试8_Web安全实战2(暴力破解)
1、暴力破解的概念
顾名思义,暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!
2、暴力破解的实战
在有了之前的环境准备后,还需要安装一个新的辅助工具 Burp Suite(这个工具很强大,慢慢讲解吧,功能很多,我们今天用到抓包、截包、改包及暴力破解的功能)
下载大家网上去下载即可,百度很多安装教程和包,这里就不说了,我的版本是1.6的。
在此之前,大家要明白我们登录的时候实际上浏览器最终是发送的数据包,而这个动作呢我们完全可以用Burp Suite去代替,然后帮我们完成暴力破解
好了,我们接着来做实战把,启动Studyphp后,首先我们先登录DVWA(admin/password),然后点击左边菜单栏的DVWA Security将安全级别调为low,然后再点击左侧的Brute Force(暴力破解)。
此时我们需要开启我们的抓包工具 Burp Suite,打开工具后,点击“Proxy->Options->设置好代理”(如下图),同时我们需要设置浏览器代理端口也为8888,设置好代理后,点击切换到Intercept ,设置状态为【Intercept is on】。
点击登录,查看Intercept,将拦截到的请求,右键【Send to Intruder】
然后在“Intruder->Position”中设置,点击clear,将自动设置的position【Clear】掉,然后在请求中username和password的地方点击【Add】添加position,如下图:这里有attck type(四中攻击类型,我下面介绍下四种的区别)
(1)Sniper(狙击手模式) 这个四种模式主要是参考这个博客进行学习:http://blog.csdn.net/huilan_same/article/details/64440284
狙击手模式使用一组payload集合,它一次只使用一个payload位置,假设你标记了两个位置“A”和“B”,payload值为“1”和“2”,那么它攻击会形成以下组合(除原始数据外):
(2)Battering ram(攻城锤模式)
攻城锤模式与狙击手模式类似的地方是,同样只使用一个payload集合,不同的地方在于每次攻击都是替换所有payload标记位置,而狙击手模式每次只能替换一个payload标记位置。
(3)Pitchfork(草叉模式)
草叉模式允许使用多组payload组合,在每个标记位置上遍历所有payload组合,假设有两个位置“A”和“B”,payload组合1的值为“1”和“2”,payload组合2的值为“3”和“4”,则攻击模式如下:
(4)Cluster bomb(集束炸弹模式)
集束炸弹模式跟草叉模式不同的地方在于,集束炸弹模式会对payload组进行笛卡尔积,还是上面的例子,如果用集束炸弹模式进行攻击,则除baseline请求外,会有四次请求:
看完上面四种不同的介绍,我想大家应该知道用哪种好一些了吧,我们是账号名和密码两个变量,我们选择第四种Cluster bomb模式,这也是采用笛卡尔积最大程度的实现爆破。
在“Intruder->Payloads”中设置,分别选择payload set 1/2,添加username和password的变量,可以load文件将变量加进来。
在Options下我们还可以线程数,这个根据电脑性能自行选择(性能越好可以设置多一些,这样跑的快一点)
最后点击menu中的【Intruder->Start attack】开始攻击。
在结果列表中,通过Length排序,选出长度与其他不同的一个,查看Response,可以看到“Welcome to the password protected area admin”的字段,证明这对载荷是正确的,爆破成功。(这里看成功可以通过Length长度来判断,正确的长度为5325,错误的为5262)
还记得我们刚开始设置了DVWA的安全级别为low,那么如果是其它级别会咋样呢?先来说一下中等级别的等级,我们可以发现破解时间变长了,但依旧能成功。
那么如果是high级别呢?
这里再接着来说下怎么破解如果high级别,high级别的话每次登陆就会携带多一个user_token值,这个值是服务器每次动态给的,我们每次打开登录页面,服务器就会返回一个token值给我们
在Burp代理的HTTP history中找到修改密码的请求包,发送到Repeater测试,由于user_token
已失效,登录失败,HTTP状态码为302,我们点击Follow redirection(跟随重定向)跳转到index页面,点击response->Render发现依旧是在登录界面。下面我来说下怎么获取每次服务器返回的user_token,然后成功登录。
第一步:录制宏
宏的管理界面位于Options → Sessions
,点击Add
,新建一个宏。
进入到宏的记录界面,从HTTP请求记录中选择获取user_token的请求,这里我们知道肯定是登陆界面,选择后确定。
注意:如果历史记录中没有该请求,可以点击右上角的Intercept
开关按钮,关闭代理截断,然后在浏览器中执行一次登录操作。
之后进入宏编辑界面,输入宏的名字,名字可随便写。我这里命名为get_user_token
,填写宏名字后点击右边的Configure item
进入下一步设置。
宏设置页面,指定参数的位置。点击右下角Add
进行参数添加。
输入参数名称(这个需和密码登录请求中的参数名一致),使用指定开始和结束位置的方式,在请求响应内容中找到token,鼠标双击选择保持高亮,点击OK。然后在Configure Macro Item
、Macro Editor
全部点击确定,完成宏的录制。
完成后可以在宏列表框中看到刚才录制的宏。
第二步:添加会话处理规则
会话处理规则处,点击Add,添加一条新的规则。
填写规则描述(使用便于区分的文字内容),添加一个动作,在请求之前运行一个宏。
动作编辑中,选择刚才录制的宏,选择只更新指定的参数,输入Token产生名称user_token
,点击确定。
完成动作编辑后,回到会话操作规则编辑界面,选择Scope
,设置这个宏的作用域。
完成上述操作后,会话处理规则列表中有了新增的规则。
第三步:验证规则是否生效
回到Repeater页面(确保会话登陆有效,如超时,请重新登陆),再次发送密码登录的请求包,可以看到在提交请求后,user_token值自动更新,点击Follow redirection。
可以看到登录成功,如下图:
那么问题接着来咯,如果我们设置了DVWA的安全级别为impossible呢?我们发现登录错了三次后将会锁定15分钟,这个怎么解决呢?
安全测试8_Web安全实战2(暴力破解)的更多相关文章
- 实战medusa暴力破解
medusa介绍: 暴力破解工具:主要可以破解这些模块功能很强大 medusa 的安装 条件: 准备工作:(下载下面软件) 1 wget http://www.foofus.net/jmk/t ...
- 安全测试8_Web安全实战3(命令注入)
1.命令注入的概念:命令指的是操作系统的命令,注入表示通过WEB程序在服务器上拼接系统命令. 2.命令注入实战: 首先我们先打开DVWA,将安全级别调至为low级别,忘记了的可以参考之前的章节进行设置 ...
- 安全测试8_Web安全实战1(DVWA部署)
1.渗透神器的打造(火狐浏览器的打造) Firebug HackBar(渗透插件) Tamper Data(抓包.截包.改包等功能) Proxy Switcher(代理设置) 2.PHP环境安装(ph ...
- pikachs 渗透测试1-环境及暴力破解
一.安装 PhpStudy20180211,默认安装 1.mysql默认密码是root,因为在虚拟机,保留不动 2.解压pikachs 到 C:\phpStudy\PHPTutorial\WWW\pi ...
- 使用 fail2ban 防御 SSH 服务器的暴力破解攻击
对于SSH服务的常见的攻击就是暴力破解攻击——远程攻击者通过不同的密码来无限次地进行登录尝试.当然SSH可以设置使用非密码验证验证方式来对抗这种攻击,例如公钥验证或者双重验证.将不同的验证方法的优劣处 ...
- T-Pot平台cowrie蜜罐暴力破解探测及实现自动化邮件告警
前言:Cowrie是基于kippo更改的中交互ssh蜜罐, 可以对暴力攻击账号密码等记录,并提供伪造的文件系统环境记录黑客操作行为, 并保存通过wget/curl下载的文件以及通过SFTP.SCP上传 ...
- SSH密码暴力破解及防御实战
SSH密码暴力破解及防御实战 一.Hydra(海德拉) 1.1 指定用户破解 二.Medusa(美杜莎) 2.1 语法参数 2.2 破解SSH密码 三.Patator 3.1 破解SSH密码 四.Br ...
- 使用visual studio测试功能进行暴力破解
web项目上线前需要做访问压力测试,奈何对这方面不懂,所以自己网上搜索了下相关工具没有找到合适的,就自己研究了下visual studio 2013中的测试项目,发现还挺好使的,结合数据库还能用做暴力 ...
- 安全性测试入门:DVWA系列研究(一):Brute Force暴力破解攻击和防御
写在篇头: 随着国内的互联网产业日臻成熟,软件质量的要求越来越高,对测试团队和测试工程师提出了种种新的挑战. 传统的行业现象是90%的测试工程师被堆积在基本的功能.系统.黑盒测试,但是随着软件测试整体 ...
随机推荐
- Sqoop 介绍、安装及环境配置
一.Sqoop Sqoop介绍 Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.oracle...)间进行数据的传递,可以将一个关系型数据库中的数据导进到Ha ...
- java集合与包装类
一.集合概述 1 为什么需要使用集合? 引入案例:存储每天产生的新闻. 是要解决数组的局限性(定长),由于数组定长,可能会导致内存浪费或者内存不够. 需要一种技术:能够根据数据量而动态伸缩内存空间一种 ...
- Error: spawn EACCES
执行sudo cordova emulate ios: 错误: Running command: /Users/frank/xx/hybird_web/hooks/after_prepare/010_ ...
- 利用JavaFx开发RIA桌面应用-事件监听
1 事件监听 最近利用javaFX开发桌面客户端,碰到需要给各种UI控件添加事件监听,在这里做一个简单的小结,供日后参考. 2 分类处理 在JavaGUI 和Android中,事件通常通过实现list ...
- 基于redis 3.x搭建集群环境
由于我团队开发的在线坐席系统,即将面对线上每周3000W的下行投放客户,产品的咨询量可能会很大,基于前期,200W的投放时,前10分钟,大概800问题量,平均一个客户大概8个问题,也就是说每分钟10个 ...
- 禁止ajax访问shiro管理的登录页面
在使用shiro的时候,对于用户权限的管理,相信很多人都已经很熟悉了.今天,我这里简单的记录一下我自己调试过程中遇到的问题.主要是登录的操作,禁止通过ajax的方式进行访问. shiro中,登录过程拒 ...
- OpenWrt挂载移动硬盘实现脱机下载
一.编译选项选好好usb存储驱动,参考http://www.cnblogs.com/smbx-ztbz/p/4418245.html 并且选上kmod-usb-hid,用于usbhub. 二.编译选项 ...
- 【java】匿名对象
匿名对象使用的场景:1.如果一个对象只调用一个方法一次的时候,就可以用匿名对象来调用. 一般不会用匿名对象给属性赋值,无法获取属性值,每次new 都是一个新的对象. new Car().run();/ ...
- Winform Chart
Chart图表解释说明: 第一步:使用VS创建Winform项目: 第二步:工具箱中拖入Chart控件: 第三步:所有控件拖入其他控件如下图所示: using System; using System ...
- CAD 中绘制点
首先开启点样式,否则点是看不到的 系统变量 PDMODE 和 PDSIZE 控制点对象的显示外观. PDMODE 取值为 0.2.3 .4 时指定表示点的图形,取值为 1 表示不显示任何图形,如下图所 ...