大部分的web服务器架构中,web服务器自身都可以访问互联网和服务器所在的内网。 上图展示了 web 服务器的请求可以到达的地方。
1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的 banner 信息;
2.对内网 web 应用进行指纹识别,通过访问默认文件实现;
3.攻击内外网的 web 应用,主要是使用 get 参数就可以实现的攻击(比如 struts2,sqli 等);
4 利用 file 协议读取本地文件等。
5端口扫描,如果请求非http服务的端口,比如:http://127.0.0.1:3306 会返回MySQL banner 信息
4、漏洞修复
1,过滤返回信息。如果 web 应用是去获取某一种类型的文件。那么在把返回结果展示给用户 之前先验证返回的信息是否符合标准。
2, 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
3,限制请求的端口为 http 常用的端口,比如,80,443,8080,8090。
4,黑名单内网 ip。避免应用被用来获取获取内网数据,攻击内网
过滤C段和B段。