当前位置:网站首页>Web攻击之CSRF和SSRF
Web攻击之CSRF和SSRF
2022-06-24 19:35:00 【Nice2cu_Code】
WEB攻击
一、CSRF
1. 举例
通过对银行的网站发送请求 “http://bank.example/withdraw?account=bob&amount=1000000&for=bob2”可以使 Bob把1000000块的存款转到Bob2的账号下。黑客自己做一个网站,在网站中放入如下代码: src=“http://bank.example/withdraw?account=bob&amount=1000000&for=Hacker”,并且通过广告等诱使 Bob 来访问他的网站。
当Bob访问该网站时,上述URL就会从Bob的浏览器发向银行,而这个请求会附带Bob浏览器中的 Cookie 一起发向银行服务器。如果Bob当时恰巧刚访问他的银行后不久,他的浏览器与银行网站之间的Session尚未过期,浏览器的Cookie之中含有Bob的认证信息。那么这个URL请求就会得到响应,钱将从Bob的账号转移到Hacker的账号。
2. 漏洞防御方式
2.1 验证Referer字段
根据 HTTP 协议,在HTTP头中有一个字段叫Referer,它记录了该 HTTP 请求的来源地址。如果用户想要访问银行的服务器,那么该转帐请求的Referer必须是以银行域名开头的地址。
如果黑客要对银行网站实施 CSRF 攻击,他只能在他自己的网站构造请求,当用户通过黑客的网站发送请求到银行时,该请求的 Referer 是指向黑客自己的网站。
因此,要防御CSRF攻击,银行网站只需要对于每一个转账请求验证其Referer值,如果是以bank.example开头的域名,则说明该请求是来自银行网站自己的请求,是合法的。如果Referer是其他网站的话,则有可能是黑客的CSRF攻击,拒绝该请求。
2.2 在请求地址中添加token并验证
攻击之所以能够成功,是因为黑客可以在不知道cookie的内容的前提下直接利用用户自己的Cookie来通过安全验证。
所以可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。
二、SSRF
通过篡改获取资源的请求发送给服务器,但是服务器并没有检测这个请求是否合法的,然后服务器以他的身份来访问其他服务器的资源。
1. 举例
假如有个请求是www.baidu,com/xxx.php?image=URL,如果服务器端的验证并没有对其请求获取图片的参数(image=)做出严格的过滤以及限制,那么用户可以将image参数修改为image=www.abc.com/1.jpg,用户就可以从一个服务器访问其内部的服务器。
甚至可以使用类似file:///C:/windows/win.ini读取服务器本地文件,非常危险。
2. 漏洞防御方式
- 禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///、ftp:// 等引起的问题
- 限制请求的端口为http常用的端口,比如,80,443,8080
- 将内网ip添加到黑名单。避免应用被用来获取获取内网数据,攻击内网。
3. 二者的区别
- CSRF是跨站请求伪造,伪造的是客户端,即黑客盗用用户身份
- SSRF是服务器端请求伪造,黑客盗用服务器,一般用于从外网访问内网。
边栏推荐
- 如何提取网页中的日期?
- The process from troubleshooting to problem solving: the browser suddenly failed to access the web page, error code: 0x80004005, and the final positioning: "when the computer turns on the hotspot, the
- KT6368A蓝牙双模透传芯片软件版本选型说明
- Want to be a test leader, do you know these 6 skills?
- I really want to send a bunch of flowers
- Binary search tree template
- 985测试工程师被吊打,学历和经验到底谁更重要?
- 故障安全移动面板KTP900F Mobile下载程序提示无法下载,目标设备正在运行或未处于传输模式的解决办法
- Creating files, recursively creating directories
- ansible基本配置
猜你喜欢
随机推荐
Embedded development: tips and tricks -- clean jump from boot loader to application code
Creating files, recursively creating directories
How to extract dates from web pages?
Zero code can apply data visualization to enterprise management
直播软件app开发,左右自动滑动的轮播图广告
I really can't do it. After 00, I collapsed and wanted to leave
NIO、BIO、AIO
The process from troubleshooting to problem solving: the browser suddenly failed to access the web page, error code: 0x80004005, and the final positioning: "when the computer turns on the hotspot, the
如何比较两个或多个分布:从可视化到统计检验的方法总结
leetcode:515. Find the maximum value in each tree row [brainless BFS]
KT6368A蓝牙双模透传芯片软件版本选型说明
TCP RTT测量妙计
leetcode:515. 在每个树行中找最大值【无脑bfs】
关于自动控制原理资料更新
Docker installs redis-5.0.12. Detailed steps
Shutter precautions for using typedef
第二批入围企业公示!年度TOP100智能网联供应商评选
如何抓手机的包进行分析,Fiddler神器或许能帮到您!
代理模式详解
Flutter-使用 typedef的注意事项









