<返回更多

CSRF和SSRF(Web漏洞及防御)

2020-10-22    
加入收藏
CSRF和SSRF(Web漏洞及防御)

 

CSRF

跨站请求伪造(Cross-Site Request Forgery)

CSRF经常配合XSS一起进行攻击!(同XSS类似,都属于跨站攻击,不攻击服务器端而攻击正常访问网站的用户!)

XSS利用站点内的信任用户,CSRF伪造成受信任用户!

CSRF和SSRF(Web漏洞及防御)

 

CSRF原理

攻击者伪造目标用户的身份,以目标用户的名义执行非法操作!

如:发送邮件、发送消息、盗取目标用户的账户进行购买,转账等威胁目标用户的财产安全!

注意:具体实例,请参考之前的文章!

CSRF的利用

之前文章的利用手段截图:

CSRF和SSRF(Web漏洞及防御)

 


CSRF和SSRF(Web漏洞及防御)

 

CSRF的防御

  1. 使用POST请求代替GET请求

CSRF一般触发的时候,都是通过用户点击链接,比如美女图片,吸引眼球的信息,这种请求方式都是GET请求,所以使用POST在一定程度上会避免通过GET方式请求CSRF!

  1. HTTP Referer

HTTP头信息中,包含Referer字段,记录了请求的来源地址(上一个访问地址),通过检查此字段,可以了解来源是站内还是外部的恶意连接!

  1. 验证码

每次请求,都需要填写验证码!(尽管也可以绕过验证码,今后讲解业务安全时,会提到如果绕过验证码漏洞!)

注意:验证码,用户体验不好!

  1. Token(请求令牌!)

CSRF之所以能成功的重要原因是:攻击者能够预知和伪造请求中的关键字段,因此,如果在请求中放入攻击者不能伪造的信息就能起到防范CSRF的作用!

在HTTP请求中以参数的形式加入一个随机产生的请求令牌(Token),并在服务器端进行验证。如果请求中没有Token或者Token内容不正确,则拒绝该请求!

Cookie Token:Token值放进Cookie中(所有表单都包含同一个伪随机值)

把Token放入HTTP头部自定义的属性中

一次性Token:每一个表单包含一个不同的伪随机值!

 


SSRF

SSRF:Server-Side Request Forgery(服务端请求伪造)

攻击者利用SSRF漏洞通过服务器端发起伪造请求!

一般情况下,SSRF攻击的目标是外网无法访问的内部系统!

(由于请求是服务器端发起的,所以服务器能请求到与自身相连而与外网隔绝的内网!)

SSRF漏洞形成原因

服务器提供了从其他服务器应用获取数据的功能,并且对目标地址没有做严格的过滤!

SSRF漏洞利用

  1. 通过服务器获取内网主机、本地端口扫描、获取一些服务的banner信息!
banner:会获取到一些敏感信息!
banner 信息中,可以获取到软件开发商、软件名称、服务类型、版本号等。
而版本号有时候就会存在公开的 CVE 问题,可以直接进行利用。
banner 信息获取的基础是在和目标建立链接后的,只有建立的链接,才可以获取到相应的 banner 信息,
当目标对 banner 信息进行隐藏或者配置了禁止读取时,这时的 banner 则获取不到!
  1. 对内网的应用程序进行攻击,如redis,JBoss等!
  2. 对内网的Web应用进行指纹识别,识别内部的资产信息
  3. 攻击内网程序,造成缓冲区溢出。
  4. 利用file伪协议读取文件

举例:

端口探测:

http://www.tony.com/index.php?url=http://127.0.0.1:3306

读取文件:

http://www.tony.com/index.php?url=file:///etc/passwd

内网的JBoss攻击:

http://www.tony.com/index.php?url=http://192.168.1.88:8080
http://www.tony.com/index.php?url=http://192.168.1.88:8080/jmx-console/
// 发现存在jmx控制台未授权访问漏洞
通过jboss.deployment接口部署Web木马应用
获取Webshell
执行命令

SSRF防御

  1. 过滤请求协议,只允许http或https的协议
  2. 限制访问的IP地址
  3. 限制访问的端口
  4. 设置统一的错误处理页面,防止信息泄漏!
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>