天积安全靶场攻略 | CRLF 注入靶场通关攻略

大家好,我是 Vista_AX 👋

最近好多朋友私信问CRLF 注入靶场怎么过,今天干脆统一捋一遍,带大家丝滑通关第一个实战靶场。

这是一类经典却容易被忽视的 Web 漏洞------只要你能往响应头里塞一个回车换行,整个 HTTP 响应就可能变成你的"游乐场"。

抓包工具准备好了吗?直接开整!🔧

天积靶场免费下载地址:

第一步:信息收集 --- 读懂题目在说什么 🕵️‍♂️

进入靶场后,查看靶场说明:

"需要利用CRLF注入漏洞构造特定的钓鱼链接使用户访问后会跳转到指定的页面"

提取关键信息"利用CRLF注入漏洞",CRLF漏洞又名HTTP响应拆分漏洞,因Web应用未严格验证用户输入,导致攻击者可在HTTP头中注入回车换行符,从而篡改HTTP响应头。由此判断本靶场可能和篡改HTTP 响应头有关。

保持着这个思考,再来看看页面用户登录处的提示:

"请构建一个请求链接,点击后会自动跳转到百度"

抓住关键信息"跳转到百度",结合CRLF注入,猜测通关需要改变HTTP响应头的方式实现百度页面的跳转。


接着,既然有测试账号可以登录,那就登录看看呗,尝试用测试账号heasec/123456登录,发现页面存在新提示。

"想一想,有哪些响应头可以实现页面跳转?在什么样的情况下才能生效?"

好,进一步明确漏洞确实和 HTTP 响应头 有关,那接下去进一步抓包看看,看看靶场的请求包构成,看看怎么有机会能够篡改响应包...

第二步:功能分析 --- "用户名"暗藏玄机 🔍

仔细观察进入靶场的页面行为:

  • 登录表单的用户名输入框,会 自动填充 heasec 用户名

产生疑问🤔,用户名是如何传入的?

发现浏览器上头URL 中赫然写着:

index.php?username=heasec

用 Yakit 抓包,看看服务端到底干了什么👇:

复制代码
请求:GET /index.php?username=heasec
响应头中出现了:X-User-Name: heasec

发现关键线索 :服务端把 username 参数的值,直接写进了 HTTP 响应头(X-User-Name)中。((实际场景通常是输出到Set-Cookie中用于设置cookie记住用户名,这里使用X-User-Name头来模拟)

那从这里我们可以猜测,通过修改 username 参数的值,是不是就可以控制响应头了?进一步尝试看看


第三步:理解 CRLF --- 控制响应头

如何控制响应头呢,先来理解CRLF,HTTP 协议中,响应头之间用 \r\n(CRLF,即回车+换行)分隔,头部和响应体之间用 \r\n\r\n(双 CRLF)分隔。

已知服务端把 username 参数的值,直接写进了 HTTP 响应头(X-User-Name)中,当username=heasec时,正常的响应结构如下:

http 复制代码
HTTP/1.1 200 OK\r\n
Content-Type: text/html\r\n
X-User-Name: heasec\r\n
\r\n
<html>页面内容...</html>

假设 username 参数值里包含 \r\n,服务端又没有过滤,那猜想就可以 注入额外的响应头,被构造的响应结构如下:

http 复制代码
HTTP/1.1 200 OK\r\n
Content-Type: text/html\r\n
X-User-Name: heasec\r\n
X-Test: hello
\r\n
<html>页面内容...</html>

进一步验证下 猜想是否成立 ,构造测试请求(注意在浏览器地址栏中,\r\n 需要编码为 %0d%0a(URL 编码))

复制代码
index.php?username=test%0d%0aX-Test:%20hello

查看响应头,成功出现了 X-Test: hello,说明CRLF注入存在,可以凭借此种方式控制响应头。

至此我们发现可以通过CRLF注入的方式成功控制响应头了。


第四步:构造请求 --- 让你跳你就得跳 🏃‍♂️

在可以控制响应头的情况下,进一步思考有什么响应头可以实现页面跳转?下意识反映是Location头,尝试看看

发现不行,再进一步查看,发现

Refresh响应头是可以的,那我们如何再响应包中另起一行构建Refresh响应头去实现跳转呢?

如果 username 的值里包含特殊的换行字符呢?

再构造通关 Payload ,通关要求是跳转到百度,所以注入 Refresh 头:

复制代码
index.php?username=test%0d%0aRefresh:%200;url=https://www.baidu.com

解码后的效果等价于:

http 复制代码
X-User-Name: test
Refresh: 0;url=https://www.baidu.com

访问这个 URL,页面成功跳转到了百度,说明CRLF注入成功。


第五步:获取通关密码

再次进入靶场,重新登录heasec账号,用户信息区域出现通关密码了。

将这串 20 位的通关密码填入 秘密验证 卡片,验证通过即可完成本关。

思路总结

步骤 做了什么 发现了什么
信息收集 阅读页面提示 漏洞与 HTTP 响应头、URL 参数有关
功能分析 观察"记住用户名"行为 username 参数被写入X-User-Name响应头
抓包确认 F12 查看 Network 确认参数值未过滤直接进入响应头
原理利用 注入 %0d%0a 构造新响应头 成功注入 Refresh 头实现跳转
完成验证 回到页面获取密码 提交通关密码完成挑战

核心思路 :凡是用户输入被写入 HTTP 响应头的地方,都值得测试 CRLF 注入。%0d%0a 就是打开这扇门的钥匙。

相关推荐
奈落243 小时前
AI辅助的另一面:从2026年国际AI安全报告的“故障”清单到国内专家的可靠性短板,自主行动的Agent为什么更难及时干预
人工智能·安全·agent·本地部署·ai 办公
赛博守夜人9 小时前
AI安全攻防与治理之十六:对抗样本、恶意文件与多模态攻击,AI 内容安全检测的真实盲区
人工智能·安全
ZEB110611 小时前
首届安全应急救援机器人大赛在广州举办 深圳璇玑动力斩获多项冠军
安全·机器人·消防
未来之窗软件服务12 小时前
WAF负载均衡+蜜罐混淆安全体系-东方仙盟
运维·安全·负载均衡·仙盟创梦ide·东方仙盟·阿雪技术观·网关开发
高德开放平台14 小时前
构建“车-云-端”安全闭环:新大洲本田通过高德开放平台接入“鹰眼守护预警系统”
安全
dora14 小时前
接口被疯狂调用怎么办?聊聊接口限流
后端·安全
国科安芯14 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
衡石科技16 小时前
让多轮问数保持口径一致:Data Agent 的上下文、偏好与学习开关
人工智能·学习·安全
用户7908600572617 小时前
扫出 176 个「危险代码」,结果一个都不用删:我的静态安检门禁
安全
武天旭17 小时前
AI安全--AI大模型的关键技术组成
人工智能·深度学习·安全·机器学习