如何使用JMeter进行安全测试?

使用JMeter进行安全测试主要包含以下步骤:
1、 添加线程组,设置线程数来确定并发用户数。

2、 添加 HTTP请求默认值,设置相关安全请求头。例如:

  • User-Agent: JMeter
  • HOST:www.example.com

3、 添加取样器(Sampler),例如HTTP请求来发送请求。可以对常见漏洞进行安全测试。
例如:SQL注入、XSS、越权访问、命令注入等。

4、 添加定制的请求头和请求体用于构造安全测试用例。
例如:

请求头: 
Content-Type: application/x-www-form-urlencoded 
请求体: 
username = admin' or 1=1 --& password=123456

5、 添加响应断言和正则表达式提取器来判断响应结果和提取数据。
6、 添加定时器来控制扫描速度,避免对系统造成过大影响。
7、 运行测试计划,JMeter将自动发送安全测试请求并判断响应结果。
8、 根据响应结果分析安全漏洞,并及时通知相关开发人员修复。

一个简单的SQL注入测试用例:

线程组:  
线程数:10

HTTP请求默认值:
User-Agent:JMeter  

HTTP请求:   
请求方法:POST
请求URL:http://test.example.com/login  
内容编码:application/x-www-form-urlencoded

请求体:
username=admin' or 1=1 --&password=123456

响应断言:
响应包含:admin

恒定定时器:
延迟:10秒

运行测试计划,会以10个并发用户发送SQL注入登录请求到例子网站。
如果响应包含”admin”,则判断存在SQL注入漏洞。
使用定时器控制扫描速度,每10秒发送一个请求。