host头攻击漏洞

一个服务器上跑多个程序是非常常见的现象。

但是这样做后会有一个问题,那就是容易造成 Host 头攻击。host 头(host header或称主机头)攻击,非常常见。比如,在 jsp 中,我们通常可能存在类似下面的代码。

<script type="text/javascript" src="<%=path=%>/js/zcms/zDrag.js"></script>
<script src="<%=request.getContextPath()=%>/manage/test.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/mkip/moon.js"></script>

上面的几种加载路径,背后都是通过 host 取得 url 地址,再拼接上固定的内容。

这个时候,假如我把你的 host 头给改掉了,比如改成我的 www.xttblog.com。然后这时你在加载的 js 文件,可能就来源于我的网站中已做好陷阱的 js 文件了。

这样,黑客就能拿到你的 cookie、用户名、密码等关键数据。这就是著名的 host 头攻击。

更有甚者,在你的网站上放入病毒,挖矿等代码。而你还不知道你被利用了。

那么该怎么解决这类问题呢?很简单,下面我们以 Nginx 为例,只需要修改一下配置文件即可。Apache 我就不举例了。

server {listen 8888 default;server_name _;location / {return 403;}
}

添加一个默认 server,当 host 头被修改匹配不到 server 时会跳到该默认 server,该默认 server 直接返回 403 错误。

重启 nginx 即可。

除了这种做法,也可以在目标 server 添加检测规则。比如下面的 if 判断配置。

