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头中,从而导致安全隐患。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示