JMeter CSRFToken认证登陆(正则提取器的使用)(转)

前几天用JMeter模拟登陆,但是这个网站开启了csrf认证,因此在post表单需要提供csrftoken认证。这里我用到了Jmeter正则提取器。

1 CSRF
CSRF(Cross-site requestforgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。它通常发生在当某个恶意Web站点诱骗用户不知不觉的从一个信任站点下载某个URL之时,这个信任站点已经被通过信任验证,因此恶意站点就利用了这个被信任状态。下图便是csrf攻击的思想:


20160419121044781.png

我在博客上也转载一篇关于csrf的介绍,有关csrf的攻击实例可以看这篇博客。

http://blog.csdn.net/lion19930924/article/details/50955000

2 解决方案
在模拟具有csrf认证的网站的登陆时,我们需要先访问一次该网站,获取服务器返回的cookie,在下次发送请求的时候带上这个cookie,则可以完成登陆。

3 JMeter CSRF TOKEN认证登陆
用JMeter模拟登陆的过程,需要用到正则提取器,获取服务器返回的cookie,具体的过程如下:

1 添加一个HTTP request sampler,命名为logintest

2 在这个request sampler中填写需要登陆的地址,以及需要登陆的用户名和密码

20160419121022593.png

3 在logintest中添加regular expression extractor,我们把它命名为csrf_token
20160419121022593.png

4 在csrf_token中我们将 Reference Name命名为 CSRF_TOKEN,regular expression是Set-Cookie: csrftoken=(.+?);,Template是
1

20160419121027156.png

5 同样的方法我们再添加一个regular expression extractor,命名为session_id,这里我们要获取的是服务器返回的session_id,所以它的正则表达式和csrf_token的写法是相似的。这里不再做详细描述。

6 再添加一个HTTP request sampler,命名为login,这里的地址和用户名和密码和logintest填写的保持一致,不过需要添加一个csrfmiddlewaretoken,它的值是我们在login中获取的csrf_token的值。

20160419121031804.png

7 这里我们再点击运行,就可以发现登陆成功了,JMeter模拟成功。

有关JMeter的正则表达式,大家可以通过下面这个网站进行了解:

(http://jmeter.apache.org/usermanual/regular_expressions.html)

原文:https://blog.csdn.net/lion19930924/article/details/51189210

其他教程http://www.cnblogs.com/Zfc-Cjk/p/8976232.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • http://www.91ri.org/tag/fuzz-bug 通常情况下,有三种方法被广泛用来防御CSRF攻击...
    jdyzm阅读 4,395评论 0 5
  • 正则表达式 概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组...
    阿登20阅读 1,080评论 0 7
  • 主要文体来自 CDNS:https://www.cnblogs.com/ceshisanren/p/5639895...
    Amano阅读 11,325评论 3 27
  • (今天中途手抖到极致!!!) 舍南舍北皆春水,但见群鸥日日来。 花径不曾缘客扫,蓬门今始为君开。 盘飧市远无兼味,...
    简小取阅读 1,061评论 9 15

友情链接更多精彩内容