CSRF与SSRF常见问题
- CSRF原理
通过伪装成受信用用户请求受信用网站。攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己以前认证过的站点,进行如发邮件,发消息,甚至转账和购买商品。因为浏览器之前认证过,所有被访问站点误以为是真正用户操作而且运行。
1、目标用户已经登录了网站,能够执行网站的功能
2、目标用户访问了攻击者构造的URL。 - CSRF和XSS与XXE有什么区别
XSS跨站脚本攻击,用户提交的数据中可以构造代码执行,从而实现窃取用户信息等攻击。
CSRF跨站请求伪造,XSS是实现CSRF的诸多手段的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或远程内容,和远程文件保护类似。 - CSRF危害
1、非法操作:盗取用户信息,篡改用户数据,账户被盗,
2、信息泄露:欺骗受害者发送请求获取敏感信息,如用户名、密码、个人资料
3、恶意行为:发送垃圾邮件,传播CSRF蠕虫
4、引发拒绝服务攻击,向服务器发送大量请求,导致服务器瘫痪,用户无法正常访问 - SameSite防御CSRF的原理
SameSite是cookie的一种属性,用于防御CSRF跨站请求伪造攻击,它的原理是通过限制cookie的发送范围,确保cookie仅在安全的上下文中发送,从而防止恶意网站利用用户身份发起请求伪造。
samesite属性的三种值:
1、strict:cookie仅在同站请求时发送,即请求的域名与cookie的域名完全一致
2、Lax:cookie在同站请求和顶级导航的跨站请求(如用户点击连接)时发送,但是跨站的POST请求或嵌入的资源请求中不发送。
3、None:cookie在所发送的包括跨站请求,但必须同时设置secure属性(即仅通过HTTPS发送)
- CSRF如何防御
1、验证referer字段:自己网站的域名
2、在请求地址中添加token并验证
3、在HTTP头中自定义属性并验证 - SSRF原理
SSRF服务器请求伪造是一种由攻击者构造恶意数据,形成由服务器端发起请求的一个安全漏洞,一般情况下,SSRF攻击的目标是从外网无法访问的内部系统,正是因为它是由服务端发起的,所有它能够请求到与它相连而与外网隔离的内部系统。
SSRF形成原因是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址进行严格过滤与限制,攻击者可以构造恶意请求,是服务器发起未授权请求,达到攻击目的。 - SSRF危害:
1、内部资产暴漏:数据库、文件系统、配置文件暴漏,对内网web应用程序进行指纹识别,通过访问默认文件实现(readme)
2、敏感信息泄露:访问未授权api接口、
3、内网端口扫描,获取服务端口的banner信息
4、攻击运行在内网或本地的应用程序(fastcgi、rides)
5、利用file协议读取本地文件。 - SSRF漏洞防御
1、过滤输入:限制协议,仅允许HTTP与HTTPS协议,限制内网IP设置URL白名单,避免应用被用来获取内网数据,攻击内网。限制端口。
2、过滤输出:过滤返回信息,统一错误页面,避免错误信息判断远端服务器状态。
3、实施严格的授权验证和访问控制机制,确保仅授权用户可以访问授权资源。
4、限制端口,设置访问常见端口如80、443、8080。禁止30x跳转
- SSRF常见场景
1、社交分享功能:获取超链接的标题等内容进行显示。web应用通常会获取目标URL地址网页内容中的标签的文本内容作为显示,如果没有对目标地址进行过滤就会造成漏洞。
2、转码服务:通过URL地址把源地址的网页内容调优使其适合手机屏幕浏览
3、在线翻译:给网页翻译对应网页的内容,百度,网页
4、图片加载、下载:点击下载图片到本地,通URL地址加载或下载图片
5、编码处理属性信息处理、文件处理:如ffpmg、docx、xml处理器等
6、URL中的关键字:url、link、src、u、display、imageURL、
7、远程服务器请求资源 - SSRF利用
1、file协议:主要用户访问本地计算机中的文件(file:///文件路径)读取目标机有权限且确定路径的文件
2、Dict协议:探测本地服务器(127.0.0.0)的端口以及内网服务器存活及开放端口(dict://serverip:port/命令:参数)
3、gopher协议:信息检索工具。支持GET,POST请求,可以先截获GET、POST请求包,在构成符合gopher协议的请求。
gopher://: / 后面接TCP数据流gopher的默认端口是70,
- SSRF绕过技巧
1、利用[::]绕过localhost http://[::]:80 == http://127.0.0.0
2、利用@ http://example.com@127.0.0.1/
3、利用短地址 https://bit.ly/2QyXEsc == http://127.0.0.1
4、利用DNS解析 在域名上设置A记录,指向127.0.0.1
5、利用句号 127。0。0。1 == 121.0.0.1
6、利用进制转换 16进制或8进制 http://127.0.0.1 == http://0177.0.0.1 - CSRF与SSRF和重放攻击的区别
CSRF是客户端引起的跨站请求伪造,SSRF是服务器端发起的,重放攻击是将截获的数据包进行重放,达到身份认证等目的。
本文作者:予遂计划
本文链接:https://www.cnblogs.com/ysjh/p/18703911
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步