【Web安全】CSRF&SSRF漏洞
CSRF漏洞
原理
CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等
可以看到存在两个攻击前提:
- 登录网站A,并获取cookie
- 在不登出网站A的情况下,访问网站B
利用
正常网站A:http://192.168.5.13/pikachu/
恶意网站B:http://192.168.5.11/
首先正常登录网站A
点击修改个人信息时,抓取数据包,发现修改信息的参数都在GET请求中
将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链接发送给用户,用户访问后再次刷新页面发现信息被修改
防御
- 设置随机Token值
- 这是验证码
- 检验referer来源
SSRF
原理
SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种由攻击者构造请求,由服务器端发起请求的安全漏洞,本质上是属于信息泄露漏洞。ssrf攻击的目标是从外网无法访问的内部系统(正是因为他是有服务器端发起的,所以他能够请求到与他相连而与外网隔离的内部系统)
攻击者想要访问主机B上的服务,但是由于存在防火墙或者主机B是属于内网主机等原因导致攻击者无法直接访问主机B。而主机A存在SSRF漏洞,这时攻击者可以借助主机A来发起SSRF攻击,通过主机A向主机B发起请求,从而获取主机B的一些信息。
利用
web服务器:192.168.5.20/24(外网卡) 192.168.255.22/24(内网卡)
内网服务器:192.168.255.11/24
内网探测
请求内网主机,可以迅速响应的,表示此内网主机存活
如果响应速度慢,可能内网主机不存活
端口探测
也可以使用dict协议进行探测
本地文件读取
使用file协议进行本地文件读取
绕过
IP十进制转换
利用@绕过地址过滤
实际上访问的还是192.168.255.11
防御
- 限制协议,只允许http和https请求
- 限制IP,避免被获取内网数据
- 过滤返回信息,统一报错信息