server {server_name 192.168.0.171;listen 8888;if ($http_Host !~*^192.168.0.171:8888$) {return 403;}include /etc/nginx/default.d/*.conf;location / {root /www/dvwa;index index.php index.html index.htm}
}

另外,在 Tomcat 的配置文件,我们也可以直接配置 Host 的 name 为具体的 ip 地址,不要配置 localhost。

<Host name="www.xxx.com"  unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">  <Context path="/" reloadable="true" docBase="E:\Workspace\test1\WebRoot" /><Alias>196.128.1.101</Alias><Alias>196.128.1.102</Alias><Alias>196.128.1.103</Alias>
</Host>

说白了,这个漏洞是因为你使用了 Host 而没验证它。

String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName()+ ":" + request.getServerPort()+ path + "/";

目前,绿盟、burpsuite、360 等工具都可以对这一漏洞进行检测!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

地震

昨天下午2点半多&#xff0c;在家里刚开电脑&#xff0c;突然感到椅子左右轻微晃动&#xff0c;当时想是不是椅子坏了&#xff0c;后来又听到楼上有声音&#xff0c;想是不是整修楼面搞的。随着震动逐渐加大&#xff0c;意识到是地震&#xff0c;赶快喊妈妈姥姥躲卫生间&#x…

C++学习之路 | PTA乙级—— 1059 C语言竞赛 (20 分)(精简)

1059 C语言竞赛 (20 分) C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩&#xff0c;颁奖规则也就制定得很滑稽&#xff1a; 0、冠军将赢得一份“神秘大奖”&#xff08;比如很巨大的一本学生研究论文集……&#xff09;。 1、排名为素数的学生将…

5G时代到来,人工智能设备如何重塑TMT行业

来源&#xff1a;亿欧在近期召开的2018世界移动通信大会上&#xff0c;5G作为热点话题被高频提及&#xff0c;当前&#xff0c;5G技术已经取得突破进展&#xff0c;全球范围内已有运营商宣布2018年将投入商用。在这一背景下&#xff0c;5G与人工智能技术的结合将重塑众多产业&a…

c++ Oracle OCCI 编程

来源&#xff1a;http://blog.csdn.net/gumingyaotangwei/article/details/7337893 OCCI数据库Oracle编程步骤 1&#xff0e; 配置环境 &#xff08;1&#xff09; Occi访问数据库需要occi.h头文件&#xff0c;此文件在oracle安装目录下&#xff0c;必须有oracle库的支持。安装…

哀悼地震遇难者--5月19至21日为全国哀悼日

据中国政府网报道&#xff0c;国务院今天发布公告宣布&#xff0c;为表达全国各族人民对四川汶川大地震遇难同胞的深切哀悼&#xff0c;国务院决定&#xff0c;2008年5月19日至21日为全国哀悼日。公告全文如下&#xff1a; 国务院公告 为表达全国各族人民对四川汶川大地震遇难同…

C++学习之路 | PTA乙级—— 1060 爱丁顿数 (25 分)(精简)

1060 爱丁顿数 (25 分) 英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力&#xff0c;还定义了一个“爱丁顿数” E &#xff0c;即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。 现给定某人 N 天的骑车距离&#xff0c;请你算出对应的爱丁…

java调用GDAL实现栅格数据的重采样的一种方法

目录 1.关于重采样 1.1概念 1.2用途 1.3常见算法 2.关于GDAL 2.1GDAL中的重采样算法 3.实现重采样 3.1思路 3.2完整代码 3.3使用QGIS验证效果 1.关于重采样 1.1概念 重采样是以原始图像的像元值或者导出的值填充到新的图像的每个像元的的过程。 1.2用途 在地理信…

Semtech与Lacuna从太空接收信息

来源&#xff1a;Semtech概要&#xff1a;Lacuna Space使用了一组星座的极地近地轨道卫星&#xff0c;来接收地面传感器发出的基于LoRa的信息。加利福尼亚州&#xff0c;卡马里奥&#xff0c;2018年2月26日—高性能模拟和混合信号半导体及先进算法领先供应商Semtech Corporatio…

软件系统架构~视点和视图

即使是对于非常简单的系统来说&#xff0c;也不可能在单一的模型中描述整个架构的要素和细节。如果你试图那么做&#xff0c;最终就会得到“弗兰克斯坦怪物”一样的模型&#xff0c;而且根本无法管理&#xff0c;也无法向任意一位利益相关者展示系统。 管理这种复杂情况的最佳方…

python 模块 chardet下载方法及介绍

来源&#xff1a;http://blog.csdn.net/aqwd2008/article/details/7506007 python 模块 chardet 下载及介绍 在处理字符串时&#xff0c;常常会遇到不知道字符串是何种编码&#xff0c;如果不知道字符串的编码就不能将字符串转换成需要的编码。面对多种不同编码的输入方式&…

ABAP--使用SLIN事务码进行ABAP程序扩展语法检查,提高程序开发的质量

TCODE: SLIN 或者在SE38 界面的菜单&#xff1a; 程序&#xff0d;》语法&#xff0d;》扩展程序检查 就会弹出下面的界面&#xff0c;用户可以根据自己的需求设置检查点&#xff0c;并根据检查结果修改程序&#xff0c;使自己的代码更加可靠。另外在SE38 界面的菜单&#xff1…

谷歌大脑发布神经网络的「核磁共振」,并公开相关代码

作者&#xff1a;杨晓凡、camel、思颖、杨文神经网络的可解释性一直是所有研究人员心头的一团乌云。传统的尝试进行可解释性研究的方法是通过查看网络中哪个神经元被激发来来理解&#xff0c;但是即使我们知道「第 538 号神经元被激发了一点点」也毫无意义&#xff0c;并不能帮…

C++学习之路 | PTA乙级—— 1061 判断题 (15 分)(精简)

1061 判断题 (15 分) 判断题的评判很简单&#xff0c;本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。 输入格式&#xff1a; 输入在第一行给出两个不超过 100 的正整数 N 和 M&#xff0c;分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数&…

Java加密与解密的艺术~Provider

Provider类实现了Java安全性的一部分或全部&#xff0c;我们称它为提供者。 Provider类可能实现的服务包括&#xff1a; 算法&#xff08;如DSA、RSA、MD5或SHA-1&#xff09; 密钥的生成、转换和管理设施&#xff08;如用于特定算法的密钥&#xff09; 每个提供者…

Fiddler (一) 教程(Web调试工具)

From&#xff1a;http://kb.cnblogs.com/page/130367/ Fiddler的基本介绍 Fiddler 官方网站&#xff1a;http://www.fiddler2.com Fiddler 官方帮助&#xff1a;http://docs.telerik.com/fiddler/knowledgebase/quickexec Fiddler 官方网站提供了大量的帮助文档和视频教程&…

从通用分页存储过程[ROWCOUNT方式]抽出适合自己需求的分页过程

通用分页存储过程很实用,但毕竟不是全适用于一些环境,譬如我遇到过一种情况,需要先外链两个表,然后再关联几个表,总之参数传递很烦人,这里不细说了,现在只谈实现查询后,怎么分页的简单技巧1,建立用户函数CREATE function F_xxxx(ID nvarchar(36),Key nvarchar(36),......)…

Java加密与解密的艺术~Security

Security类的任务就是管理Java程序中所用到的提供者类。 向系统中追加一个提供者 // 加到数组尾 public static int addProvider(Provider provider) // 加到指定位置&#xff0c;从1开始&#xff08;越靠前&#xff0c;优先级越高&#xff09; public static int insertProvi…

C++学习之路 | PTA乙级—— 1062 最简分数 (20 分)(精简)

1062 最简分数 (20 分) 一个分数一般写成两个整数相除的形式&#xff1a;N/M&#xff0c;其中 M 不为0。最简分数是指分子和分母没有公约数的分数表示形式。 现给定两个不相等的正分数 N ​1 ​​ /M ​1 ​​ 和 N ​2 ​​ /M ​2 ​​ &#xff0c;要求你按从小到大的顺序列…

量子计算机就要来了,它真的能改变世界吗?

来源&#xff1a;网易科技概要&#xff1a;量子计算机的理论运行速度远远超出任何传统的超级计算机。在位于纽约市以北约50英里处僻静乡村中的一个小型实验室内&#xff0c;天花板下缠绕着错综复杂的管线和电子设备。这一堆看似杂乱无章的设备是一台计算机。它与世界上的任何一…

Fiddler (二) : Script 的 用法

Fiddler (二) Script 用法(转)&#xff1a;http://www.cnblogs.com/mrzhoushare/articles/4953592.html Fiddler 高级用法&#xff1a;Fiddler Script 与 HTTP 断点调试&#xff1a;http://www.cnblogs.com/hushaojun/p/5644645.html 通过前一篇博客 【Fiddler教程】&#xff0…