SEC-2022版-0040-WEB攻防-31-通用漏洞之CRLF注入&URL重定向&资源处理拒绝服务
知识点
CRLF注入漏洞
属于轻微漏洞,更改数据包解构
配合xss等进行检测
是因为Web应用没有对用户输入做严格验证,导致攻击者可以输入一些恶意字符。
攻击者一旦向请求行或首部中的字段注入恶意的CRLF,就能注入一些首部字段或报文主体,并在响应中输出,所以又称为HTTP响应拆分漏洞。
GET /fd/ls/l?IG=xxx HTTP/2
Host: www.sywsec.com # 使用这个host来重定向host
Host: www.bing.com
Cookie: #######
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: image/avif,image/webp,*/*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: https://www.bing.com/search?q=DefaultCreds-cheat-sheet&qs=n&sp=-1&lq=0&pq=defaultcreds-cheat-sheet&sc=3-24&sk=&cvid=1264F964901B44D0BB739CDC34555431&ghsh=0&ghacc=0&ghpl=&FPIG=A4F03951A7764E769DB6E6A41DD87A6C&first=10&FORM=PORE
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
Te: trailers如何检测安全问题:CRLFuzz
URL重定向跳转(需要配合利用,某些有重赏)
- 写代码时没有考虑过任意URL跳转漏洞,或者根本不知道/不认为这是个漏洞;
- 写代码时考虑不周,用取子串、取后缀等方法简单判断,代码逻辑可被绕过;
- 对传入参数做一些奇葩的操作(域名剪切/拼接/重组)和判断,适得其反,反被绕过;
- 原始语言自带的解析URL、判断域名的函数库出现逻辑漏洞或者意外特性,可被绕过;
- 原始语言、服务器/容器特性、浏览器等对标准URL协议解析处理等差异性导致绕过;
Web拒绝服务
- 现在有许多资源是由服务器生成然后返回给客户端的,而此类“资源生成”接口如若有参数可以被客户端控制(可控),并没有做任何资源生成大小限制,这样就会造成拒绝服务风险,导致服务器处理不过来或占用资源去处理。
实例
案例1-CRLF注入原理&检测&利用
vulhub nginx |
案例2-URL重定向&原理&检测&利用
# 形式: |
大概意思是讲重定向漏洞的危害:
- 网站接受用户输入的链接,跳转到一个攻击者控制的网站,可能导致跳转过去的用户被精心设置的钓鱼页面骗走自己的个人信息和登录口令。
- 国外大厂的一个任意URL跳转都500$、1000$了,国内看运气~
业务:
- __用户登录、统一身份认证处__,认证完后会 跳转
- 用户 分享、收藏内容 过后,会 跳转
- 跨站点认证、授权 后,会 跳转
- 站内点击其它网址链接 时,会 跳转
黑盒看参数名:
redirect
redirect_to
redirect_url
url
jump
jump_to
target
to
link
linkto
domain白盒看代码块:
Java:response.sendRedirect(request.getParameter("url"))
PHP:
$redirect_url = $_GET['url'];
header("Location: " . $redirect_url)
.NET:
string redirect_url = request.QueryString["url"];
Response.Redirect(redirect_url);
Django:
redirect_url = request.GET.get("url")
HttpResponseRedirect(redirect_url)
Flask:
redirect_url = request.form['url']
redirect(redirect_url)
Rails:
redirect_to params[:url]
1. 单斜线"/"绕过 https://www.landgrey.me/redirect.php?url=/www.evil.com
2. 缺少协议绕过 https://www.landgrey.me/redirect.php?url=//www.evil.com
3. 多斜线"/"前缀绕过 https://www.landgrey.me/redirect.php?url=///www.evil.com https://www.landgrey.me/redirect.php?url=www.evil.com
4. 利用"@"符号绕过 https://www.landgrey.me/redirect.php?url=https://www.landgrey.me@www.evil.com
5. 利用反斜线"\"绕过 https://www.landgrey.me/redirect.php?url=https://www.evil.com\www.landgrey.me
6. 利用"## "符号绕过 https://www.landgrey.me/redirect.php?url=https://www.evil.com## www.landgrey.me
7. 利用"?"号绕过 https://www.landgrey.me/redirect.php?url=https://www.evil.com?www.landgrey.me
8. 利用"\\"绕过 https://www.landgrey.me/redirect.php?url=https://www.evil.com\\www.landgrey.me
9. 利用"."绕过 https://www.landgrey.me/redirect.php?url=.evil
(可能会跳转到www.landgrey.me.evil域名)
https://www.landgrey.me/redirect.php?url=.evil.com
(可能会跳转到evil.com域名)
10.重复特殊字符绕过 https://www.landgrey.me/redirect.php?url=///www.evil.com//.. https://www.landgrey.me/redirect.php?url=www.evil.com//..
案例3-WEB拒绝服务-原理&检测&利用
利用网站功能使网站服务宕机
网站接收数据并且提供服务的时候,使用拒绝服务攻击使得服务宕机
- 验证码或图片显示自定义大小
- 导致资源拉满导致服务宕机
- 上传压缩包解压循环资源占用
- 网站自动解压文件
- 压缩包里面带压缩包里面带压缩包里面带压缩包……(完全解压出来占用资源40TB!)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 矢幽武博客!
评论