漏洞环境
安鸾渗透实战平台
burp
云服务器一台
题目信息
由于ssrf(2)在很早的时候写了,这里就不作概述了
ssrf(1)
来到页面会让你注册账号,去注册一个
再次访问页面
http://47.103.94.191:8012/bug/ssrf/ssrf.php
这里题目提示了:内网存在主机 dagebiedawo
使用http://dagebiedawo 来访问一下内网域名
有东西,但是没flag,使用f12检查元素,ctrl+f全局搜索flag,发现细节
去访问这个页面:http://dagebiedawo/this_flag_386357F838162A47.txt
ssrf(3)
访问url:http://47.103.94.191:2000/
先看看访问本地的80会出现什么
上面可以看到,会出现网页的源码,用命令执行试试,看能不能看见主机关键信息
http://127.0.0.1:80 |cat /etc/passwd
没事了,使用fuzz端口来测试内网开放了多少端口(当然也可以测试内网主机的存活,手法都是一样,只是fuzz的时候改一下参数就行)这里用burp进行测试
转到爆破模块,指定端口变量
设置爆破模式为数字numbers型,
设置开始的数字1和结尾的数字65535(端口的范围是1·65535),
设置数字间隔为1,每次增加1
防止靶场主人给我打电话,这里需要降低一下线程(毕竟把人家服务器干崩了也不太好)
通过排序,找到一个数据包大小与其它不同的,这个端口应该就是开的了
访问:http://127.0.0.1:1998
提示这是个api接口,想获取信息需要对应的key值,key值需要用get请求来获取
架设一台云主机,用nc来监听对应端口
nc -lv 6666
用网页去访问云主机监听的端口
发现他携带的值,copy出来
构造请求的url
http://127.0.0.1:1998?auth=f5ddb063e92808b472c31d82c887d791
通过向?auth传递key值来获取敏感信息
修复意见
- 黑名单限制(禁止访问内网网段如127.0.0.1、192.168.x.x、10.x.x.x、172.16.0.0-172.31.255.255)
- 业务白名单限制(只允许业务的url通过)
- 控制协议名:不允许file(文件读取协议)、dict(字典协议)等
- 网络限制:有ssrf服务的服务器只允许访问部分内网
- 返回结果校验:返回结果必须是固定的格式才回显
- 后缀限制:控制用户输入的后缀(可以使用正则或者黑白名单限制)