【渗透测试】不怎么水的洞之IP伪造

漏洞原理

有些应用程序有记录用户IP的功能或者限制IP白名单的功能,如果应用程序从请求头字段获取用户IP,可能会被攻击者伪造,来达到欺骗服务器的目的。

案例一

发现操作日志页面有个记录用户IP功能

插入常见的获取请求IP的请求头X-Forwarded-For、Proxy-Client-IP、WL- Proxy-Client-IP、HTTP_CLIENT_IP、X-Real-IP

效果如下

案例二

开发说有个接口有白名单限制

然后在请求头中添加了X-Forwarded-For,成功绕过限制。

测试方法

将下列常见的获取IP的请求头添加到请求头中即可

复制代码
X-Forwarded-For: 127.0.0.1
X-Originating-IP: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Client-IP: 127.0.0.1
Proxy-Client-IP: 127.0.0.1
WL-Proxy-Client-IP: 127.0.0.1
HTTP_CLIENT_IP: 127.0.0.1
X-Real-IP: 127.0.0.1

修复方法

使用$remote_addr获取用户的真实IP