3.1.2 跨站漏洞

如果在程序设计时没有对用户提交的数据进行充分的合规性判断和HTML编码处理,而直接把数据输出到浏览器客户端,用户就可以提交一些特意构造的脚本代码或HTML标签代码。这些代码会在输出到浏览器时被执行,从而导致跨站漏洞。利用跨站漏洞可在网站中插入任意代码以隐蔽地运行网页木马、获取网站管理员的安全认证信息等(见图3-3)。蓝队主要利用跨站漏洞实现以下目的:

·对目标网站植入恶意代码,有针对性地开展进一步攻击渗透;

·窃取网站管理员或访问用户的安全认证信息,进一步向个人主机拓展;

·劫持用户会话,进一步获取网站用户隐私,包括账户、浏览历史、IP地址等。

图3-3 两种典型的跨站攻击方式

跨站漏洞多存在于用户目标官网、外部Web办公平台等之中。比如:DedeCMS[1]跨站请求伪造漏洞(CVE-2021-32073)存在于/uploads/dede/search_keywords_main.php文件下,是系统对GetKeywordList函数过滤不全导致的。攻击者可利用该漏洞将恶意请求发送至Web管理器,从而导致远程代码执行。Apache Tomcat[2]跨站脚本漏洞(CVE-2019-0221)是由于Apache Tomcat的某些Web应用程序中JSP文件对用户转义处理不完全导致的,远程攻击者可以通过包含“;”字符的特制URI请求执行跨站脚本攻击,向用户浏览器会话注入并执行任意Web脚本或HTML代码。

[1] DedeCMS是一套基于PHP+MySQL的开源内容管理系统(CMS)。

[2] Apache Tomcat是一个流行的开放源码的JSP应用服务器程序。