CSRF概述
CSRF(Cross Site Request Forgery),中文是跨站点请求伪造。CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任即会话跟踪技术实现的身份凭证,以用户身份在攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的。
浏览器Cookie策略
- Session Cookie(临时Cookie)
- 保存在浏览器进程的内存空间中
- 在浏览器进程的生命周期内,打开新的Tab页,Cookie依然是有效的
- 关闭浏览器Cookie失效
- Third-party Cookie(本地Cookie)
- 保存在本地
- 服务器在Set-Cookie时指定了Expire时间
- 到了Expire时间后,Cookie才会失效
CSRF攻击手段
GET
当站点可以用get请求时,事先分析功能的请求参数,在攻击页面构造一个img标签,地址指向站点功能的请求,当用户登录进站点后再点击攻击页面时,img标签会向站点发送一次请求,这就达成了攻击者想要的目的。
POST
当站点限制只能用POST请求时,事先分析功能的请求参数,在攻击页面构造一个页面form表单,使用js自动提交,还可以将页面隐藏在一个不可见的ifame窗口中,那么整个自动提交表单的过程,用户都不可见。
XSRF
假如有这样一个博客功能接口,已经限制POST,但博文内容是直接贴进HTML(未过滤),那可以使用XSS攻击。那么就可以直接把POST攻击页面嵌入博文,那么只要有人打开我这篇博文,还是会自动提交请求,这组合攻击方式称为XSRF。
CSRF防御手段
浏览器Cookie策略
如果浏览器从一个域的页面中,要加载另一个域的资源,由于安全原因,某些浏览器会阻止Third-party Cookie的发送,如果该功能没有设置Cookie,那就无所谓了。
IE6、7、8、Safari会默认拦截第三方本地Cookie(Third-party Cookie)的发送。但是Firefox2、3、Opera、Chrome、Android等不会拦截 。
加验证码
验证码,强制用户必须与应用进行交互,才能完成最终请求。在通常情况下,验证码能很好遏制CSRF攻击。但是出于用户体验考虑,网站不能给所有的操作都加上验证码。因此验证码只能作为一种辅助手段,不能作为主要解决方案。
Referer Check
同理,Referer Check也可以被用于检查请求是否来自合法的“源”(Referer值是否是指定页面,或者网站的域),如果都不是,那么就极可能是CSRF攻击。但是因为服务器并不是什么时候都能取到Referer,所以也无法作为CSRF防御的主要手段。但是用Referer Check来监控CSRF攻击的发生,倒是一种可行的方法。
Anti CSRF Token
Token分为header密文,payload密文,签名。Token的方式其实和Session差不多,只是存放在客户端,只是Token中的内容是有签名加密的,而密钥是放在服务器的,这样就可以使得token是不可预料的。
SSRF概述
SSRF(Server-Side Request Forgery:服务器端请求伪造)
其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制。导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据。
SSRF攻击方式
- 扫描内网信息
- 向内部任意主机的任意端口发送精心构造的Payload
- DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
- 攻击内网的web应用,主要是使用GET参数就可以实现的攻击(比如struts2,sqli等)
- 利用file协议读取本地文件等
CURL
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。
支持的网络协议如下

4584

被折叠的 条评论
为什么被折叠?



