使用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秒发送一个请求。