旁路式HTTP注入系统

2024-02-20  本文已影响0人  鹏_921010

一、概述

            旁路式HTTP注入利用TCP会问劫持以及HTTP重定向机制实现HTTP信息的注入。与串接式注入方案相比,旁路式方案不需要将注入设备串接到用户现有的网络中,只需要将网络流量镜像到旁路式注入设备即可。该HTTP注入方式的主要优点是对现有的网络运行完全没有影响,而且通过添加更多的HTTP注入设备即可实现注入能力的线性扩展。

二、技术原理

1. TCP会话劫持

       TCP会话劫持是通过检视正在进行TCP通信的用户浏览器和web服务器之间传送的报文来获取该保温的IP地址,TCP端口,TCPde seq/ack值等信息。这样,当用户浏览器发起到Web服务器的请求并且在收到Web服务器响应前,旁路式注入设备利用已知的seq/ack参数构造一个HTTP重定向报文发送给用户浏览器。

2. HTTP重定向

      HTTP重定向通过向用户浏览器返回301/302响应代码将用户的HTTP请求指向另一个地址。301代表是永久性的转移,302代表暂时性转移。旁路式HTTP注入方案通过在TCP会话劫持阶段向用户浏览器返回302 Found响应消息将用户浏览器的后续请求重新定向到注入设备的HTTP反向代理。

3. HTTP反向代理

      HTTP反向代理接收来自用户浏览器的请求后,将该请求转发给另外一个服务器,并将从该服务器上得到的结果返回给用户浏览器。HTTP信息的注入就是在HTTP反向代理服务器上实现的:在收到服务器的响应结果后,HTTP反向代理并不立即将该结果返回给用户,而是根据配置在响应结果中注入特定的内容(一般是JavaScript代码)后再将结果返回给用户浏览器。

三、技术实现

旁路式http注入系统工作原理

       利用libpacap的api接口,主线程再网口上嗅探数据包(只嗅探80端口的数据包,并且tcp payload长度要大于20);嗅探到指定规则的数据包后,将数据加到队列中,然后多个子线程去从队列中获取数据包,然后解析,将body的数据,替换成指定的js的代码,然后利用libnet的api,构造自定义的数据包,立即返回给用户。

不足:为了提高性能,可使用内核模块pfring。此api基本兼容libpcap接口。

上一篇 下一篇

猜你喜欢

热点阅读