【Web安全】CSRF&SSRF漏洞

CSRF漏洞

原理

CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等
【Web安全】CSRF&SSRF漏洞
可以看到存在两个攻击前提:

  • 登录网站A,并获取cookie
  • 在不登出网站A的情况下,访问网站B

利用

正常网站A:http://192.168.5.13/pikachu/
恶意网站B:http://192.168.5.11/

首先正常登录网站A

【Web安全】CSRF&SSRF漏洞

点击修改个人信息时,抓取数据包,发现修改信息的参数都在GET请求中

【Web安全】CSRF&SSRF漏洞

将GET请求头复制,在恶意网站B中进行新建html文件

<script src='http://192.168.5.11/pikachu/vul/csrf/csrfget/csrf_get_edit.php? sex=boy&phonenum=1&add=chain&email=vince%40pikachu.com&submit=submit'></script>

攻击者将包含上述代码的URL链接发送给用户,用户访问后再次刷新页面发现信息被修改

【Web安全】CSRF&SSRF漏洞

防御

  • 设置随机Token值
  • 这是验证码
  • 检验referer来源

SSRF

原理

SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求,由服务器端发起请求的安全漏洞,本质上是属于信息泄露漏洞。ssrf攻击的目标是从外网无法访问的内部系统(正是因为他是有服务器端发起的,所以他能够请求到与他相连而与外网隔离的内部系统)

攻击者想要访问主机B上的服务,但是由于存在防火墙或者主机B是属于内网主机等原因导致攻击者无法直接访问主机B。而主机A存在SSRF漏洞,这时攻击者可以借助主机A来发起SSRF攻击,通过主机A向主机B发起请求,从而获取主机B的一些信息。
【Web安全】CSRF&SSRF漏洞

利用

web服务器:192.168.5.20/24(外网卡)    192.168.255.22/24(内网卡)
内网服务器:192.168.255.11/24

内网探测

请求内网主机,可以迅速响应的,表示此内网主机存活

【Web安全】CSRF&SSRF漏洞

如果响应速度慢,可能内网主机不存活

【Web安全】CSRF&SSRF漏洞

端口探测

【Web安全】CSRF&SSRF漏洞

也可以使用dict协议进行探测

【Web安全】CSRF&SSRF漏洞

本地文件读取

使用file协议进行本地文件读取

【Web安全】CSRF&SSRF漏洞

绕过

IP十进制转换

【Web安全】CSRF&SSRF漏洞

利用@绕过地址过滤

实际*问的还是192.168.255.11
【Web安全】CSRF&SSRF漏洞

防御

  • 限制协议,只允许http和https请求
  • 限制IP,避免被获取内网数据
  • 过滤返回信息,统一报错信息
上一篇:总结 XSS 与 CSRF 两种跨站攻击


下一篇:查找数组中重复的数字