Java-sec-code(SSRF攻击)
java-sec-code平台中也内置了SSRF攻击案例,我们来看看SSRF漏洞代码是什么样的。
案例1
直接从url参数接收数据,但是未进行任何检查和校验。
通过调用httpUtil.URLConnection方法,建立URL对象并建立HTTP连接,通过输入流读取并添加到字符串构建器类对象中,然后作为结果返回。
因此,你输入http://,file://,dict://等对应java版本支持的URL类型就可以实现服务器请求伪造攻击了。
安全案例1
安全修复的案例中通过调用了isHttp方法来判断是不是http协议的URI,然后再用SecurityUtil.startSSRFHook()并通过URLConnection进行访问。
具体来看,开启了一个Hook了一个socket进程。
主要还是限制http类型URI
安全案例2
第二个安全案例则是通过强制类型转换未HTTP连接,如果转换失败说明不是HTTP连接,从而实现限制请求HTTP连接的目的。