其他分享
首页 > 其他分享> > 2019.11.12读书笔记

2019.11.12读书笔记

作者:互联网

SQL注入之外:扩大数据库攻击范围
拥有应用程序的所有数据是SQL注入攻击的最终目的。
1:如果数据库被其他应用程序共享,可以通过提升数据库的使用权限访问其他应用程序的数据。
2:可以攻破数据库服务器的操作系统。
3:可以访问其他系统。通常,数据库服务器是一个在几成网络边界防御保护下的网络中的主机。如果能够控制数据库服务器,攻击者就处在一个可信的位置上,可以访问其它主机上的关键服务,进一步对其加以利用。
4:可以在主机基础架构与自己的计算机之间建立网络连接,这样,攻击者就可以完全避开应用系统的防御,轻易传送从数据库收集到的大量敏感数据,并且可以穿透许多入侵检测系统。
5:可以通过创建用户定义的功能任意扩充数据库的现有功能,有些时候,可以通过这种方式重新执行已被删除或禁用的功能,避开数据库实施的强化保护措施,只要已经获得数据库管理员(DBA)权限,就有办法在每种主流数据库中执行这种操作。
1:MS-SQL
最常被攻击的数据库功能可能是xp_cmdshell存储过程,他是MS-SQL默认内置的一项功能。这个存储过程允许数据库管理员用户以和cmd.exe命令提示符相同的方式执行操作系统命令。
例如:master..xp_cmdshell 'ipconfig > fooo.txt'
攻击者可在众多情况下滥用这项功能。他们可以执行命令,将结果指向本地文件,然后读取文件内容。他们可以打开一个连通自己计算机的带外网络连接,并建立一个秘密的命令和通信渠道,从服务器复制数据并上传攻击工具。
MS-SQL默认LocalSystem运行,MS-SQL还有许多其他存储过程,如xp_regread或xp_regwrite也可用于在windowns操作系统注册表中执行强大的功能。
处理默认锁定##
如果数据库中的Web应用账户拥有足够高的权限,则通过重新设置数据库,该用户就可以突破上述功能实施的限制。
Oracle##
Orcale包含许多可在数据库管理员权限下运行的内置的存储过程,并以发现这些存储过程存在SQL注入漏洞。
防止SQL注入##
1:部分有效的防御状态
2:参数化查询
注:应在每一个数据库查询中使用参数化查询
2:插入查询中的每一种数据都应适当进行参数化
3:参数占位符不能用于指定查询种表和列的名称
4:参数占位符不能用于查询的任何其他部分,如ORDER BY子句中的ASC或DESC关键字,或任何其他SQL关键字,因为他们属于查询结构的一部分。
NOSQL##
NOSQL指各种不同标准的关系数据库体系架构的数据存储区。
NOSQL数据存储区呈现使用键/值映射的数据,并且不依赖与固定的方案,如传统的数据库表,键和值可以任意定义,而且值的格式通常与数据存储无关。
注入MongoDB##
注入XPath
XPath(XML路径语言)是一种用于导航XML文档并从中获取数据的解释性语言。
子字符串函数,可用它一次一个字符串测试一个字符串的值
注入LDAP
LDAP(轻量级目录访问协议)用于访问网络中的目录服务。
每个LDAP查询使用一个或多个搜索过滤器,他们决定了请求返回的目录项。
最常用的搜索过滤器如下:
简单匹配条件
析取查询
合取查询
防止LDAP注入##
根据一份可接受字符“白名单”检查用户输入,其中最好可实施严格输入确认的简单数据。拒绝不要净化。

标签:存储,12,读书笔记,##,数据库,2019.11,查询,SQL,注入
来源: https://www.cnblogs.com/wangtanzhi/p/11848071.html