CSRF跨站请求伪造
0x00 前言
跨站请求伪造,当用户访问了存在恶意代码的网页时,会触发恶意代码,造成用户原本的网页信息被篡改、发起恶意请求等情况。原理是利用浏览器访问网站时,Cookie具有时效性,而恶意代码利用了有效的Cookie对目标网站发起请求,实现请求伪造。
CSRF虽然具有较大的危害性,但是普遍不被重视,主要原因是攻击场景具有较大局限性:
1、被攻击者Cookie有效
2、被攻击者主动访问含有恶意代码的网站
3、被攻击网站没有token等验证信息
CSRF可以配合XSS造成危害更大的攻击
0x01 CSRF POC
Burpsuite可以快速生成一个CSRF的POC:
例如我们想要被攻击者发起一个转账操作时,可以先自己抓一个转账操作的数据包,修改其中的金额和收款人。
然后在Burpsuite中右键,选择 Engagement tools -> Generate CSRF PoC
然后点击 COPY HTML,将内容保存为一个html文件。
此时可以利用xss等方法,诱导用户访问这个页面,完成CSRF攻击。
0x02 危害
普通用户点击:修改用户信息、添加用户,转账等。
管理员点击:上传木马、越权等
0x03 防御方法
添加Token等验证信息
Token:一段服务器随机生成的字符串,访问服务器时会将token传到前端的表单里,提交数据时会将token一起提交并作验证。这是防御CSRF最有效的方法。
如果存在XSS,那么Token防御将无效。
referer验证:对发起HTTP请求的来源进行验证,访问某一个页面的请求必须来自同一个网站,否则请求无效。这个方法可以绕过。
评论