首页 > 其他分享 >CRLF注入

CRLF注入

时间:2023-02-26 22:44:40浏览次数:38  
标签:HTTP 请求 恶意 漏洞 CRLF 注入

CRLF注入原理:

一个HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据。
请求行和请求头的尾部都有CRLF标志,请求头和请求体之间也是通过CRLF标志分割的。
CRLF注入漏洞就是利用Http的这种报文结构,向请求行或请求头的字段注入恶意的CRLF,就能注入一些首部字段或报文主体(请求响应数据),并在响应中输出,所以CRLF又称为HTTP响应拆分漏洞(HTTP Response Splitting)。
CRLF注入漏洞的本质和XSS有点相似,攻击者将恶意数据发送给易受攻击的Web应用程序,Web应用程序将恶意数据输出在HTTP响应头中(XSS一般输出在主体中)。
所以CRLF注入漏洞的检测也和XSS漏洞的检测差不多。通过修改HTTP参数或URL,注入恶意的CRLF,查看构造的恶意数据是否在响应头中输出。
总结下:
如果你找到了一个你传给Web程序的参数最后会在响应的Http头部回显,那么这个地方可能就是一个存在CRLF注入漏洞的地方。
找到注入点后,构造恶意的CRLF字符,抓包,在请求行的url参数中加入特殊构造的CRLF字符,查看恶意数据是否在响应头中输出。
通过CRLF注入消息头引发XSS漏洞

在请求参数中插入CRLF字符:?email=a%0d%0a%0d%0a<script>alert(/xss/);</script>

服务器返回:
HTTP/1.1 200 OK
Set-Cookie:de=a
<script>alert(/xss/);</script>

原理:服务器端没有过滤\r\n,而又把用户输入的数据放在HTTP头中,从而导致安全隐患。

标签:HTTP,请求,恶意,漏洞,CRLF,注入
From: https://www.cnblogs.com/cowpokee/p/17158065.html

相关文章

  • JSON注入
    JSON注入原理:JSON注入是指应用程序所解析的JSON数据来源于不可信赖的数据源,程序没有对这些不可信赖的数据进行验证、过滤,如果应用程序使用未经验证的输入构造JSON,则可以......
  • Mysql注入
    查数据库unionselectnull,schema_name,nullfrominformation_schema.schematalimit1,1%23查数据表:unionselect1,table_name,3frominformation_schema.table......
  • Oracle注入
    获取数据库版本unionselect1,'a',(SELECTbannerFROMv$versionWHEREbannerLIKE'Oracle%25')fromdual--+获取操作系统版本unionselect1,'a',(SELECTbann......
  • @Resource注入
    1、根据名称注入@Resource(name="userService")privateUserServiceuserService;@Service("userService")publicclassUserServiceImplimplementsUse......
  • 使用Mono.Cecil实现IL代码注入
    Target新建项目CecilTest创建待注入类Target.cspublicclassTarget{publicstringGetInputIntReturnIntString(inti){Console.WriteLine("Get......
  • [代码审计基础 16]phpyun 防注入绕过
    PHP:5.4.5设置调试:https://blog.csdn.net/m0_46641521/article/details/120107786phpyunSQL注入绕过0x01路由分析01看index先做路由分析,上来直接看index.php文件;......
  • inlineHook 注入
    inject.h#pragmaonce#ifndefINJECT_H#defineINJECT_Hintinject_sc();#endif//!INJECT_H#include<windows.h>#include<stdio.h>#include<iostream>......
  • 记录下SQL注入案例
    SQL注入大扫除时发现了几年前的笔记本,稍微看了下过去的笔记。SQL注入这玩意虽说是很老的问题了,在mybatis等优秀的ORM框架里面早已经通过预编译技术解决了。但是突然......
  • Spring依赖注入
    1.基于set方法注入<beanclass="com.jixian.spring.entity.Book"><propertyname="bname"value="计算机百科全书"/><propertyname="author"va......
  • 被注入的dll 获取进程的加载地址,并通过偏移修改游戏数据
    //dllmain.cpp:定义DLL应用程序的入口点。#include"pch.h"#include<stdio.h>#include<tchar.h>#include<exception>#include<wchar.h>#include<windows.h......