旁路式HTTP注入系统

一、概述

            旁路式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接口。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. WAF 防火墙 WAF是通过检测应用层的数据来进行访问控制或者对应用进行控制,而传统防火墙对三、四层数据进行...
    TimLi_51bb阅读 894评论 0 0
  • 一本好的入门书是带你进入陌生领域的明灯,《CDN技术详解》绝对是带你进入CDN行业的那盏最亮的明灯。因此,虽然只是...
    隔壁老田_阅读 974评论 0 1
  • 来自公众号:我是程序员小贱作者L的存在 说到后端开发,难免会遇到各种所谓高大上的「关键词 」,对于我们应届生小白,...
    码农小光阅读 1,102评论 1 18
  • * HTTP协议简介 * HTTP版本 * HTTP报文 * Web服务器 * HTTPS * Web安全防范 *...
    F麦子阅读 327评论 0 0
  • HTTP协议作为前端开发的重要基础知识,却是很多非计算机专业出身的码农的软肋。笔者通过《图解http》一书系统的学...
    程序猿TODO阅读 627评论 0 0