1. CSRF漏洞
1.1 CSRF漏洞原理
CSRF(Cross—Site Request Forgery:跨站点请求伪造)
CSRF 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
CSRF与XSS的区别:
CSRF是借用户的权限完成攻击,攻击者并没有拿到用户的权限
XSS是直接盗取到了用户的权限,然后实施破坏
1.2 CSRF(GET)案例
平台:pikachu
-
进入登录界面,输入账号密码登录:
-
点击“修改个人信息”,修改个人信息后提交,并使用BurpSuite抓取数据包,查看数据包内容:
-
启动本地的另一台服务器,写入如下代码:
-
保持原网站的登录状态,点击进入该网站,执行该页面,触发页面代码:
-
点击后刷新原页面,信息被修改:
1.3 防御方案
- 当用户发送重要的请求时需要输入原始密码
- 设置随机Token
- 设置验证码
- 限制请求方式只能为POST
- 检验referer来源,请求时判断请求链接是否为当前管理员正在使用的页面
2. SSRF漏洞
2.1 SSRF漏洞原理
SSRF(Server-Side Request Forgery:服务器端请求伪造)
SSRF形成的原因大都是由于服务端提供了从其他服务器获取数据的功能且没有对目标地址做过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。
SSRF主要是构造恶意载荷(payload)攻击脚本,并诱导服务器发起请求,让目标服务器执行非本意的操作。SSRF常被用于探测攻击者无法访问到的网络区域,比如服务器所在的内网,或是受防火墙访问的主机。
漏洞攻击: 端口扫描、指纹识别、漏洞利用、内网探针等
各个协议调用探针: http, file, dict, ftp, gopher等
2.2 SSRF漏洞挖掘
- 从WEB功能上寻找
- 分享
- 转码服务
- 在线翻译
- 图片加载与下载
- 图片、文章收藏功能
- 未公开的api实现以及其它调用URL的功能
- 从URL关键字中寻找
- share
- wap
- url
- link
- src
- source
- target
- u
- 3g
- display
- sourceURI
- imageURL
- domain