0x00 前言

跨站请求伪造,当用户访问了存在恶意代码的网页时,会触发恶意代码,造成用户原本的网页信息被篡改、发起恶意请求等情况。原理是利用浏览器访问网站时,Cookie具有时效性,而恶意代码利用了有效的Cookie对目标网站发起请求,实现请求伪造。

CSRF虽然具有较大的危害性,但是普遍不被重视,主要原因是攻击场景具有较大局限性:

1、被攻击者Cookie有效

2、被攻击者主动访问含有恶意代码的网站

3、被攻击网站没有token等验证信息

CSRF可以配合XSS造成危害更大的攻击

0x01 CSRF POC

Burpsuite可以快速生成一个CSRF的POC:

例如我们想要被攻击者发起一个转账操作时,可以先自己抓一个转账操作的数据包,修改其中的金额和收款人。

然后在Burpsuite中右键,选择 Engagement tools -> Generate CSRF PoC

CSRF1.png

然后点击 COPY HTML,将内容保存为一个html文件。

CSRF2.png

此时可以利用xss等方法,诱导用户访问这个页面,完成CSRF攻击。

0x02 危害

普通用户点击:修改用户信息、添加用户,转账等。

管理员点击:上传木马、越权等

0x03 防御方法

添加Token等验证信息

Token:一段服务器随机生成的字符串,访问服务器时会将token传到前端的表单里,提交数据时会将token一起提交并作验证。这是防御CSRF最有效的方法。

如果存在XSS,那么Token防御将无效。

referer验证:对发起HTTP请求的来源进行验证,访问某一个页面的请求必须来自同一个网站,否则请求无效。这个方法可以绕过。