SSRF漏洞解析

SSRF(Server-Side Request Forgery,服务端请求伪造)是指攻击者向服务端发送包含恶意 URL 链接的请求,借由服务端去访问此 URL ,以获取受保护网络内的资源的一种安全漏洞。SSRF 常被用于探测攻击者无法访问到的网络区域,比如服务器所在的内网,或是受防火墙访问限制的主机。
​ SSRF 漏洞的产生,主要是因为在服务端的 Web 应用,需要从其他服务器拉取数据资源,比如图片、视频、文件的上传/下载、业务数据处理结果,但其请求地址可被外部用户控制。
​ 请求地址被恶意利用的话,如下图所示,就能够以服务端的身份向任意地址发起请求,如果是一台存在远程代码执行漏洞的内网机器,借助 SSRF 漏洞就可以获取该内网机器的控制权。
SSRF的危害:
内网探测:对内网服务器、办公机进行端口扫描、资产扫描、漏洞扫描。
窃取本地和内网敏感数据:访问和下载内网的敏感数据,利用 File 协议访问服务器本地文件。
攻击服务器本地或内网应用:利用发现的漏洞进一步发起攻击利用。
跳板攻击:借助存在 SSRF 漏洞的服务器对内或对外发起攻击,以隐藏自己真实 IP。
绕过安全防御:比如防火墙、CDN(内容分发网络,比如加速乐、百度云加速、安全宝等等)防御。
拒绝服务攻击:请求超大文件,保持链接 Keep-Alive Always。
IP限制访问绕过:
IPv6 地址,如 http://2000::1:2345:6789:abcd;
十进制 IP,如 http://2130706433,相当于 127.0.0.1;
八进制 IP,如 http://0177.0.0.01,相当于 127.0.0.1;
十六进制 IP,如 http://0x7f.0x0.0x0.0x1,相当于 127.0.0.1;
多进制混合 IP,如 http://0177.0x0.0x0.1,相当于 127.0.0.1;
Localhost 替代,如 http://127.127.127.127、http://0.0.0.0、http://127.1 等。
SSRF靶场:https://portswigger.net/web-security/ssrf
SSRF靶场学习笔记:
第一关:案例:购物程序,购物程序在检查库存时会发送请求来动态获取剩余库存的容量,服务器端并未对其请求进行过滤,我们可以更改其请求,将请求更改为http://127.0.0.1/admin来访问admin账户获得admin账户的权限,通过服务器请求伪造,删除carlos用户来完成此实验
第二关:案例:购物程序,同样是检查库存,但这次只知道内网192.168.0.x:8080端口,不知道具体的ip地址,使用bp intruder模块来进行枚举,枚举的ip地址为192.168.0.233:8080/admin,构造http://192.168.0.233/admin/delete?username=calors语句删除crlos用户完成实验
第三关:案例:购物程序,同样是检查库存,但这次在系统中拥有对SSRF漏洞的黑名单简单过滤,需要进行绕过,经测试发现管理人员在服务器上IP段过滤:127.0.0.1与localhost,对目录过滤admin,IP段的过滤可用127.1,大小写LOcaLHost过滤,admin字段同样使用AdMin大小写混杂拼写过滤,绕过成功构造参数来进行删除crlos用户完成实验
第四关:案例:购物程序,同样是购物程序,但这次的难度又升级了,这次系统拥有对于SSRF基于白名单的验证,需要进行白名单绕过,进行请求的主机必须是stock.weliketoshop.net这个地址,否则就予以拒绝,对于这种情况有以下思路
1.使用@符号将验证插入到主机host之前
2.使用#符号表示url片段
3.根据DNS命名结构将构造的url放入限定的DNS之中
4.使用url编码字符混淆url代码,可以通过多次重写绕过
此题请求127.0.0.1验证,发现只能通过特定host主机,使用@连接测试,没有用,使用#测试发现服务器试图寻找其字符,#进行两此url编码,然后localhost%2523@stock.weliketoshop.net,登陆成功,get请求删除crlos用户,测试完成
第五关:案例:购物程序,检查库存,这次在系统中使用了完备的过滤手段,无法直接通过请求伪造来访问服务器,点击网页右下角的nextProject发现网页跳转使用的重定向,我们试图对重定向路径进行更改,重定向返回302状态码,代表服务器确实对我们的路径进行了解析
将重定向路径放入检查库存请求之中,刚好绕过白名单检查,将path后的路径改为127.0.0.1:80发送,返回404notfound,换个端口改为127.0.0.1:8080,服务器返回了服务器的页面,但未返回我们期待的信息
换个内网服务器进行枚举,在192.168.0.12:8080/admin发现了admin的页面,构造语句删除calors用户,完成任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值