码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【web-攻击用户】(9.6.1)其他客户端注入攻击:HTTP消息头、cookie


    目录

    其他客户端注入攻击

    1.1、HTTP消息头注入

    1.2、利用消息头注入漏洞

    注入cookie

    传送其他攻击

    HTTP响应分割

    防止消息头注入漏洞

    1.3、cookie注入:


    其他客户端注入攻击

    1.1、HTTP消息头注入

    1、如果用户控制的数据以不安全的方式插入到应用程序返回的HTTP消息头中,这时就会出现HTTP消息头注入漏洞。如果攻击者能够在他控制的消息头中注入换行符,他就能在响应中插入其他HTTP消息头、并在响应主体中写入任意内容。

    2、这种漏洞最常见于Location与Set-Cookie消息头中,但也会出现在其他HTTP消息头中。应用程序提取用户提交的输入,并将它插入到响应码为3xx的Location消息头中。同样, 一些应用程序提取用户提交的输入,并将其插入cookie值中

    3、在上述任何一种情况下,攻击者都可以使用回车符(0x0d)或换行符(0x0a)构造一个专门设计的请求在他们控制的消息头中注入一个换行符, 从而在下面的行中注入其他数据


    【注入后端HTTP请求】服务器端HTTP重定向、HTTP参数注入https://blog.csdn.net/qq_53079406/article/details/126444127?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166173552316781790777137%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166173552316781790777137&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-126444127-null-null.nonecase&utm_term=http&spm=1018.2226.3001.4450

    1.2、利用消息头注入漏洞

    查找消息头注入漏洞的方法与查找XSS漏洞的方法类似,同样需要寻找用户控制的输入重复出现在应用程序返回的HTTP消息头中的情况。因此在探查应用程序是否存在XSS漏洞的过程中, 还应当确定应用程序可能易于受到消息头注入的全部位置

    1、在用户控制的输入被复制到HTTP消息头中的每个位置都可能存在漏洞,确认应用程序是否接受URL编码的回车符(%0d)与换行符(%0a),以及它们是否按原样在响应中返回

    2、是在服务器的响应中而不是换行符的URL编码形式中寻找换行符本身,如通过拦截代理服务器查看响应,攻击成功的话,应该会在HTTP消息头中看到另外一个新行

    3、如果服务器的响应中仅返回两个换行符中的一个,根据实际情况,仍然能够设计出有效的攻击方法

    4、如果发现换行符被应用程序阻止或净化.那么应该尝试攻击方法:

    foo%00%0d%0abar

    foo%250d%250abar

    foo%%0d0d%%0a0abar

    如果能够在响应中注入任意消息头和消息主体内容,那么这种行为可通过各种方式攻击应用程序的其他用户


    注入cookie

    攻击者可以建立一个URL,在请求它的任何用户的浏览器中设定任意cookie

    如果进行适当配置, 这些cookic可以访问不同的浏览器会话,通过前面利用反射型XSS漏洞时使用的相同传送机制(电子邮件、第三方Web站点等),就可以诱使目标用户访问恶意URL


    传送其他攻击

    因为HTTP消息头注入允许攻击者控制整个响应主体,所以几乎任何针对其他用户的攻击都可以使用它作为传送机制, 包括虚拟Web站点置换、脚本注入、任意重定向,针对ActweX控件的攻击等。


    HTTP响应分割

    这是一种试图通过恶意内容危害代理服务器缓存,从而攻破通过代理服务器访问应用程序的其他用户的攻击技巧。如果企业网络中的所有用户通过缓存代理服务器访问某个应用程序, 那么通过在代理服务器的缓存中注入恶意内容(显示给任何请求受影响页面的用户),攻击者就可以向这些用户实施攻击

    攻击者可以按以下步骤, 利用消息头注入漏洞来实施响应分割攻击

    (1)攻击者在代理服务器缓存中选择一个他希望危害的应用程序页面。如用一个木马登录表单(用于向攻击者的服务器提交用户证书)代替/admin/处的页面。

    (2)攻击者确定某个消息头注入漏洞,构造一个请求,在服务器响应中注入一个完整的HTTP主体以及另一组响应消息头和另一个响应主体,第二个响应主体中包含他的木马登录表单的HTML代码。这样,服务器的响应看起来就像是两个连接在一起的单独HTTP响应,这种技巧叫做HTTP响应分割,因为攻击者已经把服务器的响应"分割"成两个单独的响应。

    (3)攻击者与代理服务器建立TCP连接,传送这个专门设计的请求,后面紧跟着访问被危害的页面的请求。在HTTP协议中,以这种方式连接请求是合法的。

    (4)代理服务器与应用程序建立TCP连接,送出这两个以相同方式连接的请求。

    (5)应用程序用攻击者注入的HTTP内容响应第一个请求,它看起来就像是两个单独的HTTP响应

    (6) 代理服务器收到这两个看似单独的响应,并认为其中第二个响应与攻击者的第二个请求相对应,该请求指向URL:http://mdsec.net/admin/。代理服务器把第二个响应作为这个URL的内容保存在缓存中。(如果代理服务器已经在缓存中保存有该页面的副本,那么攻击者就可以在他的第二个请求中插入一个适当的If-Modified-Since消息头,并在注入的响应中插入一个Last-Modified消息头,使得代理服务器重新请求这个URL,用新的内容更新它的缓存。)

    (7)应用程序发布它对攻击者的第二个请求的响应,其中包含URL:http://mdsec.net/admin/的真实内容。代理服务器并不认为它是对它发布的请求的响应,因而抛弃这个响应。

    (8)一名用户通过代理服务器访问http://mdsec.net/admin/,并收到这个URL保存在代理服务器缓存中的内容。这个内容实际上是攻击者的木马登录表单, 因此用户的证书被攻破


    防止消息头注入漏洞

    要防止HTTP消息头注入漏洞,最有效方法是杜绝将用户控制的输入插入到应用程序返回的HTTP消息头中。通常可以用一些较为安全的方法代替这种行为。

    如果不可避免地要在HTTP消息头中插入用户控制的数据,那么应用程序应采取以下双重深层防御方法防止漏洞产生:
    1、输入确认:应用程序应根据情形,对插入的数据进行尽可能严格的确认。如果根据用户输入设定一个cookie值,那么应将这个值限制为仅包含字母字符,及大长度为6字节。

    2、输出确认:应对插入到消息头中的所有数据进行过滤,检测可能的恶意字符。实际上,任何ASCII码小于0x20的字符都应被视为可疑的恶意字符,应用程序应拒绝包含这些字符的请求。

    只有应用程序在其SSL终止符后未使用缓存反向代理服务器,它才能通过对所有应用程序内容使用HTTPS,防止攻击者利用任何残留的消息头注入漏洞危害代理服务器缓存。

    1.3、cookie注入:

    【SQL注入】cookie注入:原理、步骤、示例https://blog.csdn.net/qq_53079406/article/details/125685994?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166173535816780357239574%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166173535816780357239574&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-125685994-null-null.nonecase&utm_term=cookie&spm=1018.2226.3001.4450

  • 相关阅读:
    3.4、可靠传输
    把Eclipse整个文件夹添加到Microsoft Defender的排除项中
    Apache Doris 2.x 版本【保姆级】安装+使用教程
    04_openstack之Glance镜像和云主机类型
    智能家居和物联网技术
    软件开发模型、瀑布模型、V模型、原型模型、增量模型、螺旋模型、喷泉模型
    通信基石Socket结合OOP实现程序间的通信
    .Net Core之选项模式Options使用
    GBase 8a MPP集群性能监控
    cuda,显卡,pytorch三者配置相关知识--学习笔记
  • 原文地址:https://blog.csdn.net/qq_53079406/article/details/126565927
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号