网络安全之IP伪造

眼下非常多站点的涉及存在一些安全漏洞,黑客easy使用ip伪造、session劫持、xss攻击、session注入等手段危害站点安全。在纪录片《互联网之子》(建议搞IT的都要看下)中。亚伦·斯沃茨(真实人物,神一般的存在)涉嫌利用麻省理工的网络,通过ip伪造从JSTOR中下载了150万篇论文。本文通过firefox看下一个简单的ip伪造是怎样实现的。

1、client的ip是通过http的头部发送到server端的

比方,在打开网址www.baidu.com的时候。通过firebug能够看到请求头部,头部里包括client的信息,比方cookie等。

一般后台获取的clientip的代码为:

php代码:

复制代码
private function _get_client_ip() {

$ip = $_SERVER['REMOTE_ADDR'];

if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {

$ip = $_SERVER['HTTP_CLIENT_IP'];

jsp代码:

复制代码
public String getIpAddr(HttpServletRequest request) {
       String ip = request.getHeader("x-forwarded-for");
       if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
          ip = request.getHeader("Proxy-Client-IP");
       }
       if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
          ip = request.getHeader("WL-Proxy-Client-IP");
       }
       if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
          ip = request.getRemoteAddr();
       }
       return ip;
}

代码片段即是获取clientIP,这段程序会尝试检查 HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR, 依据之前的原理说明,以 HTTP_开头的 header, 均属于client发送的内容。那么,假设client伪造 Client-Ip, X-Forward-For,不就能够欺骗此程序,达到"伪造 IP"之目的?

伪造这项值?假设你会敲代码。并了解HTTP协议,直接伪造请求 header 就可以。

或者使用 Firefox的 Moify Headers插件就可以。

2、Modify Headers伪造ip

安装Modify Headers后,加入一个X-Forwarded-For,并填入一个ip,置为可用后,打开对应网页,server就会获取到该伪造ip。

3、站点怎样防护ip伪造

既然能够通过ip伪造,站点怎样过滤这些伪造的ip? 一般做法是在应用server上强制将X-Forwarded-For的值设置为client真实ip,详细操作请自行研究。

网络中存在此漏洞的站点非常多,尤其是一些投票类的站点。通过限制ip(一个ip仅仅能投一次票,或者一个ip仅仅能在一定的时间段投一次票)来限制重复投票的站点。

别人可能会利用此漏洞来伪造ip。突破这样的限制。所以站点开发人员要重视这类安全。

相关推荐
Guheyunyi4 小时前
智慧消防管理系统如何重塑安全未来
大数据·运维·服务器·人工智能·安全
中科固源5 小时前
应用层|低空应用安全的 “精工锻造者”,中科数测以多工具矩阵赋能应用从开发到运维的全周期安全
安全·网络安全·低空
八月的雨季 最後的冰吻6 小时前
FFmepg-- 32-ffplay源码- PacketQueue 的线程安全机制 以及 serial 字段的作用
安全·ffmpeg
JZC_xiaozhong8 小时前
多系统并行的权限治理难题:如何消除“权限孤岛”与安全风险?
安全·数据安全·etl工程师·iam·数据集成与应用集成·多系统权限管理·统一数据集成
北京聚信万通科技有限公司8 小时前
传输协议:AS3
服务器·网络·安全·电子数据交换·as3
询问QQ6882388610 小时前
基于主从博弈理论的共享储能与综合能源微网优化运行研究复现
web安全
互亿无线明明11 小时前
国际金融短信:如何为跨境金融业务构建稳定安全的消息通知链路?
java·python·安全·eclipse·django·virtualenv·pygame
白帽子凯哥哥12 小时前
转行网络安全学习计划与报班建议
学习·安全·web安全·网络安全·渗透测试·漏洞挖掘·网安培训
ReaF_star13 小时前
【基线】关于Debian的一些简单安全配置及验证
学习·安全·debian
kali-Myon13 小时前
快速解决 Docker 环境中无法打开 gdb 调试窗口以及 tmux 中无法滚动页面内容和无法选中复制的问题
运维·安全·docker·容器·gdb·pwn·tmux