真个的体会了一把IP欺骗
真正的体会了一把IP欺骗
我们公司的产品几年来一直饱受黑客暴力猜测密码攻击,一直以来有一个重要的安全策略就是基于IP地址的安全防护.也就是一个地址尝试错误超过10次,就会锁一天.
最近要开发一个跟精细的功能,就是如果用户突然换了一个地域登录,这样就会提示用户输入验证码.这个策略也是基于IP的.
因为我们的产品使用了Ngnix,所以IP的获取也就是通过 X-Forward-For 为了方便测试,测试时切换IP不是很方便,我就尝试找一个方法伪造IP地址测试服务器,最后找到了Firfox插件"Modify Headers", 这个可以很方便的就伪造了一个HTTP Header,在测试服务器上测试,果然欺骗成功了.
在测试服务器上测试成功之后,我突然想何不到产品上面去试试,一试吓一跳,居然把产品也骗了,我的IP被锁了之后,我只要换一个Http头,锁就解了.
经过分析,发现我们服务器的Ngnix设置写X-Forward-For 使用的是追加方式,不是替换.设置替换之后,这个问题就解决了.
还好我们的Nginx上线也就一个月左右,黑客好像还没有发现这个漏洞.要不攻击我们的IP地址就不是一直是1W个左右,会有一个跳跃的上升了.
.......
我们公司的产品几年来一直饱受黑客暴力猜测密码攻击,一直以来有一个重要的安全策略就是基于IP地址的安全防护.也就是一个地址尝试错误超过10次,就会锁一天.
最近要开发一个跟精细的功能,就是如果用户突然换了一个地域登录,这样就会提示用户输入验证码.这个策略也是基于IP的.
因为我们的产品使用了Ngnix,所以IP的获取也就是通过 X-Forward-For 为了方便测试,测试时切换IP不是很方便,我就尝试找一个方法伪造IP地址测试服务器,最后找到了Firfox插件"Modify Headers", 这个可以很方便的就伪造了一个HTTP Header,在测试服务器上测试,果然欺骗成功了.
在测试服务器上测试成功之后,我突然想何不到产品上面去试试,一试吓一跳,居然把产品也骗了,我的IP被锁了之后,我只要换一个Http头,锁就解了.
经过分析,发现我们服务器的Ngnix设置写X-Forward-For 使用的是追加方式,不是替换.设置替换之后,这个问题就解决了.
还好我们的Nginx上线也就一个月左右,黑客好像还没有发现这个漏洞.要不攻击我们的IP地址就不是一直是1W个左右,会有一个跳跃的上升了.
1 楼
wolf_awp
2012-03-11
LZ,你好。请问下追加和替换有什么区别啊?
2 楼
diaoliwei2
2012-03-11
3 楼
flyfoxs
2012-03-11
追加就是X-Forward-For:ip1, ip2, ip3这样一直加下去,因为一个请求会被多个代理处理,这样可以记录整个串.
替换就是X-Forward-For:ip3,只记录直接的上一级.因为前面的几级极其容易伪造.当然这样可能也记录不到真正的用户IP地址,而是代理的IP地址.
每个方法都有优缺点,就看你怎么权衡了.
替换就是X-Forward-For:ip3,只记录直接的上一级.因为前面的几级极其容易伪造.当然这样可能也记录不到真正的用户IP地址,而是代理的IP地址.
每个方法都有优缺点,就看你怎么权衡了.