通过案例带你轻松玩转JMeter连载(40)

简介: 通过案例带你轻松玩转JMeter连载(40)

第3部分 安全测试



测试需求:完成电子商务系统的以下安全测试工作。

  • 对旧版本的登录功能进行暴力攻击测试
  • 分别对新版本的通过邮件/电话号码找回密码,进行篡改邮件地址/电话号码进行安全性测试。
  • 分别对旧版本进行试图查看/修改/删除别人的信息的安全性测试。


安全测试


安全测试方法中很重要的一种手段就是利用像Burp Suite这样的发包工具来截获HTTP请求包,进行信息篡改,最后发给服务器,观察服务器做出什么反应。JMeter其实也是一个发送HTTP请求的工具,可以自定义请求的内容,所以理论上Burp Suite可以实现的功能都可以用JMeter来实现。


1 暴力攻击


为了方便起见,我们以接口测试中的MySQL数据作为暴力破解字典。
1)建立一个新的jmx文件,命名为ebusiness_sec.jmx。
2)在Test plan下建立线程组。
3)右击线程组,在弹出菜单中选择“添加->逻辑控制器->模块控制器”。按照图1所示。” 关于模块控制器将在第6.1-1节进行介绍。


image.png

图1 模块控制器


4)右击线程组,在弹出菜单中选择“添加->测试片段->测试片段”。修改名称为“暴力破解”,按照图2所示。” 关于测试片段将在第6.2-1节进行介绍。重新点击模块控制器,点击线程组左边的+号,如图3所示,出现“暴力破解”测试片段,以后我们添加新的测试片段,就可以在这里选择需要测试的对应测试片段了。


image.png

图2 测试片段


image.png

图3 加了“暴力破解”后的模块控制器


5)在模块控制器后面建立HTTP请求默认值。如第4.1.3节第5)步进行设置。
6)在模块控制器后面建立HTTP Cookie管理器。
7)按照第5.4.2节建立JDBC Connection Configuration和JDBC Request。在JDBC Request的Variable name下输入username,password。如图4所示。


image.png

图4 在JDBC Request的Variable name下输入username,password


8)点击暴力破解测试片段,在弹出菜单下选择“新建->逻辑控制器->ForEach控制器”。如图5所示。

image.png

图5


  • 名称改为:根据username控制
  • 输入变量前缀:username。
  • 开始循环字段(不包含):0。
  • 循环结束字段(包括):5。
  • 输出变量名称:new_username。
  • 选择数字之前加下划线"_"。


9)点击根据username控制,在弹出菜单下选择“新建->逻辑控制器->ForEach控制器”。如图6所示。

image.png

图6 根据password控制


  • 名称改为:根据password控制
  • 输入变量前缀:password。
  • 开始循环字段(不包含):0。
  • 循环结束字段(包括):5。
  • 输出变量名称:new_password。
  • 选择数字之前加下划线"_"。


在这里我们采用两个ForEach控制器,相当于Burp Suite测试器中的集束炸弹的作用。关于ForEach控制器将在第6.1-1节中进行介绍。


10)按照图7设置下面的元件。

image.png

图7 设置暴力破解的下面元件


11)在商品列表HTTP请求中,username的值设置为:{new_username};password的值设置为:{__digest(SHA-256,${new_password},,,)}。
12)为了寻找方便,我们在商品列表下的响应断言设置为:用户名或者密码错误。
13)运行测试。
14)在暴力破解测试片段下添加察看结果树。
15)运行测试。
16)在察看结果树中寻找断言失败的,即为暴力破解成功的。然后在调试取样器中查看取得的用户名和密码。如图8所示。


image.png

图8 暴力破解成功的数据


作为白帽子黑客,暴力破解的目的是检查用户设置的用户名和密码是否过于简单,如果被暴力破解查处,可以通知用户修改用户名和密码,这样就给产品增加看了一项增值业务,站在安全的角度上为用户所想。

目录
相关文章
|
前端开发 JavaScript 区块链
通过案例教你玩转JMeter(上)
通过案例教你玩转JMeter(上)
169 0
通过案例教你玩转JMeter(上)
|
存储 索引
通过案例带你轻松玩转JMeter连载(56)
通过案例带你轻松玩转JMeter连载(56)
134 0
通过案例带你轻松玩转JMeter连载(56)
|
XML JavaScript Java
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(58)
167 0
通过案例带你轻松玩转JMeter连载(58)
|
Java 测试技术 Apache
通过案例带你轻松玩转JMeter连载(50)
通过案例带你轻松玩转JMeter连载(50)
244 0
通过案例带你轻松玩转JMeter连载(50)
通过案例带你轻松玩转JMeter连载(8)
通过案例带你轻松玩转JMeter连载(8)
121 0
通过案例带你轻松玩转JMeter连载(8)
|
SQL XML Java
通过案例带你轻松玩转JMeter连载(28)
通过案例带你轻松玩转JMeter连载(28)
176 0
通过案例带你轻松玩转JMeter连载(28)
|
JavaScript 前端开发 安全
通过案例带你轻松玩转JMeter连载(17)
通过案例带你轻松玩转JMeter连载(17)
163 0
通过案例带你轻松玩转JMeter连载(17)
|
测试技术 BI
通过案例带你轻松玩转JMeter连载(44)
通过案例带你轻松玩转JMeter连载(44)
121 0
通过案例带你轻松玩转JMeter连载(44)
|
存储 测试技术 数据安全/隐私保护
通过案例带你轻松玩转JMeter连载(1)
通过案例带你轻松玩转JMeter连载(1)
187 0
通过案例带你轻松玩转JMeter连载(1)
|
监控 测试技术 调度
通过案例带你轻松玩转JMeter连载(11)
通过案例带你轻松玩转JMeter连载(11)
135 0
通过案例带你轻松玩转JMeter连载(11)