跨站请求伪造(Cross-Site Request Forgery)
CSRF经常配合XSS一起进行攻击!(同XSS类似,都属于跨站攻击,不攻击服务器端而攻击正常访问网站的用户!)
XSS利用站点内的信任用户,CSRF伪造成受信任用户!
攻击者伪造目标用户的身份,以目标用户的名义执行非法操作!
如:发送邮件、发送消息、盗取目标用户的账户进行购买,转账等威胁目标用户的财产安全!
注意:具体实例,请参考之前的文章!
之前文章的利用手段截图:
CSRF一般触发的时候,都是通过用户点击链接,比如美女图片,吸引眼球的信息,这种请求方式都是GET请求,所以使用POST在一定程度上会避免通过GET方式请求CSRF!
HTTP头信息中,包含Referer字段,记录了请求的来源地址(上一个访问地址),通过检查此字段,可以了解来源是站内还是外部的恶意连接!
每次请求,都需要填写验证码!(尽管也可以绕过验证码,今后讲解业务安全时,会提到如果绕过验证码漏洞!)
注意:验证码,用户体验不好!
CSRF之所以能成功的重要原因是:攻击者能够预知和伪造请求中的关键字段,因此,如果在请求中放入攻击者不能伪造的信息就能起到防范CSRF的作用!
在HTTP请求中以参数的形式加入一个随机产生的请求令牌(Token),并在服务器端进行验证。如果请求中没有Token或者Token内容不正确,则拒绝该请求!
Cookie Token:Token值放进Cookie中(所有表单都包含同一个伪随机值)
把Token放入HTTP头部自定义的属性中
一次性Token:每一个表单包含一个不同的伪随机值!
SSRF:Server-Side Request Forgery(服务端请求伪造)
攻击者利用SSRF漏洞通过服务器端发起伪造请求!
一般情况下,SSRF攻击的目标是外网无法访问的内部系统!
(由于请求是服务器端发起的,所以服务器能请求到与自身相连而与外网隔绝的内网!)
服务器提供了从其他服务器应用获取数据的功能,并且对目标地址没有做严格的过滤!
banner:会获取到一些敏感信息!
banner 信息中,可以获取到软件开发商、软件名称、服务类型、版本号等。
而版本号有时候就会存在公开的 CVE 问题,可以直接进行利用。
banner 信息获取的基础是在和目标建立链接后的,只有建立的链接,才可以获取到相应的 banner 信息,
当目标对 banner 信息进行隐藏或者配置了禁止读取时,这时的 banner 则获取不到!
举例:
端口探测:
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
执行命令