首页 > 其他分享 >CRLF注入

CRLF注入

时间:2023-03-23 16:35:34浏览次数:40  
标签:HTTP 换行 漏洞 CRLF 日志 注入

CRLF注入
【漏洞介绍】
CRLF注入可以将一条合法日志拆分成两条,甚至多条,使得日志内容令人误解,对日志审计造成很大的困难。或者将HTTP消息头注入恶意换行,造成会话固定、不安全重定向和XSS漏洞。
【漏洞原理】
CRLF的含义 是“carriage return/line feed”,意思就是回车/换行。这是两个ASCII字符,就是回车(CR, ASCII 13, \r) 、换行(LF, ASCII 10, \n)。\r\n这两个字符是用于表示换行的,其十六进制编码分别为0x0d、0x0a,URL编码分别为%0d、%0a。
CRLF在Windows中广泛用来标识一行的结束。而在Linux/UNIX系统中只有换行符。 CR和LF组合在一起即CRLF命令,它表示键盘上的"Enter"键(可以用来模拟回车键)。由于CRLF可以分隔内容,如果在记录的日志中包含未经校验的不可信数据,则可能导致日志注入漏洞。恶意用户会插入伪造的日志数据,从而让系统管理员误以为这些日志数据是由系统记录的。另外在HTTP协议中,HTTP Header与HTTP Body是用两个CRLF分隔的,浏览器就是根据这两个CRLF取出HTTP内容并显示。所以,一旦能够控制HTTP消息头中的字符,注入一些恶意的换行,如注入新的Set-Cookie、Location字段或者注入恶意的javascript代码等,可能导致会话固定,不安全重定向和XSS漏洞。本章节主要介绍如何排查CRLF日志注入问题,其他问题建议通过黑盒的方式进行排查。
【测试思路】
通过阅读日志记录部分代码,排查记录的日志内容是否包含不可信数据及对不可信数据的过滤是否安全:
 
【测试方法】
如果在记录的日志中包含未经校验的不可信数据,则可能导致日志注入漏洞。恶意用户会插入伪造的日志数据,从而让系统管理员误以为这些日志数据是由系统记录的。例如,用户可能通过输入一个回车符或一个换行符(CRLF)来将一条合法日志拆分成两条日志,使得日志内容可能令人误解。日志注入一般不会引起服务功能性的损害,而主要是作为一种辅助攻击手段,在日志中添加信息,误导运维人员对日志的审计。
Step1:白盒测试日志注入主要搜索和日志打印相关的关键字:
    Java关键字:
    logger.info 、logger.error、logger.debug、logger.warn、log.等
    通过关键字,定位日志输出代码
    Step2:查看代码是否会输出外部参数,如果没有,检查下一处;如果输出外部参数的值,需检查外部参数是否有做白名单校验或其他安全校验(如:过滤各种换行符\r\n、%0d%0a等),若没有,则存在CRLF日志注入漏洞。

 

标签:HTTP,换行,漏洞,CRLF,日志,注入
From: https://www.cnblogs.com/snad/p/17247946.html

相关文章

  • SQL注入
    【有回显SQL注入】判断注入类型:由于输入的数据id是数字,我们并不知道服务器将id的值认为是字符还是数字,因此我们需要先来判断是数字型注入还是字符型注入(虽然从源码看......
  • Apache Kafka JNDI注入(CVE-2023-25194)漏洞复现浅析
    关于ApacheKafka是一个开源的分布式事件流平台,被数千家公司用于高性能数据管道、流分析、数据集成和任务关键型应用程序。影响版本2.4.0<=Apachekafka<=3.2.2环境......
  • Apache Airflow OS命令注入
    0x00简介ApacheAirflow是美国阿帕奇(Apache)基金会的一套用于创建、管理和监控工作流程的开源平台。该平台具有可扩展和动态监控等特点。0x01漏洞概述在ApacheAirflow......
  • PentestLab-web安全SQL注入-EXP9
    我们打开靶机,选择“SQL Injections”选择“Example9”观察页面盲注的方法如下:无回显,使用延时注入注入点​​http://192.168.1.142/sqli/example9.php?order=if(length(da......
  • LDAP注入
    1属性   模式名LDAP注入模式ID 参考 关键词注入,分级目录结构,数据查询STRIDE信息泄露,篡改,权限提升分类Web攻击方......
  • Spring的手动注入,动态注入
    参数说明:Objectbean,就是一个已经被创建的实例;ApplicationContext:Spring的Context;AutowireCapableBeanFactory.AUTOWIRE_BY_NAME:按照名字来注......
  • springboot防止XSS攻击和sql注入
     文章目录1.XSS跨站脚本攻击①:XSS漏洞介绍②:XSS漏洞分类③:防护建议2.SQL注入攻击①:SQL注入漏洞介绍②:防护建议3.SpringBoot中如何防止XSS攻击和......
  • 跟老杜手撕Spring6教程(十)set注入专题-1
    set注入专题本篇文章是set注入专题,上篇说了构造注入​​https://blog.51cto.com/u_15485663/6132498​​配合视频教程观看,更易理解吸收,动力节点老杜的Spring6教程采用难度逐......
  • 跟老杜手撕Spring6教程(九)构造注入
    构造注入本篇文章说说构造注入,上篇说了Spring对IoC的实现​​https://blog.51cto.com/u_15485663/6120423​​配合视频教程观看,更易理解吸收,动力节点老杜的Spring6教程采用......
  • Spring Boot 如果防护 XSS + SQL 注入攻击 ?一文带你搞定!
    1.XSS跨站脚本攻击①:XSS漏洞介绍跨站脚本攻击XSS是指攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被解析执行,从而达到恶意攻......