前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java HTTP Host 头攻击原理以及如何防御

Java HTTP Host 头攻击原理以及如何防御

作者头像
业余草
发布2019-03-15 16:25:07
3.8K0
发布2019-03-15 16:25:07
举报
文章被收录于专栏:业余草

很对微信群里的网友,我都称他们为老铁,从来不称兄道弟的,因为我觉得不真实。不向某东,说一套做一套。

其实你只要认真对待大家,大家都会看在心里,你们说是不是!

对于 Java 程序员来说,一个服务器上跑多个程序是非常常见的现象。

但是这样做后会有一个问题,那就是容易造成 Host 头攻击。这也是之前微信群里一个网友遇到的问题。今天我在这里给大家扯一扯。

host 头(host header或称主机头)攻击,非常常见。比如,在 jsp 中,我们通常可能存在类似下面的代码。

640?wx_fmt=png
640?wx_fmt=png

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

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

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

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

640
640

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

640?wx_fmt=png
640?wx_fmt=png

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

重启 nginx 即可。

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

640?wx_fmt=png
640?wx_fmt=png

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

640?wx_fmt=png
640?wx_fmt=png

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

640?wx_fmt=png
640?wx_fmt=png

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

原文链接:https://www.xttblog.com/?p=3895

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年02月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档