红蓝攻防:构建实战化网络安全防御体系
上QQ阅读APP看书,第一时间看更新

3.1.1 SQL注入漏洞

SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。SQL注入就是通过把SQL命令插入Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的。SQL注入漏洞是发生在应用程序的数据库层的安全漏洞,是在设计应用程序时忽略了对输入字符串中夹带的SQL命令的检查,数据库误将恶意SQL命令作为正常SQL命令运行而导致的(见图3-2)。SQL注入漏洞被广泛用于获取目标Web系统的后台敏感数据、修改网站数据或获取网站控制权。蓝队主要利用SQL注入漏洞实现以下目的:

·获取后台数据库中存放的目标的隐私信息,并进一步利用这些信息渗透拓展;

·对目标网站挂马,进一步有针对性地开展钓鱼攻击;

·获取后台应用系统的控制权限,进一步控制后台服务器。

图3-2 SQL注入检测万能语句

SQL注入漏洞多存在于用户目标官网、Web办公平台及网络应用等之中。比如:Apache SkyWalking[1]SQL注入漏洞(CVE-2020-9483)就是蓝队攻击中用到的一个典型的SQL注入漏洞。利用该漏洞可通过默认未授权的GraphQL接口构造恶意请求,进而获取目标系统敏感数据以用于进一步渗透。另一个典型的SQL注入漏洞——Django[2]SQL注入漏洞(CVE-2021-35042)存在于CMS(内容管理系统)上。该漏洞是由于对某函数中用户所提供的数据过滤不足导致的。攻击者可利用该漏洞在未获授权的情况下,构造恶意数据执行SQL注入攻击,最终造成服务器敏感信息泄露。

[1] Apache SkyWalking是一款开源的应用性能监控系统,主要针对微服务、云原生和面向容器的分布式系统架构进行性能监控。

[2] Django是一个Web应用框架。