CSRF
CSRF(Cross-Site Request Forgery,跨站请求伪造)利用用户已经认证过的会话信息来伪造用户的请求,从而在用户不知情的情况下执行恶意操作。这种攻击可能导致用户在未经授权的情况下执行操作,比如更改账户设置、发布内容等
攻击流程
- 用户已经登录了网站,并且能够执行网站的功能
- 目标用户访问了攻击者构造的URL
黑盒下判断CSRF
- 检查请求的来源(可以直接访问需要登录的URL看看有没有同源策略检测Referer头)
- 凭据里面有无token(每次操作需要对的token,并且每次操作后token都会更新)
- 关键操作是否有验证(验证码验证)
SSRF
SSRF(Server-Side Request Forgery,服务端请求伪造),攻击者向服务端发送包含恶意 URL 链接的请求,借由服务端去访问此 URL ,以获取受保护网络内的资源。SSRF的形成大多是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。例如,黑客操作服务端从指定URL地址获取网页文本内容,加载指定地址的图片等,利用的是服务端的请求伪造
SSRF黑盒下可能出现的地方
- 社交分享: 获取超链接的标题等内容进行展示
- 转码服务: 通过URL地址把原地址的网页内容调优使其适合手机屏幕浏览
- 在线翻译: 给网址翻译对应网页内容
- 图片加载与下载: 富文本编辑器中的点击下载图片到本地,获取图片URL地址进行加载或者下载图片
- 图片文章收藏功能: 主要会取其URL地址中的title以及文本的内容来追求好的用户体验
- 云服务厂商:它会远程执行一些命令来判断网站是否存活等,所以如果可以捕获相应的信息,就可以进行ssrf测试
- 网站采集,网站抓取的地方:一些网站会针对你输入的url进行一些信息采集工作
- 数据库内置功能:数据库的比mongodb的copyDatabase数
- 邮件系统:比如接收邮件服务器地址
- 编码处理,属性信息处理,文件处理:比ffpmg,ImageMagick,docx,pdf,xml处理器等
- 未公开的api实现以及其他扩展调用URL的功能:可以利用google语法加上这些关键字去寻找SSRF漏洞
一些的ur中的关键字:share、wap、url、link、src、source、target、u、3g、display、sourceURL、imageURL、 domain等
SSRF利用
- http协议内网探针(扫描内网)
- file协议读取服务器的敏感文件
SSRF防御
- 禁用跳转
- 禁用不需要的协议
- 固定或者限制资源地址
- 错误信息统一信息处理