关于网站的渗透测试可能师傅们都有自己一套思路,有个共同点就是目标网站基本属于全静态页面,几乎很少存在动态参数这时意味着客户端无法通过提交参数形式进行测试,理论上也规避掉了许多风险。既然无法从参数层面进行测试,那么考虑尝试下修改header中的值看看是否被服务端允许,比如HOST值
一 HOST标头概念
host标头作为Request Header中不可或缺的一部分,大家知道http版本从开始的1.0到1.1以及以后的1.2经历三个版本,且目前1.1用户最多。在1.0中Request Header中的host值其实可以为空,和1.1区别主要是1.1支持不间断连接、1.0则每次得到响应后断开连接。另外1.0不支持虚拟主机只能一个ip对应一台服务器,这也是1.0中host可以为空的主要原因。
Host被解析的大致流程如下:
客户端-->请求-->URL-->解析IP地址-->服务器-->解析Host值-->转发具体域名
在1.1中host标头的主要功能将客户端请求分发到内部具体的域名中,当然如果存在ng反代或负载等情况下当流量到达服务器之前可能会更改host的值。如果1.1中不包含host的值或值格式有误服务器则返回400或其他错误,下图以某官网为例