CSRF 示例
跨站请求伪造 (CSRF) 漏洞示例。
要求
安装 Go 模块
与任何 golang 项目一样,您需要下载并安装项目运行所需的模块。切换到“csrf”目录
cd csrf
然后
go mod vendor && go mod download && go mod tidy
此命令会将运行项目所需的 golang 依赖项安装到名为 vendor
的新目录中。
模块安装完成后,您可以像这样运行项目
go run main.go
或者
go run main.go withoutCsrf
如果一切正常,您应该看到以下内容
Server started and listening at localhost:3000
尝试演示
启动没有 csrf 的服务器,看看这些攻击的危险性
go run main.go withoutCsrf
打开您的浏览器并导航到 localhost:3000。
使用测试账户登录
- 用户名:
bob
- 密码:
test
在新标签页中,导航到 localhost:3001 查看一些 CSRF 漏洞利用示例。您会注意到每次加载该页面时余额都会减少。这是因为该页面成功利用了 CSRF 漏洞。
查看“已修复”版本
要查看此演示的 csrf 版本,只需按 CTRL + C 停止服务器进程,然后运行
go run main.go
再次导航到 localhost:3000 并登录测试账户。
再次尝试包含 CSRF 漏洞利用的页面:localhost:3001。
您现在会注意到账户余额没有变化。
深入了解
这里有一些有用的链接,您可以从中了解更多关于此主题的信息