0

我遇到了一种HTTP HELP方法(https://portswigger.net/research/cracking-the-lens-targeting-https-hidden-attack-surface章节“无效主机”)并问自己:是否还有其他系统可以提供类似那?

我想知道渗透测试者是如何想出这种方法的。

谷歌在这里帮不了我。

在特定情况下,它是关于Apache Traffic Server的,它的帮助可以查询如下:

HELP / HTTP / 1.1
Host: XX.X.XXX.XX: 8082
        
HTTP / 1.1 200 Connection Established
Date: Tue, 07 Feb 2017 16:33:59 GMT
Transfer encoding: chunked
Connection: keep-alive
        
OK
        
  Traffic Server Overseer Port
        
  commands:
    get <variable-list>
    set <variable-name> = "<value>"
    help
    exit
        
  example:
        
    OK
    get proxy.node.cache.contents.bytes_free
    proxy.node.cache.contents.bytes_free = "56616048"
    OK

 Variable lists are conf / yts / stats records, separated by commas

然后具体应用如下:

GET / HTTP / 1.1
Host: XX.X.XXX.XX: 8082
Content-Length: 34
        
GET proxy.config.alarm_email
        
HTTP / 1.1 200 Connection Established
Date: Tue, 07 Feb 2017 16:57:02 GMT
Transfer encoding: chunked
Connection: keep alive
...
proxy.config.alarm_email = "nobody@yahoo-inc.com"  
4

1 回答 1

0

我想出了答案:

这是 Yahoo 专门为 Apache Traffic Server 定制的协议。Apache Traffic Server 允许您使用“新协议插件”创建自己的协议:https ://docs.trafficserver.apache.org/en/latest/developer-guide/plugins/new-protocol-plugins.en.html 。

此处创建的协议似乎是基于行的。

场景如下:

初始负载均衡器评估传入 HTTP 请求中的主机标头,以将传入请求转发到此处输入的位置。这意味着攻击者可以确定应该将请求路由到哪个内部位置,在这种情况下,路由到位于 IP:Port XX.X.XXX.XX: 8082 的 Apache 流量服务器。底层攻击是主机标头注入(https ://portswigger.net/web-security/host-header)。

基于行的自制协议现在评估了 HTTP 请求的各个行。这就是显示信息的实现方式(如此处解释https://www.youtube.com/watch?v=zP4b3pw94s0&feature=youtu.be&t=12m40s)。

这意味着攻击者能够通过 HTTP 请求访问内部 Apache 流量服务器,并且请求的各个行都被理解为单独的命令。

HELP雅虎现在在这里执行了一个命令。

于 2020-12-13T22:45:42.160 回答