服务端请求伪造:服务端提供了从其他服务器获取数据的功能,但没有对目标地址进行过滤和限制,攻击者可以传入任意URL,使服务器请求并返回数据,访问或操纵敏感资源。 漏洞场景:网络请求功能(如在线识图、文档翻译、分享、订阅等)、请求远程服务器资源(如远程URL上传、静态资源图片等)、数据库内置功能(如MongoDB的copyDatabase)、文件处理工具(如ImageMagick、XML处理)、从URL关键字(如source、share、link、src、imageurl、target)中寻找的功能
服务端请求伪造:服务端提供了从其他服务器获取数据的功能,但没有对目标地址进行过滤和限制,攻击者可以传入任意URL,使服务器请求并返回数据,访问或操纵敏感资源。
漏洞场景:网络请求功能(如在线识图、文档翻译、分享、订阅等)、请求远程服务器资源(如远程URL上传、静态资源图片等)、数据库内置功能(如MongoDB的copyDatabase)、文件处理工具(如ImageMagick、XML处理)、从URL关键字(如source、share、link、src、imageurl、target)中寻找的功能
可尝试使用file、http(s)、dict、gopher等协议进行测试 Run
可尝试使用file、http(s)、dict、gopher等协议进行测试
代码审计SINK点: URL、HttpClient、OkHttpURLConnection、Socket、ImageIO、DriverManager.getConnection、SimpleDriverDataSource.getConnection、HttpURLConnection、RestTemplate、URLConnection、WebClient、JNDI Linux:file:///etc/hosts Windows:file:///C:\windows\win.ini
限制http(s)协议、请求白名单(baidu.com、whgojp.top) Run
限制http(s)协议、请求白名单(baidu.com、whgojp.top)
安全编码建议: 1、URL做白名单处理,域名识别IP,过滤内网IP 2、校验返回的内容是否与预期一致 3、禁止302跳转,或每跳转一次都进行校验目的地址是否为内网地址或合法地址。 4、禁用高危协议:gopher、dict、file、ftp、file等,只允许http/https 项目主要关注的是漏洞的产生与修复,关于攻击绕过手法(@等分隔符、本地回环地址、短网址、DNS重绑定、八(十六)进制),这里就不再展开……