CentOS下JMeter如何进行安全性测试
导读:CentOS下使用JMeter进行安全性测试 一 环境准备与基线 安装 Java 8+(JMeter 为 Java 应用),配置环境变量: 安装:sudo yum install -y java-1.8.0-openjdk-devel...
CentOS下使用JMeter进行安全性测试
一 环境准备与基线
- 安装 Java 8+(JMeter 为 Java 应用),配置环境变量:
- 安装:
sudo yum install -y java-1.8.0-openjdk-devel - 配置:
/etc/profile中添加export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkexport PATH=$JAVA_HOME/bin:$PATH
- 生效:
source /etc/profile & & java -version
- 安装:
- 安装 Apache JMeter(建议 5.4.x),配置环境变量:
- 解压:
tar -zxvf apache-jmeter-5.4.3.tgz -C /usr/local/ - 配置:
/etc/profile中添加export JMETER_HOME=/usr/local/apache-jmeter-5.4.3export PATH=$JMETER_HOME/bin:$PATH
- 生效:
source /etc/profile & & jmeter -v
- 解压:
- 非 GUI 运行与报告(CLI 更适合稳定性与资源占用控制):
- 执行:
./jmeter -n -t your_plan.jmx -l results.jtl -e -o report/ - 仅生成报告:
./jmeter -g results.jtl -o report/
- 执行:
- 如需 HTTPS 测试,准备服务端证书并在 JMeter 的 SSL 管理器导入信任库(keystore),随后在 HTTP 请求中使用 https:// 与端口 443。
二 常见安全性测试场景与JMeter实现
- 传输安全与证书校验
- 目标:验证 HTTPS/TLS 配置、证书链、主机名校验、协议与套件强度。
- 做法:用 HTTP 请求指向目标 HTTPS 接口;在 SSL 管理器导入服务端或根证书;结合 断言校验响应内容/头部;如需客户端证书,在 HTTP 请求中配置 Keystore/证书与私钥。
- 认证与会话安全
- 目标:验证 登录认证、会话管理、多因素认证、Token 生命周期与权限控制。
- 做法:使用 HTTP Header Manager 设置 Authorization: Bearer 或 Cookie;对登录接口做 CSV Data Set Config 参数化用户名/口令;用 BeanShell PostProcessor/JSON Extractor 解析登录响应并提取 session/access_token 供后续请求使用;对敏感接口做 响应断言与 响应时间断言验证失败与锁定策略。
- 输入与注入类安全
- 目标:验证 SQL 注入、XSS、命令注入、路径遍历等输入校验与过滤。
- 做法:在 CSV Data Set Config 中准备常见攻击载荷(如
' OR 1=1--、"> < script> alert(1)< /script>、; id、../../../etc/passwd);使用 循环控制器+HTTP 请求批量发送;用 响应断言/正则断言检测异常报错、堆栈、重定向到错误页或可疑输出;对上传接口使用 multipart/form-data 发送畸形文件并观察拒绝与清理策略。
- 访问控制与授权
- 目标:验证 越权访问(水平/垂直)、权限提升、资源未授权访问。
- 做法:准备不同角色的 账号凭据;先以低权限账号获取资源列表,再以高权限账号尝试访问受限资源;用 JSON Extractor 抽取资源标识,构造越权请求;用 断言校验是否返回 403/401 或异常数据。
- 速率限制与防护策略
- 目标:验证 限流、防暴力破解、验证码、WAF/IPS 行为。
- 做法:用 常数吞吐量定时器/高斯随机定时器控制请求速率;对登录等接口实施高频尝试并观察 429/503 与锁定;在 HTTP Header Manager 设置常见 User-Agent 与 X-Forwarded-For 模拟不同来源;结合 响应断言与 监听器统计触发防护后的行为。
- 敏感信息与错误处理
- 目标:验证 错误信息泄露、日志打印敏感数据、不安全的直接对象引用。
- 做法:构造异常输入并观察响应体与响应头是否泄露 堆栈、数据库错误、内部路径、密钥/令牌;用 响应断言/正则检测敏感关键字;检查 Set-Cookie 的 HttpOnly/Secure/ SameSite 属性与 HSTS 头。
三 执行与报告要点
- 非 GUI 执行与资源控制
- 执行:
./jmeter -n -t plan.jmx -l results.jtl -e -o report/ - 建议在 setenv.sh(位于 JMeter 的 bin 目录)中设置堆内存,例如:
export JVM_ARGS="-Xms2g -Xmx2g",避免 OOM 并提升稳定性。
- 执行:
- 结果分析与验证
- 使用 查看结果树做少量样本调试;用 聚合报告/Summary Report 观察 响应时间、吞吐量、错误率;对安全用例添加 断言统计失败比例与触发条件;对异常响应使用 正则表达式提取器/JSON 提取器定位问题点。
- 分布式与安全通信
- 场景:高并发安全测试或内网隔离环境需要多台压力机。
- 做法:在所有节点生成并分发一致的 rmi_keystore.jks(执行
create-rmi-keystore.sh);在jmeter.properties中设置remote_hosts=压力机IP:端口、server.rmi.ssl.disable=true;在jmeter-server中设置RMI_HOST_DEF=-Djava.rmi.server.hostname=本机IP;启动./jmeter-server;控制机远程启动测试。
四 合规与安全提示
- 仅在取得系统所有者授权的范围内开展测试,遵守法律与合规要求;避免对生产系统造成 拒绝服务 或数据破坏。
- 控制请求速率与并发,优先在 测试环境 复现问题;必要时与 WAF/安全团队联动,分阶段启用规则。
- 妥善管理 凭据与证书:使用 测试专用账号/令牌;证书与密钥仅用于测试,禁止明文存放与泄露。
- 测试完成后清理测试数据,撤销临时权限,恢复安全策略(如限流、验证码、WAF 规则)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS下JMeter如何进行安全性测试
本文地址: https://pptw.com/jishu/766029.html
